La ameba SISTEMA OPERATIVO DISTRIBUIDO UN INFORME DE ESTADO DE
Enviado por karlo • 5 de Febrero de 2018 • 10.351 Palabras (42 Páginas) • 705 Visitas
...
Otro componente importante de la ameba configuración consta de servidores especializados, tales como servidores de archivo, que por razones de hardware o software necesario para que se ejecute en un procesador separado. Por último, tenemos el gateway, qué interfaces de red de área amplia- trabaja y aísla ameba de los protocolos y la idiosincrasia de la red de área amplia- funciona de manera transparente.
3. La ameba micronúcleo ahora llegamos a la estructura de la ameba software. El software consta de dos partes básicas: un micronúcleo, que se ejecuta en cada procesador, y una colección de servidores que proporcionan la mayor parte de la funcionalidad del sistema operativo tradicional. En esta sec- ción nos describirá el micronúcleo. En la siguiente vamos a describir algunos de los servidores.
La ameba micronúcleo se ejecuta en todos los equipos del sistema. Tiene cuatro funciones principales:
1. Administrar procesos y subprocesos dentro de estos procesos.
2. Bajo nivel de apoyo a la gestión de la memoria.
3. Apoyar la comunicación transparente entre subprocesos arbitrarios.
4. Asa I/O.
Examinemos cada uno de estos temas.
Como la mayoría de sistemas operativos, Ameba apoya el concepto de un proceso.
- 4-
además, Ameba también soporta múltiples hilos de control, o simplemente las roscas para cortos, dentro de un único espacio de direcciones. Un proceso con un subproceso es esencialmente el mismo como un pro- ceso en UNIX.† tal proceso tiene un único espacio de direcciones, un conjunto de registros, el contador de programa y una pila. Las roscas se ilustra en la Fig. 2.
Proceso 1 Proceso 2
roscas de espacio de usuario Kernel Threads micronúcleo espacio
Fig. 2. Roscas en amebas.
En contraste, aunque un proceso con múltiples subprocesos todavía tiene un único espacio de direcciones compartido por todos los subprocesos, cada subproceso lógicamente tiene sus propios registros, su propio contador de programa y su propia pila. En efecto, un conjunto de subprocesos en un proceso que es similar a una colección de procesos independientes en UNIX, con la única excepción de que todos comparten un único espacio de direcciones común.
Un uso típico de varios subprocesos puede estar en un servidor de archivos, en la cual cada incom- ing solicitud es asignada a un subproceso independiente para trabajar. Ese subproceso podría comenzar proceso- ing la petición, luego bloquee esperando el disco y, a continuación, continuar el trabajo. Dividiendo el servidor en varios subprocesos, cada subproceso puede ser puramente secuenciales, incluso si tiene que bloquear esperando I/O. No obstante, todos los subprocesos pueden tener acceso a un único caché de software compartido. Puede sincronizar subprocesos utilizando semáforos y semáforos para evitar que dos threads accedan a la caché compartida simultáneamente.
Las roscas están administradas y programadas por el micronúcleo, así que ellos no son tan ligeros de peso como puro roscas en el espacio de usuario. No obstante, conmutación de rosca todavía es rea- sonably rápido. El principal argumento para hacer las roscas conocido para el kernel en lugar de ser puros conceptos de usuario se refiere a nuestro deseo de que la comunicación sea synchro- nous (es decir, el bloqueo). En un sistema en el que el kernel no sabe nada acerca de roscas cuando un subproceso realiza lo que lógicamente es un sistema de bloqueo de llamada, el kernel debe, sin embargo, devolver el control inmediatamente a la persona que llama, para dar el espacio de usuario paquete threads la oportunidad de suspender el subproceso de llamada y programar un subproceso diferente. Así, una llamada de sistema que es, lógicamente, el bloqueo debe devolver el control a la llamada "bloqueados" para que las roscas paquete reprogramar la CPU. Tener el kernel sea consciente de subprocesos elimina la necesidad de incómodas tales mecanismos.
† UNIX es una marca registrada de AT&T Bell Laboratories.
- 5 -
La segunda tarea del micronúcleo es proporcionar a la administración de memoria de bajo nivel.
Las roscas pueden asignar y desasignar bloques de memoria, denominadas segmentos . Estos segmentos se pueden leer y escribir, y puede asignarse dentro y fuera del espacio de direcciones del proceso al que pertenece el subproceso de llamada. Para proporcionar el máximo rendimiento de las comunicaciones, todos los segmentos están residente en la memoria.
El tercer trabajo de el micronúcleo es proporcionar la capacidad para una rosca para comu- cate transparentemente con otro subproceso, independientemente de la naturaleza o la ubicación de los dos subprocesos. El modelo utilizado aquí es una llamada a procedimiento remoto (RPC) entre un cliente y un servidor (Birrell y Nelson, 1984). Conceptualmente, el inicio de la rosca, llamado el cliente , llama a un procedimiento de biblioteca que se ejecuta en el servidor . Este mecanismo está implementado como fol- bajos. El cliente, en realidad, llama a un procedimiento de biblioteca local conocido como el ramal de cliente que recopila los parámetros del procedimiento, construye un encabezado y un tampón, y ejecuta un núcleo primitivo para realizar una RPC. En este punto, el subproceso está bloqueado. El núcleo entonces envía el encabezado y búfer a través de la red a la máquina de destino, donde es recibida por el kernel. El núcleo entonces pasa el cabezal y buffer a un servidor stub, que ya ha anunciado su disposición a recibir mensajes dirigidos a él. El código auxiliar de servidor, a continuación, llama al procedimiento del servidor, que es la que realiza el trabajo solicitado.
El mensaje de respuesta sigue la ruta inversa de vuelta al cliente. Cuando llegue, el cal- ling subproceso es dado el mensaje de respuesta y se desbloquea. El mecanismo RPC es ilus- tra en la Fig. 3.
Máquina cliente servidor
cliente servidor Stub
micronúcleo Microkernel Stub
Network
Fig. 3. Llamada a procedimiento remoto.
Todas
...