Beruflich Dokumente
Kultur Dokumente
Sistemas monolíticos
En los sistemas monolíticos, todos los componentes de gestión y programas del sistema
están escritos en un solo código o espacio lógico. 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.
Los sistemas monolíticos son los más comunes puesto que su implementación y diseño son
los menos complejos. 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 sin depurara en el código del sistema.
En ella se ordena el sistema operativo como una jerarquía de estratos o capas. Cada capa
se integra empleando únicamente aquellas acciones que le brindan el nivel
instantáneamente inferior. Se utilizan métodos modulares y de diseño top-down. La limpieza
y comprobación del sistema es mucho más simple. La mayor complicación está en
establecer las capas. Los procedimientos al tener que pasar por varias capas, resultan
menos eficientes u óptimos.
La idea consiste en tener un núcleo que brinde los servicios mínimos de manejo de
procesos, memoria y que provea la comunicación entre procesos.
Las demás funciones se diseñan como procesos del sistema. Estos procesos del sistema
se llevan a cabo en modo usuario. Cuando un usuario demanda un servicio al núcleo este
transmite el control al proceso del sistema respectivo. Cuando finaliza, el núcleo transmite
la respuesta al usuario. El núcleo efectúa una transmisión de mensajes.
Máquinas virtuales
La definición de una máquina virtual es diseñar sobre un equipo real distintas máquinas
virtuales en las que puedan avanzar sistemas operativos diferentes al mismo tiempo.
Un ejemplo es el sistema operativo VM que distancia los aspectos de multiprogramación y
máquina extendida a través de un monitor de máquina virtual, que ofrece
multiprogramación, y por otra parte se encuentran los núcleos de los sistemas operativos
que brindan la cualidad de máquina extendida.
Modelo cliente-servidor
Lo que hace es 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 un bloque de cierto fichero, un proceso de usuario
(denominado en este caso proceso cliente) envía la solicitud a un proceso servidor, que
realiza el trabajo y devuelve la respuesta.
Lo único que hace el núcleo es controlar la comunicación entre los clientes y los servidores.
Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema,
además, puesto que todos los servidores se ejecutan como procesos en modo usuario, y
no en modo núcleo, no tienen acceso directo al hardware. En consecuencia, si hay un error
en el servidor de ficheros éste puede fallar, pero esto no afectará en general a toda la
máquina.
Exokernel
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.
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. Cada
máquina virtual de nivel de usuario puede ejecutar su propio sistema operativo