Está en la página 1de 14

Estructura de los

Sistemas Operativos
Antonio López Proaño
Introducción

• Ha llegado el momento de dar una mirada al interior de


los Sistemas Operativos.
• En las siguientes secciones examinaremos cuatro
estructuras distintas que se han probado, a fin de tener
una idea de como han ido evolucionando las estructuras
de los Sistemas Operativos.
Arquitecturas y Estructuras

• La Arquitectura estará influida en alguna medida por


el hardware que manejará. Sin embargo es posible
identificar algunos componentes comunes como
el núcleo y las llamadas al sistema.
• Las siguientes estructuras que veremos, no son de manera
las únicas posibles, pero nos darán una idea de algunos
diseños que se han llevado a la práctica. Los cuatro
diseños son:
• Los sistemas monolíticos
• Los sistemas por capas
• Los sistemas de Micronúcleo
• Los sistemas cliente-servidor
Sistemas monolíticos

• Los sistemas monolíticos son los más comunes puesto que


su implementación y diseño son los menos complejos.
• Todos los componentes de gestión y programas del
sistema están escritos en un solo código.
• Pueden decirse que el núcleo es el Sistema Operativo. La
división más evidente que puede hacerse es
entre procesos de aplicación o usuario y procesos del
sistema.
Ventajas y Desventajas
Sistemas monolíticos

• Ventaja
La ventaja principal es la velocidad, ya que todos los componentes del
Sistema Operativo comparten los privilegios y direcciones y la separación
funcional solo se hace entre procesos del sistema y los de aplicación, la
demora para ejecutar las llamadas al sistema es mínima.
• Desventaja
La desventaja es que como todo el sistema se ejecuta en el mismo nivel
de privilegio que el núcleo (el Sistema Operativo es el núcleo) es muy
probable que haya problemas (el sistema se apague, se bloquee o se
cuelguen procesos, por ejemplo) si ocurre algún fallo del hardware o
existe algún error, se depurará en el código del sistema.
Sistemas por capas o niveles de privilegio

• En la medida que el hardware se desarrolló para incorporar


mecanismos de protección para la gestión
de procesos, memoria y entrada/salida, los Sistemas
Operativos se adaptaron a este diseño.
• El objetivo de la arquitectura por capas o niveles de
privilegio, es separar la acción del código de los procesos
del sistema, del núcleo y de los procesos de usuario.
• Es decir crear restricciones en cuanto a las llamadas al
sistema que puedan ejecutar los procesos de determinados
niveles, esto evita que un proceso pueda efectuar una
llamada al sistema que requiera la atención de un
componente de menor privilegio
Sistemas por capas o niveles de privilegio

• Se describió como una serie de anillos concéntricos, en donde los interiores tenían
más privilegios que los exteriores.
• El hardware hace posible que se designaran procedimientos individuales (en
realidad, segmentos de memoria) para proteger la información contra lectura,
escritura o ejecución.
Ventajas y Desventajas
Sistemas por capas

• Ventajas:
Depuración y verificación de procesos por capas, (tras depurar la
1era. capa su funcionamiento seria correcto, mientras se trabaja en
la 2da. capa).
• Desventajas:
Exceso consumo de recursos (hardware), ya que cada capa exige un
gasto extra.
Llamadas entre capas, exige el envió de parámetros entre capas,
equivalente a una llamada al sistema.
Sistemas de Micronúcleo

• En esta, se trata de combinar el rendimiento y sencillez de la


arquitectura monolítica con la protección y organización de la
arquitectura por capas.
• La idea fundamental es obtener un núcleo lo más pequeño y
rápido posible y tratar el resto de las funciones y
componentes como procesos de aplicación.
• El resto se ejecutan como aplicaciones de usuario; es decir,
con el nivel mínimo de privilegios.
• En alguna medida deben incluirse en el núcleo otras funciones
como el manejo de hardware y algunos drivers.
Ventajas y Desventajas
Sistemas de Micronúcleo

• Ventajas:
La descentralización de los fallos (un fallo en una parte del sistema
no se propagaría al sistema entero).
La facilidad para crear y depurar controladores de dispositivos.
• Desventajas:
La complejidad en la sincronización de todos los módulos que
componen el Micronúcleo y su acceso a la memoria.
Mayor complejidad en el código, menor rendimiento y limitaciones
en diversas funciones.
Sistemas cliente-servidor

• En esta arquitectura, el objetivo fundamental del núcleo es


garantizar la comunicación entre procesos.
• En cada sistema independiente solo estarán presentes el
núcleo y los componentes mínimos para la ejecución de uno
o algunos procesos.
• En esta arquitectura, se manifiesta con mayor peso la
necesidad de establecer llamadas al sistema robustas, para
la comunicación entre procesos.
• Se escoge el modelo cliente - servidor para
esta comunicación, porque se establece que cada proceso
(independiente o no) actúa como servidor del resto.
Ventajas
Sistemas cliente-servidor

• Centralización del control: Los accesos, recursos y la integridad de


los datos son controlados por el servidor de forma que un
programa cliente defectuoso o no autorizado no pueda dañar el
sistema.
• Escalabilidad: Se puede aumentar la capacidad de clientes y
servidores por separado.
• Fácil mantenimiento: Al estar distribuidas las funciones y
responsabilidades entre varios ordenadores independientes, es
posible reemplazar, reparar, actualizar, o incluso trasladar un
servidor, mientras que sus clientes no se verán afectados por ese
cambio.
Desventajas
Sistemas cliente-servidor

• La congestión del tráfico ha sido siempre un problema en el


paradigma de C/S.
• El paradigma de C/S clásico no tiene la robustez de una redP2P,
cuando un servidor está caído, las peticiones de los clientes no
pueden ser satisfechas.
• Se necesita software y hardware específico, sobre todo en el
lado del servidor, para satisfacer el trabajo. Por supuesto, esto
aumentará el costo.
Conclusión

• Hemos visto como evoluciono la manera de manejar la estructura


de los S.O. a través del tiempo y como se adaptaron a las
necesidades del usuario de la mano del hardware que se
manejaba.
• Actualmente la tendencia es desarrollar aplicaciones distribuidas
en vez de Sistemas Operativos distribuidos, aprovechando las
redes de computadoras, permitiendo que los procesos se ejecuten
en entornos separados, normalmente en diferentes plataformas
conectadas a una red.

También podría gustarte