Es fácil añadir nuevos servicios (extensibilidad).
Existe un alto grado de configuración del sistema (flexibilidad).
La detección y corrección de errores se puede realizar a nivel de micro-kernel, lo que se traduce en un sistema muy más seguro.
Y, por lo que respecta a sus desventajas:
Sobrecarga en las comunicaciones, lo que implica menos eficiencia.
Actividades
7.¿Cuáles son las principales diferencias entre un sistema operativo monolítico y un sistema operativo basado en microkernels?
3.3.Sistemas modulares y por capas
La estructura modular, como su propio nombre indica, se basa en que la funcionalidad del sistema operativo se reparte en módulos y/o procesos distintos. Se trataría de componentes lógicos independientes con interfaces muy bien definidas. Los módulos o procesos pueden apoyarse en un pequeño módulo básico que proporciona la funcionalidad mínima: E/S básica, memoria, etc.
Por lo general, este modelo es aceptable cuando se habla de sistemas operativos de propósito general. Sin embargo, no es adecuado cuando se necesita optimizar al máximo la eficiencia para un propósito más específico.
Entre los diversos inconvenientes, destacan:
Falta de protección y fiabilidad.
Menos flexible que la arquitectura monolítica.
En la arquitectura por capas, también llamada por anillos concéntricos, el sistema operativo se compone de niveles. Una jerarquía de niveles, donde cada nivel envuelve a otros dispuestos más internamente o más cercanos al nivel inferior, que suele ser el que corresponde con el kernel o núcleo del SO.
Sus principales ventajas son:
Modularidad.
Fácil depuración y verificación de cada capa por separado.
Entre los inconvenientes, destacan:
Falta de protección y fiabilidad.
Menos flexible que la arquitectura monolítica.
Alto costo en la definición de cada capa en la etapa de diseño.
Dentro de este tipo de arquitectura, existen varias clases específicas:
Máquinas virtuales.
Exokernels.
Modelos cliente-servidor.
La diferencia fundamental entre ellos radica en los servicios que proporciona el microkernel.
Las máquinas virtuales son un tipo de arquitectura basada en microkernel. En este modelo, el mircrokernel se denomina monitor de máquina virtual y se ejecuta sobre el hardware directamente, con soporte para multiprogramación. Además proporciona una visión de múltiples máquinas virtuales a la capa superior. Cada máquina virtual es una copia exacta del hardware. Esto consigue que se puedan ejecutar varios sistemas operativos a la vez.
La idea principal es que los procesos se ejecutan limitados por los recursos y abstracciones que proporciona cada máquina virtual.
Sus principales ventajas son:
Existe una perfecta protección entre componentes.
Se aprovecha mejor el hardware.
La reutilización de código es máxima.
En cuanto a sus inconvenientes, destaca que:
La simulación del hardware real es costosa, lo que implica que la ejecución sea poco eficiente.
Aplicación práctica
Desea diseñar un sistema operativo en el que pueda intercambiar módulos que serán programados en diferentes tipos de lenguaje. Imagine que es uno de los ingenieros informáticos responsables de determinar el diseño arquitectónico. Presente el diseño del sistema operativo adecuado y defienda su propuesta.
SOLUCIÓN
Podría escoger un diseño basado en microkernel o bien un diseño modular. En ambos casos se sugiere una arquitectura basada en entidades lógicas independientes con una interfaz bien definida, por lo que sería fácil elaborar las funciones del sistema operativo en diferentes lenguajes con total compatibilidad entre ellas.
En la arquitectura microkernel, el micronúcleo proporciona la funcionalidad básica del sistema operativo y debería estar implementado en el mismo lenguaje para evitar perder consistencia y eficiencia. Los demás módulos actuarán como procesos servidores en el espacio de usuario. Por lo tanto, la implementación de cada módulo puede ser considerada independiente. El único requisito es que es permitida la comunicación entre los diferentes módulos.
En el caso de la arquitectura basada en módulos, se suele utilizar un enfoque orientado a objetos. La estructura del sistema operativo se compone de módulos totalmente independientes entre ellos, de forma que, si alguno falla, no afecta a ningún proceso iniciado por otros módulos. Incluso se pueden cargar dinámicamente. Esto permite aplicar un desarrollo basado en componentes sobre el sistema operativo e implementar cada componente con un lenguaje diferente sin afectar a la arquitectura.
Читать дальше