Sie sind auf Seite 1von 9

SISTEMA OPERATIVO DISTRIBUIDO MACH

Historia
El proyecto Mach estaba asentado en la Universidad Carnegie-Mellon en USA hasta
1994, donde se desarroll hacia un ncleo en tiempo real. El proyecto fue continuado
por grupos de la Universidad de Utah y la Fundacin para el Software Abierto (OSF). El
proyecto Mach fue el sucesor de otros dos: RIG, desarrollado en la Universidad de
Rochester en la dcada de los aos setenta, y Accent, desarrollado en Carnegie-Mellon
durante la primera mitad de la dcada de los aos ochenta. A diferencia de sus
predecesores, el proyecto Mach nunca tuvo como objetivo el desarrollo de un sistema
operativo distribuido completo. En vez de esto, el ncleo Mach se desarroll para
proporcionar una compatibilidad directa con UNIX BSD, y recursos avanzados que
complementaran los de UNIX y que permitiera a una implementacin UNIX proliferar
sobre una red de multiprocesadores y computadoras monoprocesador. Desde el
principio, la intencin de los diseadores fue la de implementar la mayor parte de UNIX
mediante procesos de nivel de usuario.
A pesar de estas intenciones, la versin 2.5 de Mach, la primera de las dos principales
versiones, inclua todo el cdigo de compatibilidad con UNIX dentro del propio ncleo.
Se ejecutaba, entre otras computadoras, en SUN-3, IBM RT PC, sistemas
uniprocesadores y multiprocesadores VAX y en los multiprocesadores Encore Multimax
y Sequent. Desde 1989, Mach 2.5 fue incorporado como la tecnologa base para OSF/1,
el rival propuesto por la OSF para competir contra System V Release 4 como versin
estndar de UNIX para la industria.
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, una variante del sistema operativo Linux para
computadoras Power Macintosh; se utiliza como soporte para la construccin de
emulaciones de sistemas operativos, sistemas de base de datos, sistemas de soporte de
lenguajes en tiempo de ejecucin y otros tipos de software de sistema que llamaremos
subsistemas. Procesos / objetos de aplicacin. La emulacin de sistemas operativos
convencionales permite ejecutar binarios ya existentes desarrollados para ellos. Adems
se pueden desarrollar nuevas aplicaciones para dichos sistemas operativos
convencionales. Al mismo tiempo, se puede desarrollar middleware y aplicaciones que
aprovechen las ventajas de la distribucin; y se pueden crear versiones distribuidas de
las implementaciones de los sistemas operativos convencionales. Surgen dos cuestiones
importantes en la emulacin de los sistemas operativos. La primera es que las
emulaciones distribuidas no pueden ser completamente exactas debido a los nuevos
modos de fallo que aparecen con la distribucin. La segunda, es la cuestin todava sin
resolver de si se pueden conseguir niveles de prestaciones aceptables para que su
utilizacin sea generalizada.
Qu es Mach?

Mach es un ncleo de sistema operativo desarrollado en la Carnegie-Mellon University


(CMU) para soportar la investigacin de sistemas operativos, principalmente
computacin distribuida y paralela

Filosofa:

La filosofa de diseo de Mach es contar con un ncleo sencillo y extensible, centrado en


los recursos de comunicacin.

Diseo:

Compatible con BSD y adems,


Funciona con velocidades cambiantes en redes entre computadores, desde
redes extendidas hasta redes locales de alta velocidad y multiprocesadores
fuertemente acoplados.
Estructura simplificada del ncleo, con pocas abstracciones;
Operacin distribuida para proporcionar a los clientes transparencia de la red, y
una organizacin orientada a objetos, tanto interna como externamente.

Objetivos:

Base para la construccin de otros sistemas (UNIX).


Ser un sistema operativo distribuido capaz de funcionar en hardware
heterogneo.
Espacio de direcciones de gran tamao.
Acceso transparente a los recursos de la red.
Paralelismo del sistema y las aplicaciones.
Escalabilidad (transportar mach a un nmero ms grande de mquinas).
Soporte para mltiples aplicaciones usando multitarea.
Hilos, los cuales pueden ser pensados como las partes de una aplicacin, o mini-
aplicaciones cuando hay multitarea.
Soporte multiprocesadores, en una mquina nica o sobre una red.
Comunicaciones interprocesos, enviando mensajes directamente entre
aplicaciones.
Proteccin y seguridad de memoria.
Principales Caractersticas:

Operacin multiprocesador: Mach fue diseado para ejecutarse en un multiprocesador


de memoria compartida de forma que tanto los hilos del ncleo como los hilos en modo
usuario pueden ejecutarse en cualquier procesador. Mach proporciona un modelo
multi-hilo para procesos de usuario, con entornos de ejecucin llamados tareas. Para
permitir la ejecucin paralela en un multiprocesador de memoria compartida, la
planificacin de los hilos es prioritaria, tanto si pertenecen a las mismas como a
diferentes tareas.

Extensin transparente para operar en red: Para permitir que los programas
distribuidos se extiendan de forma transparente sobre mono y multiprocesadores en
una red, Mach ha adoptado un modelo de comunicacin independiente de la ubicacin
usando puertos como destino de la comunicacin. Sin embargo, el ncleo de Mach ha
sido diseado para ser 100% independiente de redes concretas. El diseo de Mach
confa en procesos servidores de red de nivel de usuario para el envo de mensajes de
forma transparente sobre la red (ver Figura 2). Se trata de una decisin de diseo
polmica dados los costos del cambio de contexto. Sin embargo, permite una absoluta
flexibilidad en el control de la poltica de comunicacin de la red.

Servidores de nivel de usuario: Mach implementa un modelo basado en objetos en el


que los recursos se gestionan o bien por el ncleo, o bien mediante servidores cargados
dinmicamente. Inicialmente solo se permitan servidores de nivel de usuario, pero
posteriormente se adapt Mach para acomodar servidores en el espacio de direcciones
del ncleo. Con la excepcin de algunos recursos gestionados por el ncleo, los recursos
son accedidos de forma uniforme mediante paso de mensajes, independientemente de
cmo sean gestionados. A cada recurso le corresponde un puerto gestionado por un
servidor. El Generador de Interfaz de Mach (MIG) se desarroll para generar enlaces RPC
utilizados para ocultar los accesos basados en mensajes del nivel de lenguaje.
Emulacin de sistema operativo: Para dar soporte a la emulacin de nivel de usuario de
UNIX y otros sistemas operativos, Mach permite la redireccin transparente de las
llamadas al sistema operativo sobre llamadas a una biblioteca de emulacin y de ah
hacia los servidores del sistema operativo del nivel de usuario; a esta tcnica se la
conoce como trampolining. Tambin se incluye la posibilidad de permitir que las
excepciones del tipo de violaciones del espacio de direcciones que ocurren en las tareas
de aplicacin sean gestionadas por servidores.
Implementacin de memoria virtual flexible: Para dotar a Mach de la posibilidad de
emular sistemas UNIX y dar soporte a otros subsistemas se realiz una aproximacin
flexible a la distribucin del espacio de direcciones de un proceso. Mach soporta un
espacio de direcciones grande y disperso, con capacidad potencial para contener
mltiples regiones. Por ejemplo, tanto los mensajes como los archivos abiertos pueden
aparecer como regiones de memoria virtual. Las regiones pueden ser privadas a una
tarea, compartidas entre tareas o copiadas desde regiones sobre otras tareas. El diseo
incluye el uso de tcnicas de correlacin de memoria, principalmente la copia en
escritura, para evitar la copia de datos cuando, por ejemplo, se pasan mensajes entre
tareas. Finalmente, Mach se dise para permitir que fueran los servidores, en lugar del
propio ncleo, los que implementaran el almacenamiento secundario para las pginas
de memoria virtual. Las regiones pueden correlacionarse con datos gestionados por los
servidores llamados paginadores externos. Estos datos
correlacionados (mapped) pueden residir en cualquier abstraccin de un recurso de
memoria, desde memoria compartida distribuida hasta archivos.

Portabilidad: Mach fue diseado para ser portable sobre varias plataformas hardware.
Por esta razn, se trat de aislar, tanto como fue posible, el cdigo dependiente de la
mquina.

Estructura y componentes de mach:


PRINCIPALES ABSTRACCIONES DEL NCLEO DE MACH:

Tareas: Es un entorno de ejecucin; bsicamente est compuesto por un espacio de


direcciones protegido y una coleccin de habilitaciones gestionadas por el ncleo que
se utilizan para el acceso a los puertos.

Hilos: Las tareas pueden contener mltiples hilos. Los hilos que pertenecen a una misma
tarea se pueden ejecutar en paralelo sobre diferentes procesadores en un
multiprocesador de memoria compartida.

Puertos: Es un canal de comunicaciones uno a uno y unidireccional con una cola de


mensajes asociada. Los puertos no son accesibles directamente por el programador de
Mach y tampoco forman parte de una tarea. En su lugar, el programador dispone de
apuntadores a derechos de puerto. Se trata de habilitaciones, para el envo de mensajes
a un puerto o para la recepcin de mensajes desde un puerto.

Conjuntos de puertos: Es una coleccin de derechos de recepcin de puertos, locales a


una cierta tarea. Se utilizan para recibir mensajes desde cualquier puerto de entre una
coleccin de ellos. Los conjuntos de puertos no deben contundirse con los grupos de
puertos; estos ltimos son destinos de multidifusin y en Mach no estn
implementados.

Mensajes: Puede contener derechos de puerto adems de datos. El ncleo utiliza


tcnicas de gestin de memoria para transferir de forma eficiente los datos de los
mensajes entre las tareas.

Dispositivos: Los servidores de archivos que se ejecutan a nivel de usuario deben poder
acceder a los dispositivos. Para ello el ncleo exporta una interfaz de bajo nivel sobre
los dispositivos.

Objeto de memoria: Cada regin del espacio de direcciones virtuales de una tarea Mach
se corresponde con un objeto de memoria. Se trata de un objeto que normalmente est
implementado fuera del propio ncleo pero que es accedido por ste cuando realiza
operaciones de paginacin en la gestin de la memoria virtual. Un objeto de memoria
es una instancia de un tipo abstracto de datos que incluye operaciones de bsqueda y
almacenamiento de datos que se emplean cuando los hilos generan faltas de pgina en
el intento de hacer referencia a direcciones, en la regin correspondiente.

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. A esto se le llama objeto de memoria
cach. Da soporte a las operaciones necesarias para el paginador externo encargado de
implementar el objeto de memoria.
Ejemplos: Soporte A Tiempo Real

Stefan Savage, Hideyuki Tokuda. Mach en Tiempo Real: Ha llegado la hora de exportar
el usuario. Este documento est previsto que aparecen en las Actas del Tercer Simposio
Usenix Mach (Machnix), 19-21 de abril de 1993. El actual CMU microncleo Mach 3,0
exportaciones de simple retraso de hora y abstracciones a travs de acogida \ _GET \
_time () y un tiempo de parmetro a mach \ _msg ().Si bien esto es suficiente para
muchos propsitos, no ofrece la precisin o generalidad necesaria para una variedad de
aplicaciones de tiempo real. En el presente trabajo se describen las extensiones del CMU
a Mach 3,0 que ofrecen a los usuarios con horario flexible basada en la sincronizacin
de hora y servicios. Adems, vamos a describir cmo el calendario y la programacin de
servicios se integran para permitir aplicaciones de tiempo real para manejar el
calendario de fallas.

Hideyuki Tokuda, Tatsuo Nakajima, Prithvi Rao. Real-Time Mach: Hacia predecibles
Sistemas de Tiempo Real Proceedings of the USENIX 1990 Mach Workshop, October
1990. Actas de la USENIX Mach Workshop 1990, octubre de 1990.
Los Sistemas Distribuidos en tiempo real desempean un papel muy importante en
nuestra sociedad moderna. Se utilizan en los aviones de control, sistemas de
comunicaciones, mando militar y los sistemas de control, automatizacin de fbricas y
la robtica. Sin embargo, la satisfaccin de los rgidos plazos de varios requisitos en
tiempo real de actividades distribuidas en tiempo real a menudo requiere mtodos ad
hoc para afinar el comportamiento de sistemas en tiempo de ejecucin.
El objeto de Real-Time Mach es desarrollar un tiempo real de la versin del kernel Mach
que proporciona a los usuarios con un previsible y confiable distribuido en tiempo real
entorno informtico. En el presente trabajo se describe un modelo de hilo en tiempo
real, en tiempo real la sincronizacin, y el ITDS planificador en Tiempo-Real Mach. En l
tambin se debaten las cuestiones de aplicacin, en tiempo real el conjunto de
herramientas, y la situacin actual del sistema.

Hideyuki Tokuda y Tatsuo Nakajima. Evaluacin de Real-Time Sincronizacin en Tiempo


Real Mach. Este documento aparece en el procedimiento para la USENIX Mach
Workshop 1991, octubre de 1991.
Real-Time Mach proporciona en tiempo real de hilo y en tiempo real de sincronizacin
de instalaciones. Un tiempo real de hilo se pueden crear para una actividad peridico o
aperidico con un calendario de limitacin. Los hilos pueden ser sincronizados entre
ellos utilizando un tiempo real y la versin de supervisar la base de sincronizacin con
un mecanismo adecuado y un protocolo de bloqueo. En Real-Time Mach, hemos puesto
en prcticas varias polticas de bloqueo, como kernelized monitor, prioridad bsica, la
prioridad la herencia de protocolo, protocolo prioridad techo, y relanzable con seccin
crtica, para aplicaciones de tiempo real.

En el presente trabajo se describe el tiempo real de sincronizacin en las instalaciones de


Real-Time Mach, su aplicacin y la evaluacin del desempeo. Nuestros resultados de la
evaluacin demuestran que la adecuada eleccin de la poltica de bloqueo puede evitar la
prioridad sin limitar las inversiones y mejorar la planificacin del procesador para
aplicaciones de tiempo real.
COMPARATIVO: LINUX Vs WINDOWS XP y Vs MACH:

Das könnte Ihnen auch gefallen