Mach
Los inicios de mach van desde un sistema llamado RIG (Rochester Intelligent Gateway) que inció en la Universidad de Rochester en 1975. RIG fue escrito para una minicomputadora de 16 bits de Data General llamada Eclipse. Su principal objetivo de investigación era demostrar que se podian estructurar los sistemas operativos de manera modular, como una colección de procesos que se comuniquen entre si mediante la transferencia de mensajes incluso a través de una red.
En 1984, Accent era utilizado en a PERQ 150 pero perdió terreno debido a UNIX.
Esto hizo que Rashid iniciara un proyecto de sistemas operativos de tercera generación llamado Mach.
La primera versión de Mach apareció en 1986 para la VAX 11/784 un multiprocesador de 4 CPU. Poco después se realizaron las versiones para la IBM PC/RT y la Sun 3. Para eñ año de 1987, Mach también se ejecutaba en los multiprocesadores Encore y Sequent.
Objetivos de Mach
Mach ha evolucionado de manera considerable a partir de su primera encarnación como RIG. Los objetivos del proyecto también han variado con el tiempo.
Los actuales objetivos de Mach son:
1.- Proporcionar una base para la construcción de otros sistemas operativos.
2.- Soporte de un espacio de direcciones ralo y de gran tamaño.
3.- Permitir el acceso transparente a los recursos de red.
4.- Explotar el paralelismo tanto en el sistema como en las aplicaciones.
5.- Hacer que Mach se pueda transportar a una colección mas grande de maquinas.
El micronúcleo de Mach
Se diseño como base para emular UNIX y otros sistemas operativos. La emulación se lleva a cabo mediante una capa del software que se ejecuta fuera del núcleo, en el espacio del usuario. Cada emulador consta de una parte que esta presente en el espacio de direcciones de los programas de aplicación asi como uno o mas servidores
Se diseño como base para emular UNIX y otros sistemas operativos. La emulación se lleva a cabo mediante una capa del software que se ejecuta fuera del núcleo, en el espacio del usuario. Cada emulador consta de una parte que esta presente en el espacio de direcciones de los programas de aplicación asi como uno o mas servidores
El núcleo controla cinco abstracciones principales:
1. Procesos.
2. Hilos.
3. Objetos de la memoria.
4. Puertos.
5. Mensajes.
Un concepto exclusivo de Mach es el de objeto de memoria, una estructura de datos que se puede asociar con el espacio de direcciones de un proceso. Los objetos de memoria ocupan una o más páginas y forman la base del sistema de memoria virtual de Mach. Cuando un proceso intenta hacer referencia a un objeto de memoria no presente en la memoria física principal, obtiene un fallo de página. Como en todos los sistemas operativos, el núcleo captura este fallo.
El microucleo de Mach
El micronucleo de Mach se diseño como base para emular UNIX y otros sistemas operativos. La emulacion se lleva a cabo mediante una capa del software que se ejecuta fuera del nucleo, en el espacio de usuario. Cada emulador consta de una parte que esta presente en el espacio
Administración de procesos en Mach
Procesos
Un proceso en Mach consta principalmente de un espacio de direcciones y una colección de hilos que se ejecutan en ese espacio de direcciones. Los procesos son pasivos. La ejecución se asocia con los hilos. Los procesos se utilizan para recolectar en recipientes convenientes todos los recursos relacionados con un grupo de hilos que cooperan entre sí.
Primitivas de la administración de los procesos
Mach proporciona un pequeño número de primitivas para la administración de los procesos. La mayor parte de éstas se realizan mediante el envío de mensajes al núcleo por medio del puerto del proceso, en vez de hacer llamadas reales al sistema.
Hilos
Las entidades activas en Mach son los hilos. Estos ejecutan instrucciones y controlan sus registros y espacio de direcciones. Cada hilo pertenece con exactitud a un proceso. Este no puede llevar nada a cabo si no tiene uno o más hilos. Los hilos de Mach son controlados por el núcleo; es decir, son lo que a veces se conoce como hilos pesados en vez de ligeros. El núcleo crea y destruye los hilos mediante la actualización de ciertas estructuras de datos de dicho núcleo. Estas estructuras proporcionan los mecanismos básicos para el manejo de múltiples actividades dentro de un espacio de direcciones.
Administración de memoria en Mach
Mach tiene un poderoso sistema para la administración de la memoria, muy elaborado y muy flexible, basado en la paginación, con características que se encuentran poco en otros sistemas operativos. El aspecto de la administración de memoria de Mach que establece la diferencia con los demás es que el código se divide en tres partes. La primera es el módulo pmap, que se ejecuta en el núcleo y se encarga del manejo del MMU y las tablas de páginas de! hardware, además de capturar todos los fallos de página.
Memoria Virtual
Mach proporciona un control fino de la forma de uso de las páginas virtuales El modelo conceptual de memoria que ven los procesos usuario de Mach es un espacio de direcciones virtuales grande y lineal. Para la mayoría de los circuitos de CPU de 32 bits, el espacio de direcciones va de la dirección 0 a la dirección 23l- l puesto que el núcleo utiliza la mitad superior para sus fines particulares. El espacio de direcciones se soporta mediante la paginación. Un concepto fundamental relacionado con el uso del espacio de direcciones virtuales es el objeto de memoria. Un objeto de memoria puede ser una página o un conjunto de ellas, un archivo o alguna otra estructura de datos más particular.
Memoria compartida
El hecho de compartir es muy importante en Mach. No se necesita un mecanismo especial para que un proceso comparta objetos: todos ven el mismo espacio de direcciones de manera automática. Si uno de ellos tiene acceso a una parte de los datos, todos lo harán.
Mach permite que los procesos asignen un atributo de herencia a cada región en su espacio de direcciones. Distintas regiones pueden tener distintos atributos. Se dispone de tres valores:
1. La región no es utilizada en el proceso hijo,
2. La región es compartida entre el proceso prototipo y el hijo.
3. La región en el proceso hijo es una copia del prototipo.
Memoria compartida distribuida en Mach
El concepto de administrador de memoria externo de Mach conduce a una implantación de una memoria compartida distribuida basada en el uso de páginas. Puesto que Mach ya dispone de administradores de memoria para distintas clases de
objetos, es natural introducir un nuevo objeto en la memoria, la página compartida. Las páginas compartidas se controlan mediante uno o más administradores de memoria especiales. Una posibilidad consiste en tener un administrador de memoria que controle a todas las páginas compartidas. Otra es tener un administrador diferente para cada página compartida o para una colección de páginas compartidas, para repartir la carga.
Comunicacion en Mach
El objetivo de la comunicación en Mach es soportar una gama de estilos de comunicación de manera confiable y flexible.
Puertos
La base de toda la comunicación en Mach es una estructura de datos en el núcleo llamada puerto. Un puerto es en esencia Un buzón protegido. Los puertos soportan los flujos de mensajes confiables y secuenciales. Si un hilo envía un mensaje a un puerto, el sistema garantiza su entrega. Los mensajes nunca se pierden debido a errores, desbordamiento u oirás causas.
Primitivas para la administración de puertos
Mach proporciona cerca de 20 llamadas para la administración de puertos. Todas ellas se llaman mediante el envío de un mensaje a un puerto de proceso.
El
servidor de mensajes de la red
La comunicación a través de la
red se controla mediante servidores a nivel usuario llamados servidores de
mensajes de la red, que son algo similar a los administradores externos de
memoria ya analizados. Cada máquina en un sistema distribuido Mach ejecuta un
servidor de mensajes de la red, los cuales funcionan juntos para administrar
los mensajes entre las máquinas, con la intención de simular los mensajes
dentro de las máquinas lo mejor que puedan. Un servidor de mensajes de la red
es un proceso de varios hilos que lleva a cabo varias funciones. Entre éstas se
encuentran la interfaz con los hilos locales, el envío de mensajes a través de
la red, la traducción de los tipos de datos de la representación de una máquina
a la de otra, la administración de las posibilidades de manera segura, las
notificaciones remotas, proporcionar un servicio sencillo de búsqueda de
nombres a todo lo ancho de la red y la administración de la autenticación de
otros servidores de mensajes de la red. Los servidores de mensajes de la red
pueden utilizar una variedad de protocolos, según la reda la que estén
conectados.
Emulación de unix en mach
Mach tiene varios servidores que se ejecutan por arriba de él. Tal vez el más importante es un programa que contiene gran parte del UNIX de Berkeley dentro de él. Este servidor es el principal emulador de UNIX(Golub el a i, 1990). Este diseño es un reconocimiento de la historia de Mach como versión modificada del UNIX de Berkeley. La implantación de la emulación de UNiX en Mach consta de dos partes, el servidor de UNIX y una biblioteca de emulación de llamadas al sistema, al arrancar el sistema, el servidor de UNIX indica al núcleo que capture todos los señalamientos de llamadas al sistema y los dirija hacia una dirección dentro de la biblioteca de emulación del proceso UNIX que realiza la llamada al sistema. A partir de ese momento, cualquier llamada al sistema hecha por un proceso UNIX hará que el control pase de manera temporal al núcleo, y de inmediato a su biblioteca de emulación. En el momento en que el control se otorga a la biblioteca de emulación, todos los registros de la máquina recuperan los valores que tenían al momento del señalamiento. Este método de rebotar el núcleo de regreso al espacio del usuario se denomina a veces el mecanismo del trampolín.
No hay comentarios:
Publicar un comentario