Documente Academic
Documente Profesional
Documente Cultură
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.
Operacin multiprocesador Extensin transparente para operar en red Servidores de nivel de usuario Emulacin de sistema operativo Implementacin de memoria virtual flexible Portabilidad
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
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.
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
107
Tarea emisora
Mach
Mach
Direccin de red a
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.
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.
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.
Regin
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.
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
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.