Читать книгу Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609 - José Luis Villada Romero - Страница 28
3.4.Máquinas virtuales
Оглавление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.