Estructura de los sistemas operativos
[TANE93] [BIC88]
En el apartado 3 se ha visto el aspecto externo de los sistemas operativos (es
decir, la interfaz con el programador y con el usuario), en este apartado se echará un vistazo al interior del sistema operativo. En las subsecciones siguientes se examinarán algunas de las formas posibles de estructurar el código deun sistema operativo. Los diseños estudiados no son exhaustivos, pero dan una idea de las posibilidades.
1.5.1 Sistemas monolíticos
Este tipo de organización es, con diferencia, la más común. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cadaprocedimiento del sistema tiene una interfaz bien definida
en términos de parámetros y resultados, y cada uno de ellos es libre de llamar a cualquier otro, si éste último proporciona un cálculo útil para el primero.
Para construir el programa objeto real del sistema operativo siguiendo este punto de vista, se compilan de forma individual los procedimientos, o los ficheros quecontienen los procedimientos, y después se enlazan en un sólo fichero objeto con el enlazador. En términos de ocultación de la
información, ésta es prácticamente nula: cada procedimiento es visible a los demás (en contraste con una estructura con módulos o paquetes, en la que la mayoría de la información es local a un módulo, y donde sólo los datos señalados de forma expresa pueden serllamados desde el exterior del
módulo).
Los servicios (mediante llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parámetros en lugares bien definidos, como los registros o la pila, para después ejecutar una instrucción especial
de trampa, a veces referida como llamada al núcleo o llamada al supervisor. Esta instruccióncambia la máquina del modo usuario al modo núcleo (también conocido como modo supervisor), y transfiere el control al sistema operativo, lo que se muestra en el evento (1) de la figura 5.1.
El sistema operativo examina entonces los parámetros de la llamada para determinar cual de ellas se desea realizar, como se muestra en (2) de la figura 5.1. A continuación, el sistema operativoanaliza una tabla que
contiene en la entrada k un apuntador al procedimiento que implementa la k- ésima llamada al sistema. Esta operación, que se muestra en (3) de la figura
5.1, identifica el procedimiento de servicio, al cual se llama. Por último, la llamada al sistema termina y el control vuelve al programa del usuario.
[pic]
Esta organización sugiereuna estructura básica del sistema operativo:
[pic] Un programa principal que llama al procedimiento del servicio solicitado.
[pic] Un conjunto de procedimientos de servicio que lleva a cabo las llamadas al sistema.
[pic] Un conjunto de procedimientos de utilidades que ayudan a los procedimientos de servicio.En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga de ella. Los procedimientos de utilidad hacen cosas necesarias para varios procedimientos de servicio, como por ejemplo, buscar los datos del programa del usuario. Esta división de los procedimientos en
tres capas se muestra en la figura 5.2.
[pic]
1.5.2 Modelocliente-servidor
Una tendencia de los sistema operativos modernos es la de trasladar el código a capas superiores, y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el
implantar la mayoría de las funciones del sistema operativo como procesos
de usuario. Para solicitar un servicio, como la lectura de...
Regístrate para leer el documento completo.