Sie sind auf Seite 1von 23

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Tecnolgico de Estudios Superiores de Ecatepec Licenciatura en Informtica Sistemas Operativos I

SISTEMAS OPERATIVOS DISTRIBUIDOS

Investigacin de las caractersticas de los Sistemas Operativos Mach,Chorus y Amoeba

Nombre: Orsi Gngora Daz

Grupo: 6551 Profesora: Claudia Moran Snchez

Ecatepec de Morelos, Estado de Mxico Abril 7 de 2010.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

INTRODUCCION Un sistema distribuido es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema coma una nica computadora. La razn numero uno de la tendencia hacia los sistemas distribuidos es que estos sistemas tienen en potencia una proporcin precisin/desempeo mucho mejor que la de un sistema centralizado. Los sistemas operativos no se pueden clasificar tan fcil como el hardware. Por su propia naturaleza, el software es vago y amorfo. Aun as, es ms o menos posible distinguir dos tipos de sistemas operativos para los de varios CPU: los dbilmente acoplados y los fuertemente acoplados. El software dbilmente acoplado permite que las maquinas y los usuarios de un sistema distribuido estn independientes entre s en lo fundamental, pero que interacten en cierto grado cuando sea necesario. Consideremos un grupo de computadoras personales, cada una de las cuales tiene su propio CPU, su propia memoria, su propio disco duro y su propio sistema operativo, pero que comparten ciertos recursos, coma las impresoras laser y las bases de datos en una LAN. Este sistema esta dbilmente acoplado, puesto que las maquinas individuales se distinguen con claridad, cada una de las cuales tiene su propio trabajo por realizar. Si la red falla por alguna razn, las maquinas individuales continan su ejecucin en cierto grado considerable, aunque se puede perder cierta funcionalidad (por ejemplo, la capacidad de imprimir archivos).Para mostrar lo difcil que resulta establecer definiciones en esta rea, consideremos ahora el mismo sistema anterior, pero sin la red. Para imprimir un archivo, el usuario escribe un archivo en un disco flexible, lo lleva hasta la maquina que tiene la impresora, lo lee en ella y despus lo imprime. Es todava un sistema distribuido, solo que ahora mas dbilmente acoplado? Esto es difcil de decir. Desde un punto de vista fundamental, no existe una diferencia real entre la comunicacin a travs de una LAN y la comunicacin mediante el traslado fsico de los discos flexibles. Lo ms que se puede decir es que las tasas de retraso y transmisin de los datos son peores en el segundo ejemplo. En el otro extremo, podramos tener el caso de un multiprocesador dedicado a la ejecucin de un programa de ajedrez en paralelo. A cada CPU se le asigna un tablero para su evaluacin y este ocupa su tiempo en la evaluacin de este tablero y los que se pueden generar a partir de e1. Al terminar la evaluacin, el CPU informa de sus resultados y se le proporciona un nuevo tablero para trabajar con 61. El software para este sistema, es decir, el programa de aplicacin y el sistema operativo necesario para soportarlo, estn mejor acoplados que el ejemplo anterior. Los sistemas distribuidos constan de CPU autnomos que funcionan juntos para que

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

todo el sistema parezca como una computadora. Tienen varios puntos favorables potenciales, como buena proporcin, precio/desempeo, se pueden ajustar bien a las aplicaciones distribuidas, pueden ser muy confiables y pueden aumentar su tamao de manera gradual al aumentar la carga de trabajo. Tambin tienen ciertas desventajas, como el hecho de tener un software ms complejo, potenciales cuellos de botella en la comunicacin y una seguridad dbil. Sin embargo, existe un considerable inters mundial por su construccin e i instalacin. Los modernos sistemas de comput tienen con frecuencia varios CPU. Estos se pueden organizar como multiprocesadores (con memoria compartida) o como multicomputadoras (sin memoria compartida). Ambos tipos se pueden basar en un bus o en un conmutador. Los primeros tienden a ser fuertemente acoplados, mientras que los segundos tienden a ser dbilmente acoplados. El software para los sistemas con varios CPU se pueden dividir en tres clases. Los sistemas operativos de red permiten a los usuarios en estaciones de trabajo independientes la comunicacin por medio de un sistema compartido de archivos, pero dejan que cada usuario domine su propia estacin de trabajo. Los sistemas operativos distribuidos convierten toda la coleccin de hardware y software en un sistema integrado, muy parecido a un sistema tradicional de tiempo compartido. Los multiprocesadores con memoria cornpartida tambin ofrecen la imagen de nico sistema, pero lo hacen mediante la va de centralizar todo, por lo que en realidad, este caso es un sistema. Los multiprocesadores con memoria compartida no son sistemas distribuidos.

Los sistemas distribuidos deben disearse con cuidado, puesto que existen muchas trampas para los incautos. Un aspecto clave es la transparencia: ocultar la

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

distribucin a los usuarios e incluso a los programas de aplicacin. Otro aspecto es la flexibilidad. Puesto que el campo se encuentra todava en su infancia, el diseo se debe hacer con la idea de facilitar los cambios futuros. A este respecto, los micro ncleos son superiores a los ncleos monolticos. Otros aspectos importantes son la confiabilidad, el desempeo y la escalabilidad.

AMOEBA Amoeba es un nuevo sistema operativo diseado para hacer que una coleccin de computadoras independientes aparezca ante sus usuarios como un sistema de

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

tiempo compartido. En general, los usuarios no estn conscientes del sitio donde se ejecutan sus procesos (o incluso el tipo de CPU utilizado), ni del sitio donde se almacenan sus archivos o las copias de ellos mantenidas por razones de disponibilidad y desempeo. Sin embargo, los usuarios explcitamente interesados en la programacin paralela pueden explotar la existencia de varios CPU mediante la subdivisin de un solo trabajo en varias maquinas. Amoeba se basa en un microncleo que controla los procesos de bajo nivel, la administracin de la memoria, la comunicacin y la EIS. El sistema de archivos y el resto del sistema operativo se pueden ejecutar coma procesos usuario. Esta divisin del trabajo mantiene el ncleo pequeo y sencillo. Amoeba tiene un mecanismo para nombrar y proteger a todos los objetos: las posibilidades. Cada posibilidad contiene los derechos que indican las operaciones permitidas mediante su uso. Las posibilidades se protegen por cifrado mediante las funciones de un solo sentido. Cada una contiene un campo para la suma de verificacin, la cual garantiza la seguridad de la posibilidad. Se soportan tres mecanismos de comunicacin: RPC y FLIP simple para la comunicacin puntual y la comunicacin confiable en grupo para la comunicacin entre varias partes. La RPC garantiza una semntica "al menos una vez". La comunicacin en grupo se basa en la transmisin confiable proporcionada por el algoritmo del secuenciador. Ambos mecanismos se soportan sobre el protocolo FLIP y estn fuertemente integrados. El FLIP simple solo se utilize en circunstancias especiales. El sistema de archivos de Amoeba consta de tres servidores: el servidor de archivos para el almacenamiento de estos, el servidor de directorios para otorgar hombres y el servidor de replicas para la rplica de archivos. El servidor de archivos mantiene archivos inmutables que se almacenan en bloques adyacentes, en el disco y en el cache. El servidor de directorios es un servidor tolerante de fallas que asocia cadenas en ASCII con las posibilidades. El servidor de replicas controla la replica retrasada. El objetivo principal del proyecto era construir un sistema operativo distribuido y transparente. Para el usuario promedio, el uso de Amoeba es igual al uso de un sistema tradicional de tiempo compartido, como UNIX. Uno entra, edita y compila los programas, mueve archivos de un lugar a otro, etc. La diferencia es que cada una de estas acciones pace uso de varias maquinas, dispersas en la red. Entre estas maquinas estn los servidores de procesos, los de archivos, los de directorios, los de comput y otros, pero el usuario no es consciente de ello. En la terminal, todo parece como un sistema ordinario de tiempo compartido. Una distincin importante entre Amoeba y la mayora de los dems sistemas distribuidos es que Amoeba no tiene el concepto de "maquina de origen". Cuando un usuario

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

entra al sistema, entra a este como un todo y no a una maquina especifica. Las maquinas no tienen propietarios. El shell inicial, que se ejecuta al entrar el usuario, se ejecuta en cierta maquina arbitraria, pero al ser iniciados los comandos, en general no se ejecutan en la misma mquina donde se ejecuta el shell. En vez de esto, el sistema busca de manera automtica la maquina con la menor carga para ejecutar cada nuevo comando. Durante el curso de una larga sesin en la terminal, los procesos que se ejecutan a cargo de un usuario cualquiera estarn ms o menos dispersos en todas las maquinas del sistema, dependiendo de la carga, por supuesto. En otras palabras, todos los recursos pertenecen al sistema como un todo y son controlados por l. No estn dedicados a usuarios especficos, excepto por periodos cortos para la ejecucin de procesos individuales. La arquitectura del sistema Amoeba Amoeba se diseo con dos hiptesis respecto al hardware:
1. Los sistemas tienen un nmero muy grande de CPU. 2. Cada CPU tendr decenas de megabytes de memoria.

La fuerza motriz detrs de la arquitectura del sistema es la necesidad de incorporar un gran nmero de CPU de manera directa. En otras palabras, qu hacer si cada usuario puede disponer de 10 a 100 CPU? Una solucin consiste en darle a cada usuario un multiprocesador personal de 10 o 100 nodos. Amoeba se basa en el modelo que se muestra en la figura 7-1. En este modelo, todo el poder de cmputo se localiza en una o ms pilas de procesadores. Una pila de procesadores consta de varios CPU, cada uno con su propia memoria local y conexin a la red. No se necesita la memoria compartida, ni siquiera se espera que exista; pero si est presente, se le utiliza para optimizar la transferencia de mensajes al hacer el copiado de una memoria a otra, en vez de enviar mensajes a travs de la red. Amoeba esta diseado de forma que pueda trabajar con varias arquitecturas y sistemas heterogneos. Incluso es posible que los hijos de un proceso se ejecuten en arquitecturas diferentes.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

La pila de procesadores no es "poseda" por usuario alguno. Cuando un usuario escribe un comando, el sistema operativo asigna en forma dinmica uno o ms procesadores para ejecutar ese comando. Al terminar el comando, se terminan los procesos y los recursos regresan a la pila, en espera del siguiente comando, que muy probablemente sea de un usuario diferente. Si existe una reduccin en el nmero de procesadores en la pila, se comparte el tiempo de los procesadores individuales, de modo que los nuevos procesos lean asignados al CPU con menor carga. El punto importante en este momento es que este modelo es un poco distinto de los sistemas actuales, donde cada usuario tiene exactamente una estacin de trabajo para todas sus actividades de cmputo. El segundo elemento de la arquitectura de Amoeba es la terminal. El usuario tiene acceso al sistema a travs de la terminal. Una terminal usual de Amoeba es la terminal X, con una pantalla de gran tamao (con un mapa de bits) y un ratn. Otra alternativa consiste en que tambin se pueda utilizar como terminal una computadora personal o una estacin de trabajo que ejecute ventanas X. Aunque Amoeba no prohbe la ejecucin de los programas del usuario en la terminal, la idea detrs de este modelo es proporcionar a los usuarios terminales relativamente baratas y concentrar los ciclos de cmputo en una pila comn para utilizarlos con mayor eficiencia. Otro componente importante de la configuracin de Amoeba son los servidores especializados, como los servidores de archivos, que por razones de hardware o software necesitan ejecutarse en un procesador aparte. En ciertos casos, es posible que un servidor se ejecute en un procesador de la pila, para que se inicie cuando sea necesario, pero por razones de desempeo es mejor que se ejecute todo el tiempo.

El microncleo de Amoeba Amoeba consta de dos partes fundamentales: un microncleo que se ejecuta en cada procesador, y una coleccin de servidores que proporcionan la mayor parte de la funcionalidad de un sistema operativo tradicional. La estructura general se muestra en la figura 7-2.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

El microncleo de Amoeba se ejecuta en todas las maquinas del sistema. El mismo ncleo se utiliza en los procesadores de la pila, las terminales (suponiendo que sean computadoras en vez de terminales X) y los servidores especializados. El microncleo tiene cuatro funciones basicas:
1. Controlar los procesos e hilos. 2. Proporcionar el soporte de la administracin de memoria de bajo nivel. 3. Soporta la comunicacin.

4. Controlar la EIS de bajo nivel. Amoeba soporta tambin varios hilos de control dentro de un espacio de direcciones. Un proceso con un hilo es en esencia igual a un proceso en UNIX. Tal proceso tiene un espacio de direcciones, un conjunto de registros, un contador del programa y una pila. La segunda tarea del ncleo es proporcionar la administracin de la memoria de bajo nivel. Los hilos pueden asignar o eliminar la asignacin de los bloques de memoria, llamados segmentos. Estos segmentos se pueden leer o escribir y ser asociados o desasociados al espacio de direcciones del proceso al cual pertenece el hilo que realiza la Ramada. Un proceso debe poseer al menos un segmento, pero tambin puede tener varios. Los segmentos se pueden utilizar para el texto, los datos, la pila o para cualquier otro fin que desee el proceso. El sistema operativo no obliga a utilizar algn patrn particular de uso de los segmentos. La tercera tarea del ncleo es controlar la comunicacin entre los procesos. Se dispone de dos formas de comunicacin: puntual y de grupo. Ambas estn muy integradas entre s, de modo que sean lo ms parecidas posible. La cuarta funcin del ncleo es la administracin de la E/S de bajo nivel. Para cada dispositivo de E/S conectado a una maquina, existe un controlador del dispositivo

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

en el ncleo. Este controlador se encarga de toda la E/S del dispositivo. Los controladores estn ligados con el ncleo y no se pueden cargar de manera dinmica. Los servidores de Amoeba Todo lo que no se lleva a cabo dentro del ncleo lo realizan los procesos servidores. La idea detrs de este diseo es minimizar el tamao del ncleo y rnejorar la flexibilidad. Como el sistema de archivos y otros dispositivos estndar no se integran al nivel, estos se pueden modificar con facilidad y se pueden ejecutar en forma simultnea varias versiones para las distintas poblaciones de usuarios. Objetos y Posibilidades en Amoeba Objetos El concepto bsico y unificador subyacente en todos los servidores de Amoeba y los servicios que estos proporcionan es el objeto. Un objeto es una pieza encapsulada de datos en la que se pueden llevar a cabo ciertas operaciones bien definidas. Es en esencia, un tipo de dato abstracto. Los objetos son pasivos. No contienen procesos o mtodos o alguna otra entidad activa que "haga" cosas; en Lugar de esto, cada objeto es controlado por un proceso servidor. Posibilidades Los objetos reciben su nombre y proteccin de manera uniforme mediante boletos especiales llamados posibilidades. Para crear un objeto, un cliente real iza una RPC con el servidor apropiado, donde indica lo que desea. El servidor crea entonces el objeto y regresa una posibilidad al cliente. En las operaciones siguientes, el cliente debe presentar la posibilidad para identificar al objeto. Una posibilidad no es ms que un nmero binario de gran tamao.

Administracin de Procesos en Amoeba Un proceso en Amoeba es bsicamente un espacio de direcciones y una coleccin de hilos que se ejecutan en el. Un proceso con un hilo es muy semejante a un proceso en UNIX o en MS-DOS, en trminos de su comportamiento o su funcin. En esta seccin explicaremos el funcionamiento de los procesos e hilos y la forma de implantarlos.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Un proceso es un objeto en Amoeba. Al crear un proceso, el proceso padre obtiene una posibilidad para el proceso hijo, al igual que con cualquier otro objeto recin creado. Mediante esta posibilidad, el hijo se puede suspender, reiniciar o destruir. Amoeba permite crear un proceso nuevo en un procesador especfico donde la supuesta imagen en memoria comience justo al principio. La administracin de procesos es controlada en tres niveles distintos en Amoeba. En el nivel inferior estn los servidores de procesos, hilos del ncleo que se ejecutan en cada una de las maquinas. Para crear un proceso en una mquina dada, otro proceso realiza una RPC con el servidor de procesos de esa mquina, proporcionando la informacin necesaria. En el siguiente nivel tenemos un conjunto de procedimientos de biblioteca que proporcionan una interfaz ms conveniente para los programas del usuario. Se tienen distintos gustos. Hacen su trabajo al Ilamar a los procedimientos de interfaz de bajo nivel. Por ltimo, la forma ms sencilla de crear un proceso es utilizar el servidor de ejecucin, que hace la mayor parte del trabajo para determinar el lugar donde se ejecuta el nuevo proceso. Administration de Memoria en Amoeba Amoeba tiene un modelo de memoria en extremo sencillo. Un proceso puede tener el nmero de segmentos que desee y stos se pueden local izar en cualquier parte del espacio de direcciones virtuales del proceso. Los segmentos no se intercambian ni se paginan, por lo que un proceso debe estar por completo contenido en la memoria para su ejecucin. Adems, aunque se utiliza el hardware MMU, cada segmento se almacena de manera adyacente a los dems en la memoria. La segunda razn para este diseo es la sencillez. El hecho de no utilizar el intercambio o la paginacin hace ms sencillo al sistema y hace que el ncleo sea ms pequeo y controlable. La memoria ser tan barata que, al cabo de pocos aos, es probable que todas las maquinas Amoeba tengan cientos de megabytes de la misma.

Comunicacin en Amoeba Amoeba soporta dos formas de comunicacin: RPC mediante Ia transferencia puntual de mensajes y la comunicacin en grupo. En el nivel ms bajo, una RPC consta de un mensaje de solicitud seguido de un mensaje de respuesta. La comunicacin en grupo utiliza la transmisin en hardware o multitransmisin si se dispone de esta; en caso contrario, la simula de manera transparente mediante mensajes individuales

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

MACH Mach es un sistema operativo basado en un microncleo. Se diseo con el fin de proporcionar una base para la construccin de nuevos sistemas operativos y la emulacin de los ya existentes. Tambin proporciona una forma flexible de extender UNIX a los multiprocesadores y los sistemas distribuidos. Mach se basa en los conceptos de procesos, hilos, puertos y mensajes. Un proceso en Mach es un espacio de direcciones

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

y una coleccin de hilos que se ejecutan en el. Las entidades activas son los hilos. El proceso es simplemente un recipiente para ellos. Cada proceso e hilo tiene un puerto al que se puede escribir para hacer que las Ilamadas al ncleo se lleven a cabo, lo que elimina la necesidad de las llamadas directas al sistema. Mach tiene un sistema de memoria virtual muy elaborado, con objetos de memoria que se pueden asociar o desasociar de los espacios de direcciones, respaldado por administradores de memoria externos a nivel usuario. De esta forma, se puede escribir o leer de los archivos en forma directa, por ejemplo. Los objetos de memoria se pueden compartir de varias maneras, entre las cuales se encuentra el copiado durante la escritura. Los atributos de herencia determinan las partes del espacio de direcciones de un proceso que deben transferirse a sus hijos. La comunicacin en Mach se basa en los puertos, objetos del ncleo que contienen mensajes. Todos los mensajes se dirigen a los puertos, a los cuales se tiene acceso mediante las posibilidades; estas se almacenan dentro del ncleo y se hace referencia a ellas mediante enteros de 32 bits, que son por lo general ndices a listas de posibilidades. Los puertos se pueden transferir de un proceso a otro al incluirlos en los mensajes complejos. La emulacin del UNIX BSD se realiza mediante una biblioteca de emulacin que vive en el espacio de direcciones de cada proceso UNIX. Su trabajo es capturar las llamadas al sistema reflejadas hacia ella por el ncleo y transferirlas al servidor UNIX para que se Ileven a cabo. Unas cuantas Ilamadas se controlan en forma local, dentro del espacio de direcciones del proceso. Se estan desarrollando otros emuladores de UNIX. Amoeba y Mach tienen muchos aspectos en comn, pero tambin varias diferencias. Ambos tienen procesos e hilos y se basan en la transferencia de mensajes. Amoeba tiene como primitiva a la transmisin confiable, mientras que Mach no; pero Mach tiene paginacin segn la demanda, y Amoeba no. En general, Amoeba esta mas orientado a hacer que una coleccin de maquinas distribuidas acte como una computadora, mientras que Mach esta mas orientado hacia el use eficaz de los multiprocesadores. Ambos se estn desarrollando de manera continua y sin duda se vern modificados con el curso del tiempo. Objetivos de Mach Los actuales objetivos principales de Mach se pueden resumir de la manera siguiente:
1. Proporcionar una base para la construccin de otros sistemas operativos (por ejemplo,

UNIX).

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

1. Soporte de un espacio de direcciones ralo y de gran tamao. 2. Permitir el acceso transparente a los recursos de la red. 3. Explotar el paralelismo tanto en el sistema como en las aplicaciones. 4. Racer que Mach se pueda transportar a una coleccin ms grande de maquinas.

El microncleo de Mach El microncleo de Mach se diseo como base para emular UNIX y otros sistemas operativos. La emulacin se lleva a cabo mediante una capa del software que se ejecuta fuera del ncleo, en el espacio del usuario, como se muestra en la figura 81. Cada emulador consta de una parte que est presente en el espacio de direcciones de los programas de aplicacin, as como uno o ms servidores que se ejecutan de manera independiente a los programas de aplicacin. Hay que observar que se pueden ejecutar varios emuladores al mismo tiempo, por lo que es posible ejecutar programas en 4.3BSD, el Sistema V y MS-DOS, en la misma mquina al mismo tiempo.

El ncleo de Mach, al igual que otros microncleos, proporciona la administracin de procesos, la administracin de la memoria, la comunicacin y los servicios de EIS. Los archivos, directorios y dems funciones tradicionales del sistema operativo se controlan el espacio del usuario. La idea subyacente en el n6cleo de Mach es proporcionar los mecanismos necesarios para que el sistema funcione, pero dejando Ia politica a los procesos a nivel usuario. El ncleo controla cinco abstracciones principales:

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

1. Procesos. 2. Hilos. 2. Objetos de la memoria. 3. Puertos. 4. Mensajes. El servidor BSD UNIX de Mach Esta estructura tiene varias ventajas significativas sobre un ncleo monoltico. En primer lugar, al separar sistema en una parte que controla la administracin de los recursos (el ncleo) y otra que controla las llamadas al sistema (el servidor de UNIX), ambas partes son ms sencillas y fciles de mantener. En segundo lugar, al colocar a UNIX en el espacio del usuario, puede hacerse muy independiente de la maquina, mejorando con ello su portabilidad a una amplia gama de computadoras. Todas las dependencias de la maquina se pueden eliminar de UNIX y ocultarse en el ncleo de Mach. En tercer lugar, como hemos mencionado, se pueden ejecutar varios sistemas operativos en forma simultnea. En cuarto lugar, se puede aadir al sistema la operacin en tiempo real, puesto que todos los obstculos tradicionales que UNIX presenta en el trabajo en tiempo real, como la desactivacin de interrupciones para la actualizacin de las tablas crticas se eliminan en su conjunto o se desplazan al espacio del usuario. El ncleo se puede estructurar con cuidado para no tener este tipo de dificultades en las aplicaciones de tiempo real. Por ltimo, este orden se puede utilizar para proporcionar una mayor seguridad entre los procesos, en caso necesario. Si cada proceso tiene su propia versin de UNIX, es muy difcil que un proceso pueda husmear en los archivos de otro proceso.

Administracion de Procesos en MACH

La administracin de los procesos en Mach se encarga de los procesos, los hilos y la planificacin. Un proceso en Mach consta principalmente de un espacio de direcciones y una coleccin de bits que se ejecutan en ese espacio de direcciones. Los procesos son pasivos. La ejecucin se asocia con los hilos. Los procesos se utilizan para recolectar

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

en recipientes convenientes todos los recursos relacionados con un grupo de hilos que cooperan entre s.

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 Ilevar nada a cabo si no tiene uno o ms hilos. Todos los hilos de un proceso comparten el espacio de direcciones y todos los recursos a todo lo ancho del proceso La planificacin de Mach se ha vista muy influida por su objetivo de ejecucin en multiprocesadores. Puesto que un sistema con un procesador es en realidad un caso particular de un multiprocesador (con un CPU), nuestro anlisis se centra en la planificacin en sistemas de multiprocesadores. La planificacin de los hilos en Mach se basa en las prioridades. Las prioridades son nmeros de 0 hasta un nmero mximo (por lo general, 31 o 127), donde 0 representa la mxima prioridad y 31 o 127 la mnima. Administracion de procesos en Mach Mach tiene un poderoso sistema para la administracin de la memoria, muy elaborado y muy flexible, basado en la paginacin, con caractersticas que se encuentran poco en otros sistemas operativos. En particular, separa las partes independientes de la mquina de dicho sistema para la administracin de la memoria de las partes dependientes de la mquina, de manera poco usual pero en extremo clara. Esta separacin hace que la administracin de la memoria sea ms portable que en otros sistemas

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

El aspecto de la administracin de memoria de Mach que establece la diferencia con los dems es que el cdigo se divide en tres partes. La primera es el mdulo pmap, que se ejecuta en el ncleo y se encarga del manejo del MMU. Configura los registros de MMU y las tablas de pginas del hardware, adems de capturar todos los fallos de pgina. Este cdigo depende de la arquitectura MMU y debe ser escrito de nuevo para cada una de las maquinas nuevas a las que se traslade Mach. La segunda parte es el c6digo del ncleo independiente de la maquina, encargado del procesamiento de los fallos de pagina, el manejo de los mapas de direcciones y el reemplazo de pginas. La tercera parte del cdigo de administracin de la memoria se ejecuta como proceso usuario Ilamado administrador de la memoria o a veces paginado externo. Controla la parte lgica (en contraposicin a la parte fsica) del sistema para la administracin de memoria, principalmente el manejo de los espacios de respaldo (disco). Cada proceso tiene con exactitud una lista de posibilidades. Cuando un bit pide al ncleo crear un puerto para l, el ncleo lo hace e introduce una posibilidad para el hilo en la lista de posibilidades del proceso al que pertenece el hilo.

Comunicacin en Mach El objetivo de la comunicacin en Mach es soportar una gama de estilos de comunicacin de manera confiable y flexible. Controla la transferencia asncrona de mensajes, RPC, flujos de bytes y otras formas. El mecanismo de comunicacin entre procesos de Mach se basa en el de sus antecesores, RIG y Accent. Debido a esta evolucin, el mecanismo utilizado ha sido optimizado para el caso local (un nodo) en vez del caso remoto (sistema distribuido).

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

La base de toda la comunicacin en Mach es una estructura de datos en el ncleo Ilamado puerto. Un puerto es en esencia un buzn protegido. Cuando un hilo de un proceso desea comunicarse con un hilo de otro procesos, el hilo emisor escribe el mensaje al puerto y el hilo receptor lo obtiene de l. Cada puerto est protegido para garantizar que solo los procesos autorizados puedan enviar y recibir de l. El ncleo mantiene para cada proceso una tabla de todos los puertos a los cuales tiene acceso dicho proceso. Esta tabla se mantiene segura dentro del ncleo, donde los procesos usuario no puedan alcanzarla. Los procesos se refieren a los puertos mediante su posicin en esta tabla; es decir, la entrada I, la entrada 2, etc. Estas entradas de la tabla son posibilidades clsicas.

Cada entrada de la lista de posibilidades es uno de los cuatro elementos siguientes:


1. Una posibilidad para un puerto. 2. Una posibilidad para un conjunto de puertos. 3. Una entrada nula. 4. Un cdigo que indica que el puerto que se encontraba en ese lugar est muerto

ahora. CHORUS Como Amoeba y Mach, Chorus es un sistema operativo basado en un microncleo para su use en los sistemas distribuidos. Proporciona una compatibilidad binaria con el System V de UNIX, un soporte para las aplicaciones de tiempo real, y la programacin orientada a objetos. Chorus consta de tres capas conceptuales: la capa del ncleo, los subsistemas, y los procesos usuario. La capa del ncleo contiene al microncleo propiamente dicho, as como algunos procesos del ncleo que se ejecutan en modo ncleo y comparten el espacio de direcciones del microncleo. La capa intermedia contiene los subsistemas,

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

que se utilizan para proporcionar el soporte del sistema operativo a los programas usuarios, que residen en la capa superior. El microncleo proporciona seis abstracciones fundamentales: los procesos, los hilos, las regiones, los mensajes, los puertos. los grupos de puertos y los identificadores 6nicos. Los procesos proporcionan una forma de reunir y controlar los recursos. Los hilos son los entes activos del sistema, y son planificados por el ncleo mediante un planificador basado en prioridades. Las regiones son reas del espacio de direcciones virtuales que pueden tener segmentos asociados a ellas. Los puertos son buffers que se utilizan para guardar los mensajes recibidos que no han sido ledos. Los identificadores nicos son nornbres binarios utilizados para la identificacin de los recursos. El microncleo y los subsistemas proporcionan juntos tres construcciones adicionales: las posibilidades, los identificadores de proteccin y los segmentos. Los primeros dos se utilizan para nombrar y proteger a los recursos del subsistema. La tercera es la base para la asignacin de memoria, tanto dentro de un proceso en ejecucin como en el disco.

Objetivos de Chorus Los objetivos del proyecto Chorus han evolucionado junto con el sistema. En un principio, se trataba de una investigacin puramente acadmica, diseada para explorar nuevas ideas en el cmputo distribuido con base en el modelo del actor. Al pasar el tiempo, se volvi ms comercial, y se cambi6 el nfasis. Los objetivos actuales se pueden resumir como sigue: 1. Emulacin de UNIX de alto rendimiento. 2. Uso en sistemas distribuidos. 3. Aplicaciones de tiempo real. 4. Integracin de la programacin orientada a objetos en Chorus.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Estructura del sistema Chorus est estructurado en capas, como se muestra en la figura 9-1. En la parte inferior esta el microncleo (llamado solo ncleo en la documentacin de Chorus). Proporciona la mnima administracin de los nombres, procesos, hilos, memoria y comunicacin. Se tiene acceso a estos servicios mediante Ilamadas al microncleo. Existen ms de 100 llamadas. Los procesos de las capas superiores proporcionan el resto del sistema operativo. Cada mquina de un sistema distribuido basado en Chorus ejecuta una copia idntica del microncleo de Chorus.

Abstracciones del ncleo El ncleo (Ilamado el micron6cleo en nuestra nomenclatura) proporciona y controla seis abstracciones fundamentales que forman la base de Chorus. Estos conceptos son los procesos, los hilos, las regiones, los mensajes, los puertos, los grupos de puerto y los identificadores nicos.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Cada proceso tiene un espacio de direcciones, que por lo general van de 0 a cierta direccin mxima, como 232 1. Todos los hilos de un proceso tienen acceso a este espacio de direcciones. Un rango consecutivo de direcciones es una regin. Cada regin est asociada con alguna pieza de datos, como un programa o archivo. En los sistemas que soportan la memoria virtual y la paginacin, las regiones se pueden paginar. Las regiones juegan un papel fundamental en la administracin de la memoria en Chorus. Los mensajes tienen una parte fija y un cuerpo de tamao variable, ambos opcionales. El cuerpo no est tipificado y contiene cualquier informacin colocada ah por el emisor. Un mensaje no se enva a un hilo, sino a una estructura intermedia Hamada puerto. Un puerto es un buffer para la recepcin de mensajes, que contiene los mensajes recibidos por un proceso pero que aun no han sido ledos. Al igual que un hilo, una regin o algn otro recurso, en cualquier memento, cada puerto pertenece a un proceso. Solo ese proceso puede leer sus mensajes. Los puertos se agrupan para formar grupos de puertos. La ltima abstraccin del ncleo se refiere a los nombres. La mayor parte de Los recursos del n6cleo (por ejemplo, los procesos y los puertos) reciben su nombre mediante un identificador nico (UI) de 64 bits.

Administracion de Procesos en Chorus Se refiere al funcionamiento de los procesos y los hilos en Chorus, la forma en que se manejan las excepciones y la forma en que se realiza la planificacin. Un proceso en Chorus es una coleccin de elementos activos y pasivos que funcin juntos para realizar cierto calculo. Los elementos activos son los hilos. Los elementos pasivos son un espacio de direcciones (que contiene ciertas regiones) y una coleccin puertos (para el envo y recepcin de mensajes). Los procesos se ejecutan en modo ncleo y todos comparten el mismo espacio de direcciones entre si y con el micro ncleo. Se cargan o descargan durante la ejecucin. Cada proceso activo en Chorus tiene uno o ms hilos que ejecutan cdigo. Cada hilo tiene su propio contexto privado (es decir, su pila, contador del programa y registros),

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

que se guarda cuando el hilo se bloquea en espera de cierto evento y se restaura cuando se reasume de nuevo el hilo. Un hilo esta unido al proceso en el que fue creado, y no se puede mover a otro proceso. La planificacin de los CPU se realiza mediante el use de prioridades con base en los hilos. Cada proceso tiene prioridad y cada hilo tiene prioridad relativa dentro de su proceso. La prioridad absoluta de un hilo es la suma de la prioridad de su proceso y su prioridad relativa. Este mecanismo proporciona la suficiente generalidad para la mayora de las aplicaciones en tiempo real. Se dispone de Ilamadas del sistema para modificar las prioridades de los procesos y los hilos, de modo que las aplicaciones puedan decir al sistema los hilos que son ms importantes y los que son menos importantes. Se dispone de algoritmos adicionales de planificacin para soportar los procesos de tiempo real y de sistema, para el System V.

Administracin de Memoria en Chorus Los conceptos principales detrs de la administracin de memoria en Chorus son las regiones y los segmentos. Una regin es un rango adyacente de direcciones virtuales, por ejemplo de 1 024 a 6 143. Las regiones son una propiedad de los procesos y todos los bytes de un proceso y en las mismas regiones. Un segmento es una coleccin adyacente de bytes que reciben el nombre y proteccin de una posibilidad. Los archivos y las reas de intercambio son los tipos ms comunes de segmentos. Los segmentos se pueden leer o escribir en ellos utilizando llamadas al sistema que proporcionen la posibilidad, el desplazamiento, el nmero de bytes, el buffer y la direccin de transferencia del segmento. Estas llamadas se utilizan para realizar las operaciones tradicionales de EIS sobre los archivos.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Chorus soporta paginadores externos del estilo de Mach, Ilamados asociadores. Cada asociador controla uno o ms segmentos que son asociados con regiones. Un segmento se asocia con varias regiones, incluso en diferentes espacios de direcciones al mismo tiempo. La administracin de memoria en Chorus soporta 26 Ilamadas al sistema diferentes, ms algunas otras Ilamadas del ncleo a los asociadores.

Las llamadas proporcionan una imagen razonable del funcionamiento de la administracin de la memoria en Chorus.

Comunicacin en Chorus El paradigma bsico de comunicacin en Chorus es la transferencia de mensajes. Cada mensaje contiene un encabezado (solo para uso interno del micro ncleo, una parte fija opcional y un cuerpo opcional. El encabezado identifica la fuente y destino y contiene varios identificadores de proteccin y banderas. La parte fija, si est presente, siempre tiene una longitud de 64 bytes y esta por completo bajo el control del usuario. El cuerpo tiene un tamao variable, con un mximo de 64K bytes, y tambin esta por completo bajo el control del usuario. Los mensajes se envan a los puertos, cada uno de los cuales contiene un espacio para guardar cierto nmero de mensajes. Si se enva un mensaje a un puerto lleno, el emisor se suspende hasta que se dispone del espacio suficiente. Al crear un puerto, el proceso que hizo la llamada recibe un identificador nico y un identificado local. El primero se puede enviar a otros procesos de modo que estos pueden enviar mensajes al puerto. El segundo se utiliza dentro del proceso para hacer referencia de manera directa al puerto.

SISTEMAS OPERATIVOS DISTRIBUIDOS

7 de abril de 2010

Chorus proporciona dos tipos de operaciones de comunicacin: envo asncrono y RPC. El envo asncrono permute que un hilo solo envi un mensaje a un puerto. No existe garanta de que el mensaje Ilegue a su destino y no existe una notificacin si algo sale mal. Esta es la forma ms pura de datagrama y permite que los usuarios construyan patrones de comunicacin arbitrarios utilizando Chorus. La otra operacin de comunicacin es la RPC. Cuando un proceso ejecuta una operacin de RPC, se bloquea en forma automtica hasta que llega la respuesta o expira el cronmetro de la RPC, en cuyo momento se elimina el bloqueo del emisor. Se garantiza que el mensaje que elimina el bloqueo del emisor es la respuesta a la solicitud.

Comparacin de Amoeba, Mach y Chorus

Das könnte Ihnen auch gefallen