Amoeba

UNIVERSIDA DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIA SISTEMAS OPERATIVOS AVANZADOS PROYECTO

Views 38 Downloads 0 File size 374KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDA DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIA

SISTEMAS OPERATIVOS AVANZADOS PROYECTO FINAL "AMOEBA" ESTEBAN ALEJANDRO VARGAS ROSAS 304564251

HISTORIA

Amoeba se origino en Vrije Universiteit, Amsterdam, Holanda, en 1981, como proyecto de investigación en computo distribuido y paralelo. Diseñado por Andrew S. Tannenbaum y tres de sus estudiantes de doctorado, Frans Kaashock, Sape J. Mullender y Robbert van Renesse, aunque muchas otras personas contribuyeron en el diseño y la implantación. En el año de 1983, un prototipo inicial, Amoeba 1.0, tenía un nivel operacional. A partir de 1984, el proyecto Amoeba se dividió y se estableció en un segundo grupo en el Centro de Matemáticas y Ciencias de la Computación, también en Amsterdam, bajo la dirección de Mullender. En los años siguientes, esta cooperación se extendió a lugares de Inglaterra y Noruega con un proyecto de sistema distribuido de área amplia patrocinado por la Comunidad Europea. Durante el estudio se utilizo Amoeba 3.0 que, a diferencia de las versiones anteriores, se basa en RPC, al utilizar Amoeba 3.0 fue posible que los clientes tuvieran un acceso transparente a los servidores y viceversa. El sistema evoluciono durante algunos años, adquiriendo características como la emulación parcial de UNIX, la comunicación en grupo y un protocolo nuevo de bajo nivel. Muchos de los proyectos de investigación en los sistemas operativos distribuidos han partido de un sistema existente y agregando nuevas características como el uso de redes y un sistema compartido de archivos para hacerlo más distribuido. El proyecto Amoeba siguió un método diferente. Partió de un plan limpio y desarrollo un sistema nuevo a partir de cero. La idea era tener un comienzo fresco y experimentar nuevas ideas sin tener que preocuparse por la compatibilidad retroactiva con cualquiera de los sistemas existentes. Para evitar el enorme trabajo de escribir grandes cantidades de software de aplicación, se añadió posteriormente un paquete de emulación de UNIX.

Una distinción importante entre Amoeba y la mayoría de los demás sistemas distribuidos es que Amoeba no tiene el concepto de "Maquina origen". Cuando un usuario entra al tema, entra a ese como un todo y no 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 máquina donde se ejecuta el shell, el sistema busca de manera automática la maquina con la menor carga para ejecutar cada nuevo comando. Durante el curso de una larga sesión en la terminal, los procesos que se ejecutan a cargo de un usuario cualquiera estarán mas o menos dispersos en todas las maquinas del sistema, dependiendo de la carga, es decir, Amoeba es muy transparente con respecto a la ubicación.

Características Amoeba se diseño con dos hipótesis respecto al hardware: 1.- Los sistemas tienen un número muy grande de CPU 2.- Cada CPU tendrá decenas de megabytes en memoria

Amoeba se basa en tomar todo el poder de computo se localiza en una o más pilas de procesadores, la cual consta de varios CPU, cada uno con su propia memoria local y conexión 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 través de la red

Los CPU en una pila pueden tener distintas arquitecturas; por ejemplo, una mezcla de maquinas 680x0, 386 o SPARC. Amoeba está diseñado de forma que puede trabajar con varias arquitecturas y sistemas heterogéneos. Incluso es posible que los hijos de un proceso se ejecuten en arquitecturas diferentes. La pila de procesadores no es tomada por usuario alguno. Cuando un usuario escribe un comando, el sistema operativo asigna en forma dinámica uno o más 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 reducción en el numero de procesadores en la pila, se comparte el tiempo de los procesadores individuales, de modo que los nuevos procesos sean asignados al CPU con menor carga. Otro componente importante de la configuración 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 pila, para que se inicie cuando sea necesario, pero por razones de desempeño es mejor que se ejecute todo el tiempo.

Micro núcleo Amoeba consta de 2 partes un micro núcleo que se ejecuta en cada procesador, y una colección de servidores que proporcionan la mayor parte de la funcionalidad de un sistema operativo tradicional.

El micro núcleo se ejecuta en todas las maquinas del sistema. El mismo núcleo se utiliza en los procesadores de la pila, las terminales y los servidores especializados. El micro núcleo tiene cuatro funciones básicas: 1. 2. 3. 4.

Controlar hilos y procesos Proporciona soporte a la administración de memoria de bajo nivel Soporta la comunicación Controla E/S de bajo nivel

Amoeba soporta el concepto de proceso. Amoeba soporta también 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 de programa y una pila. La segunda tarea del núcleo es proporcionar la administración de memoria de bajo nivel. Los hilos pueden asignar o eliminar la asignación de los bloqueos 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 llamada. Un proceso debe poseer al menos un segmento, pero también puede tener varios, se pueden utilizar para el texto, los datos, la pila o para cualquier otro fin que desee el proceso. La tercera tarea del núcleo es controlar la comunicación entre procesos, se dispone de dos formas de comunicación: puntual y de grupo. Ambas están muy integradas entre sí, de modo que sean lo más parecidas posibles, la comunicación puntual se basa en el modelo de un cliente que envía un mensaje a un servidor y después se bloquea hasta que el servidor envié una respuesta. Este intercambio solicitud/respuesta es la base para la construcción de todo lo demás. La otra forma de comunicación es de grupo. Permite el envió de mensajes de una fuente a varios destinos, los protocolos en software proporcionan una comunicación en grupo confiable y tolerante de fallas a los procesos de usuario, en presencia de mensajes perdidos u otros errores. La cuarta función del núcleo es la Administración de la E/S de bajo nivel, para cada dispositivo de E/S conectado a una maquina, existe un controlador del dispositivo en el núcleo. Este controlador se encarga de toda la E/S del dispositivo, los controladores están ligados al núcleo y no se pueden cargar de manera dinámica. Los controladores de dispositivos se comunican con el resto del sistema mediante los mensajes usuales de solicitud y respuesta, en general, el cliente no tiene que saber que se comunica con un controlador, tanto el sistema de mensajes puntuales como la comunicación en grupo hacen uso de un protocolo llamado FLIP, es un protocolo de capas de la red y fue diseñado en especial para cubrir las necesidades de computo distribuido, trabaja tanto con la unitransmision como con la multitransmision en redes complejas.

Servidores Amoeba Todo lo que no se lleva a cabo dentro del núcleo lo realizan los procesos servidores, como el sistema de archivos y otros dispositivos no se integran al núcleo, estos se pueden modificar con facilidad y se pueden ejecutar en forma simultánea varias versiones para las distintas poblaciones de usuarios. Amoeba se basa en el modelo cliente-servidor, los clientes son escritos en general por los usuarios, mientras que los servidores son escritos ir los programadores del sistemas, el concepto de objeto es central en el diseño de todo el software, un objeto es como un tipo de dato abstracto, cada objeto consta de datos encapsulados, con ciertas operaciones definidas en ellos. El servidor más importante es el servidor de archivos ya que proporciona las primitivas para la administración de archivos, creación, lectura, eliminación, etc. a diferencia de la mayoría de los servidores de archivos, los archivos creados son inmutables. Una vez creado, un archivo no se puede modificar, pero si puede ser eliminado, los archivos inmutables facilitan la réplica automática, puesto que evitan muchas de las condiciones de competencia inherentes en la réplica de archivos sujetos a modificaciones durante tal proceso. Administración de procesos Un proceso en Amoeba es básicamente un espacio direcciones y una colección de hilos que se ejecuten en el. un proceso con un hilo es muy semejante a un proceso UNIX o en MS-DOS, en términos de su comportamiento o función. Son un objeto, al crearse el proceso padre obtiene una posibilidad para el proceso hijo, al igual que con cualquier otro objeto recién creado mediante esta posibilidad, el hijo se puede suspender, reiniciar o destruir. Algunas de las llamadas para la administración de procesos utilizan una estructura de datos llamada descriptor del proceso donde se proporciona la

información relativa a un proceso que esta por ejecutarse. Un campo del descriptor del proceso indica las arquitecturas de CPU donde se puede ejecutar el proceso.

Hilos Amoeba soporta un modelo sencillo de hilos, al iniciar el proceso, este tiene al menos un hilo durante la ejecución el proceso puede crear más hilos y los existentes pueden terminar su labor. Así el numero de hilos es dinámicos, al crearse uno nuevo, los parámetros de la llamada especifican el procedimiento por ejecutar y el tamaño de la pila inicial. Si un hilo desea crear y utilizar variables globales a todos sus procedimientos pero invisibles para los demás hilos, se dispone de procedimientos de biblioteca para tales fines, tales variables son locales. Un

procedimiento de biblioteca asigna un bloque de memoria glocal del tamaño necesario y regresa un apuntador a él. Se hace referencia a los bloques de memoria glocal mediante enteros en vez de cadenas. Se dispone de una llamada al sistema para que un hilo adquiera su apuntador glocal. Se dispone de tres métodos para la sincronización de hilos: -Señales: interrupciones asincronas que se envian de un hilo a otro en el mismo proceso. -Mutex: semaforo binario, puede tener uno de dos estados, cerrado o abierto. El intento por cerrar un mutex abierto cierra este, el hilo que realiza la llamada continua. -Semaforos: mas lentos que los mutex, pero son necesarios en ciertas ocasiones, funcionan de la manera usual, excepto qeu en este caso existe una llamada adicional para permitir que termine el tiempo de operacion DOWN. MEMORIA Se tiene un método de memoria sencillo. Un proceso puede tener el numero de segmentos que desee y estos se pueden localizar en cualquier parte dl 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 ejecución. aunque utiliza MMU, cada segmento se almacena de manera adyacente a los demás en la memoria. Este diseño se realizo asi por tres razones: Desempeño, sencillez y economia. El hecho de que un proceso este por completo contenido en la memoria hace mas rapida la RPC, el hecho de no utilizar el intercambio o la paginacion hace mas sencillo al sistema y hace que el núcleo sea mas pequeño y controlable, la memoria sera tan barata que al cabo de pocos años es probable qeu toas las maquinas Amoeba tengan cientos de megabytes de la misma.

COMUNICACION Amoeba soporta dos formas de comunicación RPC, mediante tranferencia puntual de mensajes y la comunicación en grupo, en el nivel mas bajo una RPC consta de un mensaje de solicitud seguido de un mensaje de respuesta. La comunicación en grupo tiliza la transmision en hardware o multitransmision si se dispone de esta en caso contrario, la simula de manera transparente mediante mensajes individuales.

RPC La comunicación puntual en Amoeba consta de un cliente que envía un mensaje a un servidor, seguida de una respuesta del servidor al cliente. No es posible que un cliente envíe un mensaje y después haga otra cosa, excepto al pasar por alto la interfaz RPC, lo cual ocurre sólo bajo circunstancias muy

especiales. La primitiva que envía la solicitud bloquea cn forma automática al proceso que hizo la llamada hásta recibir de regreso la respuesta, lo cual obliga la existencia de cierta estructura en los programas. Las primitivas independientes send y receive se pueden pensar como la respuesta de los sistemas distribuidos al enunciado goto: programación Spaghetti en paralelo. Deben ser evitados por los programas del usuario y utilizarse sólo mediante los sistemas de tiempo de ejecución del lenguaje que tienen requisitos de comunicación poco usuales. Cada servidor estándar define una interfaz de procedimientos que los clientes pueden llamar. Estas rutinas de biblioteca son resguardos que empaquetan los parámetros en mensajes y llaman a las primitivas del núcleo para enviar en realidad el mensaje. Durante la transmisión de éste, el resguardo, y por tanto el hilo que hace la llamada, se bloquea. Al regresar la respuesta, el resguardo regresa al cliente el estado y los resultados. Primitivas de RPC El mecanismo RPC utiliza principalmente tres primitivas del núcleo: l. get_request, indica la disposición de un servidor para escuchar a un puerto. 2. put_reply, llevada a cabo por un servidor cuando tiene un mensaje que desea enviar. 3. Trans, envía un mensaje del cliente al servidor y espera la respuesta. Los servidores utilizan las dos primeras. Los clientes utilizan la tercera para transmitir unmensaje y esperar una respuesta. Las tres son verdaderas llamadas al sistema; es decir, no funcionan mediante el envío de un mensaje a un hilo del servidor de comunicaciones. (Si los procesos pueden enviar mensajes, ¿por qué tendrian que contactar con un servidor con el fin de enviar un mensaje?) Sin embargo, los usuarios tienen acceso a las llamadas mediante procedimientos de biblioteca, como de costumbre.

Cuando un servidor desea irse a dormir en espera de que llegue una solicitud, llama a gel_request. Este procedimiento tiene los tres parámetros siguientes: get_request(&header, buffer, bytes) El primero apunta al encabezado de un mensaje, el segundo a un buffer de datos y el tercero indica el tamaño del buffer. Esta llamada es similar a read(fd, buffer, bytes) en UNIX OMS-DOS, en donde el primer parámetro identifica lo que se lee, el Segundo proporciona un buffer donde colocar los datos y el tercero indica el tamaño del buffer. Cuando se transmite un mensaje a través de la red, éste contiene un encabezado y (de manera opcional) un buffer de datos. El encabezado es una estructura fija de 32 bytes y se muestra en la figura 7-8. Lo que hace el primer parámetro de la llamada guet_request es indicar al núcleo dónde colocar el encabezado que está por recibir. Además, antes de hacer la llamada get_request, el servidor debe inicializar el campo Puerto del encabezado para que contenga al puerto que está escuchando. Esta es la razón por la cual el núcleo sabe cuál servidor está escuchando a cuál puerto. El encabezado recibido esoribe encima del iniciado por el servidor.

El encabezado utilizado en todos los mensajes de solicitud y respuesta en Amoeba. Los números entre paréntesis proporcionan los tamaños del campo en bytes. Al llegar un mensaje, el servidor elimina su bloqueo. Lo normal es que primero inspeccione el encabezado para saber más de la solicitud. El campo Firma está reservado confines de autenticación, pero no se utiliza por el momento. Los demás campos no están especificados por e] protocolo RPC, de modo que un cliente y un servidor se pueden poner de acuerdo para utilizarlos en la forma que deseen. COMUNICACION EN GRUPO Ya que RPC no es la unica forma de comunicación soportada, también se soporta la comunicación en grupo, el cual consta de uno o mas procesos que cooperan para llevar a cabo cierta tarea o proporcionar algun servicio. Los procesos pueden ser miembros de varios grupos al mismo tiempo. Los grupos son cerrados lo que significa que sólo los miembros pueden realizar transmisiones al grupo. La forma usual para que un cliente tenga acceso a un

servicio proporcionado por un grupo es que realice una RPC con alguno de sus miembros. Ese miembro utiliza entonces la comunicación en grupo dentro del mismo, en caso necesario, para determinar Io que debe realizar cada miembro. Este diseño se eligió para obtener mayor grado de transparencia que en el caso de una estructura de grupos abiertos. La idea detrás de é} es que los clientes utilizan por lo general la RPC. para conversar con servidores individuales, por lo que también utilizan RPC para conversar con los grupos. La alternativa (grupos abiertos y el uso de RPC para comunicarse con un Servidor pero utilizar comunicación en grupo para hablar con los servidores del grupo) es mucho menos transparente. (El uso de la comunicación en grupo para todo eliminaría las múltiples ventajas de RPC ya analizadas.) Una vez determinado que los clientes fuera de un grupo utilizarán RPC para hablar con el (en realidad, para hablar con un proceso del grupo), desaparece la necesidad de los grupos abiertos, por lo cual son adecuados los grupos cerrados, que además son más fáciles de implantar. PROTOCOLO INTERNET FAST LOCAL (FLIP) Amoeba utiliza el protocolo adaptado llamado FLIP (siglas en ingles del Protocolo local rapido internet) para la transmision real de los mensajes. Ete protocolo controla tanto la RPC como la comunicación en grupo y esta por debajo de ellos en la jerarquia de protocolos. En términos de OSI, FLIP es un protocolo con capas de red, mientras que la RPC es mas un protocolo de sesión o transporte sin conexion. FLIP se puede reemplazar por cualquier otro protocolo con capas de red, como IP, pero esto provocaria la perdida de transparencia por parte de Amoeba. Aunque FLIP fue diseñado en el contexto de Amoeba, se pretende que sea util en otros sistemas INTERFAZ FLIP Protocolo FLIP y su arquitectura asociada fueron diseñados para cubrir todos estos requisitos, aque vemos cinco maquinas, dos en una Ethernet y tres en un anillo de fichas. Cada maquina tiene un proceso usuario, desde A

hasta E. una de las maquinas se conecta a amas redes y funciona de manera automática como una compuerta. Las compuertas también pueden ejecutar clientes y servidores, como los demás nodos.

Toda la comunicación de bajo nivel en Amoeba se basa en las direcciones FLIP. Cada proceso tiene exactamente una dirección FLIP: un número aleatorio de 64 bits elegido por el sistema durante la creación del proceso. Si el proceso llega a emigrar, lleva su dirección FLIP con él. Si la red se configura de nuevo en cierto momento, de modo que todas las máquinas tengan nuevos números o direcciones en la red (en hardware), las direcciones FLIP permanecen sin modificación. Es el hecho de que una direeción FLIP identifica de manera única aun proceso (y no a una máquina) lo que hace la comunicación en Amoeba insensible a los cambios en la topología de la red y el direccionamiento en la misma. Una direccion FLIP es en realidad dos direcciones, una publica y otra privada, relacionadas por Direccion-publica=DES(Direccion privada) donde DES son las siglas en ingles del estandar para el ciframiento de datos.

RESUMEN Amoeba es un nuevo sistema operativo diseñado para hacer que una colección de computadoras independientes aparezca ante sus usuarios como un sistema de tiempo compartido. En general, los usuarios no están 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 desempeño. Sin embargo, los usuarios explícitamente interesados en la programación paralela pueden explotar la existencia de varios CPU mediante la subdivisión de un solo trabajo en varias máquinas. Amoeba se basa en un micronúcleo que controla los procesos de bajo nivel, la administración de la memoria, la comunicación y la E/S. El sistema de archivos y el resto del sistema operativo se pueden ejecutar como procesos usuario. Esta división del trabajo mantiene el núcleo pequeño 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 verificación, la cual garantiza la seguridad de la posibilidad. Se soportan tres mecanismos de comunicación: RPC y FLIP simple para la comunicación puntual y la comunicación confiable en grupo para la comunicación entre varias partes. La RPC garantiza una semántica "al menos una vez". La comunicación en grupo se basa en la transmisión confiable proporcionada por el algoritmo del secuenciador. Ambos mecanismos Se soportan sobre el protocolo FLIP y están fuertemente integrados. El FLIP simple sólo se utiliza en circunstancias especiales. El sistema de archivos de Amoeba consta de tres servidores: el servidor de archivos para el almacenamiento de éstos, el servidor de directorios para otorgar nombres y el servidor de replicas para la réplica de archivos. El

servidor de archivos mantiene archivos inmutables que se almacenan en bloques adyacentes, en el disco y en el caché. El Servidor de directorios es un servidor tolerante de fallas que asocia cadenas en ASCII con las posibilidades. El servidor de réplicas controla la replica retrasada. Comparativo( Ventajas-Desventajas) La estrategia de Amoeba es la pila de procesadores y Sprite sigue el modelo de estaciones de trabajo. Eso ha influenciado significativamente la estructura de los núcleos y la asignación de procesos. Amoeba cuenta con un micro núcleo y Sprite con un núcleo monolítico. Los procesos en Amoeba son automáticamente distribuidos entre los procesadores de la pila de procesadores. En Sprite cuando se ejecuta un proceso, este se ejecuta en la estación de trabajo donde se inicio, el usuario tiene prioridad sobre sus recursos. A pesar de que Sprite y Amoeba han seguido estrategias completamente opuestas, es posible acercarlos, debido a sus posibilidades de configuración. Sprite puede correr una estación de trabajo con una pila de procesadores con desempeño semejante a Amoeba. La pila de procesadores de Amoeba no tiene que ser necesariamente una unidad, un conjunto de computadoras pueden formar parte de la pila de procesadores En términos de transparencia, Amoeba ofrece más que Sprite. Amoeba es transparente en la localización mediante su sistema de archivos, la asignación de procesos a procesadores y la replicación lograda a través de su servidor de directorio. Sprite ofrece la transparencia de localización con su sistema compartido de archivos, igualmente es transparente en su mecanismo de migración de procesos. Un sistema operativo híbrido, sería una opción más realista y tomaría las ventajas de ambas estrategias. Aunque seguramente esto conllevaría una perdida en desempeño. El equipo de diseño de Sprite, eligió la estrategia que le permitió mayor compatibilidad con aplicaciones de UNIX,

logrando que se ejecuten sobre su entorno un gran número de aplicaciones, pero esto deterioró y limitó su funcionalidad. En Amoeba se apostó por crear un nuevo enfoque, que les ha permitido, construir un sistema operativo más transparente y con una personalidad distribuida. VENTAJAS-DESVENTAJAS Ameba es un completo y novedoso sistema operativo distribuido construido como una colección de userlevel servidores soportados por el micronúcleo. Mach y Chorus son principalmente diseños micronúcleo orientados a la emulación de sistemas operativos existentes, en particular UNIX, en un sistema distribuido. Mach, Chorus y Amoeba tienen en común muchos objetivos generales, incluyendo el soporte de red transparencia, gestión de los recursos encapsulados y a nivel de usuario los servidores. En Mach y Chorus, algunos objetos son administrados por el kernel y otros de nivel de usuario, mientras que todos los servidores objetos Amoeba se realiza fuera del kernel. Chorus permite que el usuario de servidores de nivel de carga de manera dinámica en el espacio de direcciones del núcleo. Mach, Chorus y Amoeba separadas todas las abstracciones de procesos y subprocesos. Mach y Chorus puede tomar ventaja de un multiprocesador. La interfaz Amoeba de kernel es muy simple, debido a su sencillo modelo de comunicación y la falta de apoyo para la memoria virtual. El kernel de Mach Chorus ofrecen muchas más llamadas debido a sus modelos más complejos de comunicación y el deseo de emular UNIX. Nombres y protección de los recursos: recursos protegidos están nombrados y en sus capacidades en Amoeba y Chorus y por los puertos de Mach. Recursos identificados en sus capacidades en Amoeba y Chorus se accede mediante el envío de un mensaje al puerto apropiado del servidor y el servidor accede a los recursos identificados en la capacidad. En Mach, los servidores generalmente gestionan muchos puertos, uno para cada recurso. Se accede a los recursos mediante el envío de mensajes a los puertos correspondientes. Capacidades que por sí mismas no son adecuadas

para la realización de las especie de identidad control de acceso basado en sistemas de archivos UNIX. El kernel de Chorus proporciona protección para identificadores userlevel para habilitar servicios para autenticar el actor que ha enviado un mensaje y el puerto utilizado por ese actor. Los puertos Mach tienen la capacidad de conferir derechos de envió y recepcion sobre el proceso que poseen. Sin embargo, a diferencia de la Amoeba y Chorus los identificadores de puertos , los cuales pueden ser libremente construidas y manipulado a nivel de usuario, los derechos de los puertos Mach se almacenan en el interior del núcleo y son protegidos por la misma, permitiendo un rápido acceso. Pero el kernel Mach tiene el gasto adicional de procesamiento de los derechos de los puertos de mensajes. PREGUNTAS A) Menciona las cuatro funciones del Micronucleo Amoeba 1. 2. 3. 4.

Controlar hilos y procesos Proporciona soporte a la administración de memoria de bajo nivel Soporta la comunicación Controla E/S de bajo nivel

B) Cuales son las dos formas de comunicación soportadas en Amoeba RPC y Comunicacion en grupo

C) Que significa FLIP Fast local internet protocol