Sunteți pe pagina 1din 41

COQUIL OLIVERA FARKIN OPPE BOLIVAR HENRRYK SUERO SOTO GUSTAVO

1. INTRODUCCION
MACH fue basado en:
RIG: Universidad de Rochester, aos setenta ACCENT: Carnegie-Mellon, aos ochenta.

Nunca tuvo como objetivo el desarrollo de un sistema operativo distribuido completo. Se desarroll para proporcionar una compatibilidad directa con UNIX BSD, y recursos avanzados que complementaran los de UNIX Orientado al multiprocesamiento. Abarca desde sistemas de memoria compartida hasta sistemas que no comparten memoria entre los procesadores. Puede transportarse fcilmente a diversas arquitecturas.


A partir de la versin 3.0 del ncleo Mach se elimin el cdigo UNIX, esta versin es la base de la implementacin de MkLinux (Power Macintosh). Se utiliza como soporte para emulaciones de sistemas operativos, sistemas de base de datos, sistemas de soporte de lenguajes en tiempo de ejecucin y otros subsistemas.

1.1 OBJETIVOS PRINCIPALES

Operacin multiprocesador Extensin transparente para operar en red Servidores de nivel de usuario Emulacin de sistema operativo Implementacin de memoria virtual flexible Portabilidad

1.2 PRINCIPALES ABSTRACCIONES DEL NCLEO DE MACH

Tareas: Es un entorno de ejecucin. Hilos: Las tareas pueden contener mltiples hilos Puertos: Es un canal de comunicaciones Conjuntos de puertos: Es una coleccin de derechos de recepcin de puertos, locales a una cierta tarea Mensajes: Puede contener derechos de puerto adems de datos. Dispositivos: Los servidores de archivos que se ejecutan a nivel de usuario deben poder acceder a los dispositivos.


Objeto de memoria: Cada regin del espacio de direcciones virtuales de una tarea Mach se corresponde con un objeto de memoria. Objeto de memoria cach: Para cada objeto correlacionado en memoria existe un objeto gestionado por el ncleo que contiene una cach de pginas residentes en la memoria principal para la correspondiente regin

2. PUERTOS, NOMBRES Y PROTECCIN

Mach asocia recursos individuales con puertos. Para acceder a un recurso se enva un mensaje sobre el puerto correspondiente Los servidores manejaran multiples puertos, uno por cada recurso. La creacin y gestin de estos puertos es barata. proteccin de un recurso frente a accesos ilegales se equipara al de la proteccin del correspondiente puerto frente a envos ilegales.


La habilitacin de un puerto tiene un campo que especifica los derechos de acceso sobre el puerto pertenecientes a la tarea que lo posee. Existen 3 tipos de derechos de puerto:
Los derechos de envo permiten a los hilos dentro de la tarea que los posee el envo de mensajes al puerto correspondiente. Los derechos de un solo envo. Los derechos de recepcin permiten a los hilos de una tarea recibir mensajes desde la cola de mensajes del puerto


Los derechos de puerto de Mach se almacenan en el ncleo y son protegidos por l. Las tareas nombran los derechos de puerto mediante identificadores locales vlidos nicamente en el espacio de nombres de puerto local a la tarea. El esquema de nombres y proteccin de Mach permite un acceso rpido a las colas de mensajes locales dado un identificador de usuario

Una tarea es un entorno de ejecucin: las propias tareas no pueden realizar ninguna accin, nicamente lo pueden realizar sus hilos. Los principales recursos asociados directamente con una tarea son: su espacio de direcciones, sus hilos, sus derechos de puerto, sus conjuntos de puertos y el espacio de nombres local en el que se buscan los derechos de puerto y los conjuntos de puertos Para crear una nueva tarea La operacin fork de UNIX crea un nuevo proceso copiando uno ya existente. Las tareas so creadas con referencia a tarea tipo, y la nueva tarea reside en el mismo computador que esta.

3. TAREAS E HILOS


Mach no proporciona migracin de tareas. Una tarea recin creada no tiene hilos Llamadas al sistema de Mach.
Implementadas directamente (Traps). Implementadas mediante paso de mensajes a los puertos del ncleo.


Gestin de Excepciones Cuando estas ocurren el ncleo reacciona intentando enviar un mensaje que describe la excepcin a un puerto de excepciones asociado. Si el hilo carece del puerto usa el de la tarea. El hilo que recibe el mensaje intentar reparar el problema y devuelve un valor de estado. El propietario de este puerto podra ser una tarea de depuracin de errores ejecutndose en cualquier punto de la red.

4. MODELO DE COMUNICACIN

4.1. MENSAJES
Est formado por una cabecera de tamao fijo seguida por una lista de tamao variable de campos de datos

La cabecera contiene:

El puerto de destino
Un identificador de operacin Tamao de los datos extra Datos de mensaje tipado Derechos de puerto Punteros a datos no alineados

Cada tem en la lista consecutiva de la cabecera del mensaje, puede ser uno de los siguientes:

Un puerto en Mach tiene una cola de mensajes cuyo tamao puede ser cambiado dinmicamente por la tarea con los derechos de recepcin. Cuando se utiliza un derecho de envo normal, un hilo que intente enviar un mensaje a un puerto cuya cola de mensajes est llena se bloquear hasta que haya espacio disponible. Cuando un hilo utiliza un derecho de un solo envo, el receptor siempre inserta en la cola el mensaje, aunque la cola de mensajes est llena.

4.2 PUERTOS

Envo de derechos de puerto. Cuando los derechos de envo de un puerto se insertan en un mensaje, el receptor los adquiere sobre el mismo puerto. Cuando lo que se transmite son los derechos de recepcin son desasignados automticamente de la tarea que los emite. Todos los mensajes en la cola del puerto y todos los mensajes transmitidos posteriormente podrn ser recibidos por el nuevo propietario de los derechos de recepcin


Monitorizacin de la conectividad: El ncleo est diseado para informar a los emisores y receptores de la aparicin de ciertas condiciones bajo las que la emisin o recepcin de mensajes es intil. Conjuntos de puertos: Son colecciones de puertos creadas dentro de una nica tarea y gestionadas localmente.

4.3 MACH_MSG
La llamada al sistema mach_msg es extremadamente complicada ya que proporciona tanto servicios de paso de mensajes asncrono como interacciones de tipo peticin-respuesta. Es una nica llamada al sistema, que utilizan los clientes para enviar un mensaje de peticin y recibir una respuesta, y los servidores para responder al ltimo cliente y recibir el siguiente mensaje de peticin.

5. IMPLEMENTACIN DE LA COMUNICACIN

Uno de los aspectos ms interesantes de la implementacin del sistema de comunicacin en Mach es la utilizacin de servidores de red de nivel de usuario. Los servidores de red (netmsgservers), uno por computadora, son colectivamente responsables de extender la semntica de comunicacin local sobre toda la red. Esto incluye preservar, en la medida de lo posible, las garantas de reparto y hacer que la comunicacin sobre la red sea transparente.

5.1 GESTION TRANSPARENTE DE MENSAJES

Debido a que los puertos son siempre locales al ncleo de Mach, es necesario aadir una abstraccin impuesta de forma externa, el puerto de red, utilizada para enviar los mensajes de red. Un puerto de red es un identificador de canal globalmente nico gestionado exclusivamente por los servidores de red y que stos asocian a cada nico puerto Mach en cada momento. Los servidores de red poseen los derechos de envo y recepcin sobre los puertos de red, de la misma forma que las tareas poseen los derechos de envo y recepcin sobre los puertos Mach.

Derechos de recepcin

Puerto de red

Direcci Puerto de red Derechos de n envi

107

Tarea emisora

n Servidor de red Mensaje hacia a Red Servidor de red

107 Tarea receptor a

Mach

Mach
Direccin de red a

5.2. EXTENSIBILIDAD: PROTOCOLOS Y GESTORES DE DISPOSITIVOS

Protocolos de transporte. Los servidores de red de Mach ms usados emplean nicamente TCP/IP como protocolo de transporte. Esto fue impulsado, en parte por la compatibilidad con UNIX, y en parte al ser seleccionado por la Universidad Carnegie-Mellon dada la complejidad de su red, que contiene ms de 1.700 computadoras, alrededor de 500 de ellas ejecutando Mach. Se ajust TCP/IP para conseguir robustez de forma bastante eficiente sobre dicha red. Sin embargo, por motivos de prestaciones, esto puede no ser apropiado en una LAN donde predominan las interacciones peticin-respuesta.


Gestores de dispositivos de red del nivel de usuario. Algunos servidores de red proporcionan sus propios gestores de dispositivos (drivers) de red a nivel de usuario. Su objetivo es acelerar los accesos a la red. El situar los drivers en el nivel de usuario es, adems de un mtodo para mejorar la flexibilidad, una forma de compensar la degradacin de prestaciones debida a la utilizacin de servidores de red al nivel de usuario. El ncleo exporta una abstraccin para cada dispositivo, que incluye una operacin para proyectar los registros de control del dispositivo sobre el espacio de usuario.

6. GESTIN DE MEMORIA

Mach no slo se destaca por emplear espacios de direcciones grandes y dispersos, sino tambin por sus tcnicas de memoria virtual entre tareas que permiten la comparticin de memoria entre las tareas. No slo puede compartirse la memoria fsica entre tareas en ejecucin sobre el mismo ncleo Mach, sino que adems el soporte de paginadores externos de Mach (llamados gestores de memoria) permite compartir los contenidos de la memoria virtual entre tareas, aunque residan en computadores diferentes.

6.1 ESTRUCTURA DEL ESPACIO DE DIRECCIONES

La visin del espacio de direcciones en Mach es la de una coleccin de grupos de pginas contiguas que se nombran mediante sus direcciones, en lugar de regiones identificables separadamente. Consecuentemente, la proteccin en Mach se aplica a las pginas en lugar de a las regiones. Las llamadas al sistema de Mach se refieren a direcciones y tamaos en lugar de usar identificadores de regin.


Llamaremos regin a una coleccin contigua de pginas con propiedades comunes a la regin. Como hemos visto Mach soporta un gran nmero de regiones, que pueden usarse para mltiples fines como almacenar datos o proyectar archivos en memoria. Las regiones pueden crearse mediante cualquiera de las siguientes formas: Pueden ser asignadas de forma explcita mediante una llamada a vm_allocate. Las regiones creadas con vm_allocate estn puestas a cero por defecto. Puede crearse una regin en asociacin con un objeto de memoria, utilizando vm_map. Pueden asignarse regiones a tareas recin creadas a travs de la declaracin como herencia desde una tarea tipo, utilizando vm_inherit aplicado a la regin de tarea tipo. Pueden asignarse automticamente regiones en el espacio de direcciones de una tarea como efecto colateral del paso de mensajes.

6.2. COMPARTICIN DE MEMORIA: HERENCIA Y PASO DE MENSAJES

Mach permite una generalizacin de la semntica de UNIX fork mediante el mecanismo de herencia de memoria. Hemos visto que cada tarea se crea desde otra tarea, que acta como plantilla. Una regin heredada desde una tarea tipo contiene el mismo rango de direcciones y su memoria puede ser: Compartida: secundada por la misma memoria. Copiada: almacenada en una zona de memoria copiada de la memoria de la tarea tipo en el mismo instante en que se cre la regin

Para el caso de fork en UNIX, el texto del programa de la tarea tipo se hereda y se comparte con la tarea hija. Lo mismo ocurre para una regin que contiene cdigo de biblioteca compartida. Sin embargo, la pila y el montn del se heredan mediante copias de las regiones de la tarea tipo. Adems, si se solicita a la tarea tipo que comparta con su hijo cierta regin de datos, podr configurarse esta regin como heredada para compartir. Los datos de los mensajes no alineados se transfieren entre las tareas con un mtodo similar a la herencia con copia. Mach crea una regin en el espacio de direcciones del receptor, y sus contenidos iniciales son una copia de la regin que contiene los datos no alineados del emisor.

6.3. EVALUACIN DE LA COPIA-ENESCRITURA


A pesar de que la copia en escritura ayuda a pasar datos de mensajes entre las tareas y el servidor de red, no puede usarse para facilitar la transmisin sobre la red. Esto es porque las computadoras involucradas no comparten la memoria fsica. Un usuario puede especificar regiones mediante rangos de direcciones que no comiencen ni terminen en fronteras de pginas. Sin embargo, en Mach est obligado a compartir memoria a nivel de pgina. Todos los datos dentro de las pginas involucradas pero no especificados por los usuarios sern en cualquier caso copiados entre las tareas. Este es un ejemplo de lo que se conoce como comparticin falsa.

6.4 PAGINADORES EXTERNOS


El ncleo de Mach no soporta directamente archivos o cualquier otra abstraccin de almacenamiento externo. En su lugar asume que dichos recursos son implementados por paginadores (pagers) externos. Al igual que Multics, Mach ha elegido el modelo de acceso correlacionado para objetos de memoria. En lugar de acceder a los datos utilizando explcitamente operaciones lee y escribe, el programador slo necesita acceder directamente a las correspondientes posiciones de memoria virtual. Una ventaja del acceso correlacionado es su uniformidad: se presenta al programador un nico modelo de acceso a los datos, en lugar de dos. La memoria virtual de Mach consta primordialmente del protocolo entre el ncleo y un paginador externo necesario para gestionar la correspondencia de los datos almacenados por este ltimo.

Objetos almacenados en memoria

Paginador externo Puerto

Regin

Espacio de direcciones de la tarea

Red

Ncleo

Ncleo


Las funciones de un paginador externo son: Almacenar los datos desalojados por el ncleo desde su cach de pginas, Proporcionar los datos de las pginas segn los vaya solicitando el ncleo, Imponer las limitaciones de consistencia asociadas a la abstraccin del recurso de memoria subyacente para el caso en que el recurso de memoria sea compartido y varios ncleos puedan mantener de forma simultnea varios objetos almacenados en memoria para el mismo objeto de memoria.

6.5. GESTION DE ACCESOS A UN OBJETO DE MEMORIA

En el caso de que un objeto de memoria no sea compartido (slo est correlacionado en una computadora), utilizando un archivo como objeto de memoria, suponemos que no se realiza prebsqueda de los datos del archivo desde el paginador externo, todas las pginas en la regin correlacionada con este archivo se protegen inicialmente por el hardware frente a todos los accesos, al no existir ningn dato del archivo. Cuando un hilo intenta leer una de las pginas de la regin, se genera un fallo de pgina.

7. CONCLUSIONES

El sistema operativo Mach est diseado para incorporar


1.
2.

muchas innovaciones recientes en el rea de sistemas operativos para producir un sistema completamente funcional y tcnicamente avanzado. Mach se dise tomando en cuenta tres objetivos crticos:
Emular UNIX 4.3BSD de manera que los archivos ejecutables de un sistema UNIX puedan ejecutarse correctamente en Mach. Contar con un sistema operativo moderno que apoye varios modelos de memoria y los clculos paralelos y distribuidos. Disear un ncleo ms sencillo y fcil de modificar que 4.3BSD.

3.


El ncleo de Mach es complejo y sofisticado en cuanto a sus posibilidades. El modelo de tareas e hilos de Mach y la integracin de la gestin de la memoria virtual con la comunicacin representan una mejora importante sobre las posibilidades bsicas de UNIX. El modelo de comunicacin entre tareas de Mach es muy rico y complejo

8. RECOMENDACIONES

La idea de Mach es explorar los multiprocesadores y los sistemas distribuidos, a la vez que se puedan emular los sistemas ya existentes como UNIX, Macintosh Mach puede ejecutarse tanto en multiprocesadores como en computadores monoprocesador conectados por redes. La filosofa de Mach de proporcionar toda la funcionalidad extendida en el nivel de usuario ha sido abandonada, pero Mach sigue utilizndose y es una referencia inestimable para los desarrollos de arquitecturas de ncleos.

S-ar putea să vă placă și