Next: Dominios de protección
Up: La arquitectura del kernel
Previous: La arquitectura del kernel
El modelo adoptado por Off en cuanto a operación del sistema
presenta dos características que modelan el comportamiento del
sistema y la relación de éste con sus usuarios:
- El
kernel se limita a suministrar recursos físicos distribuidos y
tres abstracciones próximas al hardware distribuido en la red. La
mayoría de los servicios suministrados a aplicaciones
``tradicionales'' (tales como ``editores'') por el SO sólo requieren
llamadas entre entidades externas al
kernel (ej.: en el caso 1 de la
figura 3.2 un editor llama a una biblioteca que
implementa ciertos servicios del SO). Algunas de las llamadas de la
aplicación al SO requerirán de llamadas al
kernel (ej.: en la
figura 3.2, los casos 2 y 3).
- En todos aquellos casos en que la distribución de recursos
requiere de alguna política, protocolo o decisión de compromiso
(localización de recursos, protocolos de coherencia, etc.), el
kernel
se limita a efectuar llamadas a usuario (upcalls) para permitirle a
éste implementar dichos protocolos y tomar sus propias decisiones
(como en el caso 3 de la figura 3.2). La mayoría de
las veces (caso 2 de la figura 3.2) las llamadas al
kernel del SO podrán ejecutarse inmediatamente. No obstante, en
algunas ocasiones dichas llamadas no podrán completarse sin ayuda
del usuario (el SO) y requerirán de llamadas adicionales (del
kernel
al SO que lo usa).
En realidad, no es que todos los ``usuarios'' deban implementar
todas las operaciones invocadas por el
kernel mediante ``upcalls'',
sino que cada usuario está dividido en dos partes: por un lado
tenemos servicios del SO que operan directamente sobre el
kernel e
implementan dichas llamadas; por otro lado tenemos aplicaciones
típicas (editores, etc.) que emplearán los servicios del SO como en
sistemas más tradicionales.

Figure: Modelo de operación del sistema en Off.
Off intenta suministrar un modelo de operación similar al que
suministran las arquitecturas (hardware) que podemos encontrar en la
actualidad. En este sentido, Off suministra algunas funciones a las
aplicaciones (disponibles mediante llamadas al sistema) y en ciertas
ocasiones envía eventos a dichas aplicaciones.
Al mencionar ``evento'' en el párrafo anterior nos referimos tanto a
interrupciones como a excepciones y ``upcalls''. El SO implementado
sobre Off ve una máquina virtual que dispone de las instrucciones
suministradas por el hardware y de algunas otras implementadas por el
kernel. En ciertas ocasiones la ejecución normal se ve interrumpida por
eventos (algunos procedentes de hardware, otros procedentes del
kernel). Como veremos en la sección 3.4.3 (donde discutimos
el tratamiento de eventos en Off sobre Intel x86), Off sólo
distingue entre dos tipos de eventos:
- Eventos síncronos, causados (o relacionados) con la ejecución de
una determinada instrucción o llamada al sistema. Incluimos en éstos
tanto traps, como excepciones y llamadas del
kernel al usuario puesto
que la consideración de todos ellos como un solo tipo de evento
simplifica el uso del sistema. Abusando del lenguaje, llamaremos a
estos eventos excepciones.
- Eventos asíncronos, que no tienen relación directa con la
ejecución del código del usuario. Incluimos en éstos interrupciones
causadas por el hardware y mensajes asíncronos enviados por el
kernel
o por los usuarios del sistema.
En ambos casos, los eventos se notifican mediante portales sean estos
excepciones (traps, excepciones hardware y upcalls) o eventos
asíncronos.
Next: Dominios de protección
Up: La arquitectura del kernel
Previous: La arquitectura del kernel
Francisco J. Ballesteros
Fri Dec 19 17:18:03 MET 1997