Sei sulla pagina 1di 5

Arquitectura MicroKernel

Damian Maisincho.
Erik.maisincho@udla.edu.ec
PabloVicuna
Pablo.vicuna@udla.edu.ec
Anthony Mendoza Freire
anthony.mendoza@udla.edu.ec
Ronnie Almeida Cadena
ronnie.almeida@udla.edu.ec
Victor Sarango
victor.sarango@udla.edu.ec

Universidad de las Américas


Resumen—El día lunes 26 de marzo de 2018, se realiza una El modo kernel es el encargado de gestionar los
exposición sobre la arquitectura microkernel, dicha exposición procesos a través de los servicios de las llamadas al
consiste en tratar de explicar de una manera clara y detallada
sistema.
sobre el funcionamiento con sus respectivas características de
dicha arquitectura con el objetivo de investigar y dominar los
Además, garantiza el aislamiento de las partes que
conocimientos acerca de este tema en específico ya que la están fuera del núcleo, como los módulos son
interpretación y entendimiento del microkernel resulta un tema independientes unos de otros, si cae uno de ellos los
bastante complejo por lo que se requiere de bastante atención a la demás no se ven afectados y pueden seguir
hora de interpretar como se interconectan el conjunto de servicios funcionando.
a través de las llamadas al sistema ya que es una de las Alguna de las tareas que realiza el microkernel son:
arquitecturas líderes en el mercado de la informática.
• Manipulación de las interrupciones en el
Índice de Términos— microkernel, arquitectura, servicios. sistema desde dispositivos físicos.
• Manipula excepciones del procesador.
Abstract—On Monday, March 26, 2018, an exhibition is held • Proporciona soporte para la recuperación de
on the microkernel architecture, the exhibition consists of dealing un sistema con alguna falla de caída de energía.
in a clear and detailed way about the operation with its respective
characteristics of said architecture with the objective of
investigating and mastering the knowledge about this topic in 2. DESARROLLO
specific, since the interpretation and the knowledge of the micro 2.1. Nociones básicas.
panel are a quite complex problem reason why it requires a lot of
attention at the time of interpreting how the set of services is
interconnected through the calls to the system since it is one of Un sistema operativo desempeña 5 funciones
the leading architectures in the computer market. básicas en la operación de un sistema informático:
La idea básica del diseño de microkernel es lograr
Keywords— microkernel, architecture, services. una alta confiabilidad al dividir el sistema operativo
en módulos pequeños y bien definidos, sólo uno de
1. INTRODUCCIÓN los cuales (el microkernel) se ejecuta en modo
kernel y el resto se ejecuta como procesos
Este trabajo se llevó a cabo con la finalidad de
ordinarios.
poder explicar la arquitectura de microkernel y todo
lo que refiere a los conocimientos básicos sobre el Además, garantiza el aislamiento de las partes que
funcionamiento con sus respectivas características están fuera del núcleo, como los módulos son
de la estructura antes mencionada. independientes unos de otros, si cae uno de ellos los
Para empezar, se definen los conceptos básicos demás no se ven afectados y pueden seguir
sobre la arquitectura del microkernel, Los sistemas funcionando.
operativos microkernel proveen un conjunto de Alguna de las tareas que realiza el microkernel son:
llamadas mínimas al sistema para implementar • Manipulación de las interrupciones en el sistema
servicios básicos como lo son espacios de desde dispositivos físicos.
direcciones, comunicación entre procesos y gestión • Manipula excepciones del procesador.
de hilos.
 Proporciona soporte para la recuperación de Los procesos suelen comunicarse a través de paso
un sistema con alguna falla de caída de de mensajes. Se necesitaba una herramienta para
energía. cambiar la forma de diseñar sistemas operativos y el
modelo de programación cliente-servidor fue
utilizado para encontrarla. Aplicando este modelo al
diseño de sistemas operativos, parte de los servicios
que ofrecen éstos, si no todos, pueden construirse
como procesos servidores.

De esta forma se ve un sistema operativo como una


aplicación. Al conjunto de servidores que
proporcionan el interfaz de un sistema operativo lo
denominamos subsistema. Inicialmente los
subsistemas se ejecutaban en modo privilegiado
Figura 1. Arquitectura Microkernel
como los sistemas operativos tradicionales. El
siguiente paso es pensar que los subsistemas puedan
En la imagen anterior se puede reducir el
ejecutarse en modo usuario. Podemos, pues,
funcionamiento de la arquitectura microkernel en la
disponer de un servidor de ficheros, de un gestor de
que consiste a partir del kernel que es el encargado
procesos, de un gestor de memoria virtual, de un
de gestionar los procesos a través de los servicios y
proceso encargado de verificar los accesos a la
estos servicios se comunican con el software del
información,etc. Todos ellos constituyen un
ordenador para intentar obtener una respuesta y con
subsistema y se ejecutan sobre un software de base
esto traer o enviar información al sistema.
que controla el ordenador: el microkernel.
2.2. Microkernel como plataformas para
sistemas operativos.

En los entornos distribuidos y en el diseño de


aplicaciones había empezado a usarse el modelo de
programación llamado cliente-servidor. En este
modelo las aplicaciones están compuestas por
diferentes procesos que colaboran para llevar a cabo
su objetivo. De hecho, una aplicación está formada
por dos tipos de procesos: unos, los servidores,
ofrecen un interfaz a través del cual los otros, los Figura 3. Estructura Arquitectura Microkernel
clientes, piden su servicio, consiguiendo, en
general, realizar un trabajo de mayor complejidad. Los microkernel realizan la gestión básica del
Un proceso cliente puede ser a la vez servidor de ordenador. Así, reciben las interrupciones
otro proceso. de los dispositivos y las excepciones (fallos de
página, división por cero, ...) e invocan la rutina
que las gestiona o pasan un mensaje hacia el
proceso encargado de resolverlas; llevan a cabo la
gestión de procesos, permitiendo, con frecuencia,
ejecución en tiempo real; controlan las
comunicaciones entre procesos (la base del modelo
cliente-servidor); reparten la memoria del
ordenador; en los multiprocesadores, permiten
controlar el número de procesadores que están
ejecutando código de usuario. Con los microkernel
se ha vuelto a la filosofía UNIX original: la
Figura 2. Principio Arquitectura Microkernel sencillez; y, con ella, la gestión del sistema
realizada por el microkernel podrá ser más eficiente
y más fácil de diseñar, escribir y mantener.
2.3. Servicios ofrecidos por el microkernel entre procesos que residen en ordenadores
diferentes. En este caso, el microkernel suele ser
Un proceso es una entidad a la cual se asocian cliente de un servidor de mensajes a través de la
recursos del sistema (memoria, procesadores, red. Este servidor tiene la misión de enviar
ficheros, ...). Podemos verlo como la unidad de todos los mensajes destinados a ports remotos a
asignación de recursos. Véase la similitud con un través de la red y de recibir de ella los mensajes
proceso UNIX, el cual tiene un espacio de enviados desde otros ordenadores hacia cualquiera
direcciones delimitado, una tabla de ficheros de los ports locales.
abiertos a los que puede acceder, etc.
Tradicionalmente, el sistema operativo asocia un 2.4. Ventajas de la arquitectura
procesador a los procesos para que se ejecuten. Sin microkernel
embargo, en un microkernel, para que un programa
de usuario se ejecute es necesario tener algo más Un microkernel es un pequeño kernel del sistema
que un proceso con el programa cargado en operativo que proporciona las bases para
memoria: los procesos han de contener, como ampliaciones modulares. La esencia consiste en que
mínimo, un flujo de ejecución (o thread). Los flujos solo las funciones absolutamente esenciales del
son uno de los recursos que se pueden asociar a los kernel del sistema operativo deben permanecer en el
procesos y consiste en la representación de código microkernel. Los servicios y las aplicaciones menos
ejecutándose o, lo que es lo mismo, representa un esenciales se construyen sobre el microkernel y se
procesador virtual. Dicha representación contiene ejecutan en modo usuario.
los registros del procesador físico asociado, así
como la prioridad de ejecución, etc. Las ventajas teóricas de los sistemas a microkernel
son la consecuencia de la utilización del modo
protegido por los servicios que acompañan el
microkernel. En efecto, colocando los servicios en
el espacio usuario, éstos gozan de la protección de
la memoria. La estabilidad del conjunto es
mejorada: un error de un servicio en modo
protegido tiene pocas consecuencias sobre la
estabilidad del conjunto de la máquina.

Además, reduciendo las posibilidades para los


servicios a poder directamente intervenir sobre el
Figura 4. Servicios Microkernel
material, la seguridad del sistema es reforzada. El
sistema también gana en posibilidades de
Se puede ver que dentro de un proceso puede haber configuración. Así, sólo los servicios útiles deben
varios flujos ejecutándose concurrentemente. Si ser realmente lanzados al comienzo(arranque). Las
consideramos que desde siempre un proceso ha interdependencias entre los diferentes servicios son
representado una máquina virtual que nos ofrece, débiles. El añadido o la retirada de un servicio no
entre otros recursos, un espacio de direcciones y un perturba el conjunto del sistema. La complejidad del
procesador, ahora se ha ampliado esta idea conjunto es reducida.
añadiendo más procesadores; en estos momentos un
proceso ofrece un multiprocesador (cada flujo El desarrollo de un sistema a microkernel también
representa un procesador) y, si el ordenador dispone se encuentra simplificado sacando partido a la vez
de más de un procesador físico, será posible de la protección de la memoria y de la
ejecutar más de un flujo en paralelo. interdependencia entre los servicios. Los errores
provocados por las aplicaciones en modo usuario
El microkernel se ocupa de que todos los mensajes son tratados más simplemente que en el modo
lleguen a su destino. Existe, incluso, la kernel y no ponen en peligro la estabilidad global
posibilidad de que, de forma transparente al usuario, del sistema. La intervención sobre una
estas comunicaciones se lleven a cabo funcionalidad defectuosa consiste en parar el
antiguo servicio luego en lanzar el nuevo, sin deber 2.6. Arquitecturas Microkernel mas
arrancar de nuevo toda la máquina. importantes.

2.6.1. VKERNEL.

V kernel, desarrollado en Stanford en 1985, puede


considerarse el primero de los
microkernels actuales en cuanto a su filosofía de
diseño: ofrecer una plataforma base
(“backplane software”, en palabras de sus
diseñadores) sobre la cual poder desarrollar
Figura 5. Arquitectura Monolítica y Microkernel.
diferentes sistemas según las diferentes necesidades
de los usuarios.
2.5. Estructura Arquitectura Microkernel Sobre él, V System es el sistema operativo realizado
a base de servidores y librerías de
emulación de UNIX, para hacerlo compatible con el
software existente.}

2.6.2. MACH

Mach es un kernel multiprocesador desarrollado en


la Carnegie Mellon University a partir de 1986 y
sobre el que se continúa investigando en la
Figura 6. Estructura Microkernel. actualidad. Mach fue elegido hace años por la Open
Capa 1: Software Fundación como núcleo del sistema
operativo OSF-1. Este microkernel comenzó siendo
 Atiende las interrupciones, guardando y una modificación de UNIX BSD, añadiéndole
recuperando registros nuevas funcionalidades. Hasta la versión 3.0, no
 Planificación de tareas y procesos incluida, Mach era un sistema operativo monolítico.
 La parte de esta capa que trata con el nivel En esta última versión se ha seguido ya la tendencia
inferior de las interrupciones esta escrita en a construir el sistema como un microkernel
ensamblador, el resto en C y un servidor del subsistema UNIX.
Capa 2:
 Contiene las tareas de I/O, manejadores de 2.6.3. CHORUS
dispositivos
Chorus1 es un mi Desarrollado desde 1986, en el INRIA (Francia),
 Todas las tareas se gestionan
pensado inicialmente para sistemas de máquinas
independientemente y se comunican
distribuidas. Uno de los objetivos primordiales de
utilizando mensajes.
su desarrollo fue el desplazar el mayor número
Capa 3:
posible de funciones fuera del núcleo, y demostrar
que UNIX podía construirse como un conjunto de
 Se ocupa del manejo de memoria, sistema de módulos que no compartían memoria. La versión
ficheros, servidor de red
actual mantiene muchos de los objetivos de las
 Se ejecuta con menor privilegio que la capa versiones iniciales y añade algunos más como
1y2 gestión de sistemas en tiempo real y la
 El manejo de recursos se realiza comercialización, ya que al poco tiempo el equipo
principalmente en el núcleo (capa 1 y 2) y investigador se constituyó en su propia empresa
las llamadas al sistema en la capa 3 Chorus Systèmes. El producto, que continúa en
Capa 4: evolución para adaptarse a las necesidades de los
usuarios y en los últimos años Chorus ha sido
 Contiene todos los procesos de usuario, elegido por AT&T como núcleo para su versión
shell, editores, compiladores, etc. microkernel de UNIX.
2.6.4. PAROS [6] Chorus Systèmes. “Overview of the Chorus Distributed
Operating System”. Chorus Systèmes Technical Report CS/TR-
Diseñado en la Universidad Politécnica de 90-25.1.
Catalunya, Paros difiere esencialmente de los
microkernel anteriores, porque se ha realizado para
multiprocesadores de memoria distribuida. En
concreto, su desarrollo inicial ha sido sobre
transputers, aunque es portable a cualquier otro tipo
de procesador que trabaje con el mismo paradigma
de memoria.

3. CONCLUSIONES

o Garantiza el aislamiento de las partes que están


fuera del núcleo, como los módulos son
independientes unos de otros, si cae uno de ellos
los demás no se ven afectados y pueden seguir
funcionando.
o Los sistemas operativos bajo la arquitectura
microkernel nos ofrece ser más rápidos en
comparación a los monolíticos y por capas ya
que solamente los archivos fundamentales son
utilizados para el arranque del computador
dejando a los servicios como procesos
secundarios.
o La evolución de los sistemas microkernel han
venido de la mano con el desarrollo de los
computadores así también cabe acotar que las
ventajas que ofrecen en centralizar los procesos
de arranque se utilizan para poder solamente
optimizar el uso del sistema operativo
volviéndolo más seguro para el usuario ya que el
mismo solamente tiene acceso a los servicio de
la capa usuario, no permitiéndole alterar la base
del sistema.

REFERENCIAS
[1] A. Tanenbaum, Sistemas operativos modernos, 3rd ed.,
México, Ed. Pearson Educación, 2009, Cap. 1, pp. 7-18.
[2] A. Tanenbaum - A. Woodhull, Sistemas operativos:
Diseño e implementación, 2nd ed., México: Prentice Hall, 1997,
Cap. 1, pp. 5-13.
[3] Michel Gien, “Micro-kernel design “. Unix review, vol.
8 No. 11.
[4] Marc Guillermont, et al. “A Second-Generation Micro-
Kernel Based Unix; Lessons in Performance and compatibility”.
USENIX Winter’91. Dallas TX.
[5] Mike Accetta, et al., “Mach: A New Kernel Foundation
For Unix development“.Proc. of USENIX Summer'86
Conference, Atlanta, GA (9-13 June 1.986). pp. 93-112.

Potrebbero piacerti anche