Zusammenfassung der Ressource
Estructura de los Sistemas Operativos
- En las siguientes secciones analizaremos seis estructuras distintas que se
han probado, para poder darnos una idea del espectro de posibilidades. De
ninguna manera quiere esto decir que sean exhaustivas, pero nos dan una
idea de algunos diseños que se han probado en la práctica. Los seis
diseños son: sistemas monolíticos, sistemas de ca- pas, microkernels,
sistemas cliente-servidor, máquinas virtuales y exokernels.
- Sistemas monolíticos
- En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los
cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta
técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros
y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo
útil que la primera necesite. Para construir el programa objeto real del sistema operativo cuando se
usa este método, se compilan todos los procedimientos individuales a archivos que contienen los
procedimientos y después se combinan todos en un solo archivo objeto con el enlazador. En términos
de ocultamiento de información, esencialmente no existe ninguno; todo procedimiento es visible
para todos (al contrario de una estructura que contiene módulos o paquetes, en los cuales mucha
información es local a un módulo y sólo pueden llamar puntos de registro designados oficialmente
del exterior del módulo
- En las siguientes secciones analizaremos seis estructuras distintas que se han probado, para poder
darnos una idea del espectro de posibilidades. De ninguna manera quiere esto decir que sean
exhaustivas, pero nos dan una idea de algunos diseños que se han probado en la práctica. Los seis
diseños son: sistemas monolíticos, sistemas de ca- pas, microkernels, sistemas cliente-servidor,
máquinas virtuales y exokernels.
- Sistemas monolíticos
- En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los
cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta
técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros
y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo
útil que la primera necesite. Para construir el programa objeto real del sistema operativo cuando se
usa este método, se compilan todos los procedimientos individuales a archivos que contienen los
procedimientos y después se combinan todos en un solo archivo objeto con el enlazador. En
términos de ocultamiento de información, esencialmente no existe ninguno; todo procedimiento es
visible para todos (al contrario de una estructura que contiene módulos o paquetes, en los cuales
mucha información es local a un módulo y sólo pueden llamar puntos de registro designados
oficialmente del exterior del módulo
- Sistemas de capas
- Consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la
inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische
Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes. • Capa 0:
Asignación del procesador y multiprogramación En esta capa se proporciona la multiprogramación
básica de la CPU, esto quiere decir que trabaja en la asignación del procesador y también se alteran los
procesos cuando se ocurren las interrupciones o expiran los cronómetros. Dichos sistemas constan de
procesos secuénciales, estos se pueden programar sin importar que varios procesos se estén
ejecutando en el mismo procesador.
- Microkernels
- Este método estructura el sistema operativo al remover todos los componentes no esenciales del
kernel e implementarlos como programas a nivel usuario del sistema operativo. El resultado es un
kernel mas pequeño y compacto. Aquí hay un consenso de acuerdo a que servicios deberían
permanecer en el Kernel y cual deben ser implementados en espacio de usuario .En general, así los
microkernels típicamente proveen del mínimo procesamiento, y manejo de memoria, y además la
facultad de comunicación.
- Modelo cliente-servidor
- La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten
entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados
clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea
también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más
ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
Algunos ejemplos de aplicaciones computacionales que usen el modelo cliente-servidor son el Correo
electrónico, un Servidor de impresión y la World Wide Web.
- Máquinas virtuales
- Una vez nos ha quedado claro que una máquina virtual no es realmente ninguna máquina llena de
engranajes con un casco de realidad virtual, sino un software, entremos más en detalle sobre qué son
las máquinas virtuales. Lo primero que debes saber es que hay dos tipos de máquinas virtuales
diferenciadas por su funcionalidad: las de sistema y las de proceso, si bien la gran mayoría de las veces
que oigas hablar de una máquina virtual casi seguro que se estarán refiriendo a las de sistema.
- Exokernels
- En vez de clonar la máquina actual, como se hace con las máquinas virtuales, otra estrategia es
particionarla; en otras palabras, a cada usuario se le proporciona un subconjunto de los recursos. Así,
una máquina virtual podría obtener los bloques de disco del 0 al 1023, la siguiente podría obtener los
bloques de disco del 1024 al 2047 y así sucesivamente. En la capa inferior, que se ejecuta en el modo
kernel, hay un programa llamado exokernel (Engler y colaboradores, 1995). Su trabajo es asignar
recursos a las máquinas virtuales y después comprobar los intentos de utilizarlos, para asegurar que
ninguna máquina trate de usar los recursos de otra.