Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Tema 2. Arquitecturas de Sistemas Operativos Juan Piernas Cánovas Departamento de Ingenierı́a y Tecnologı́a de Computadores Universidad de Murcia Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Índice 1 Núcleos monolı́ticos 2 Organización modular 3 Organizaciones estratificadas o por capas 4 Núcleos extensibles o micronúcleos Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach 5 Sistemas operativos para sistemas distribuidos Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Núcleos monolı́ticos Todo el software y las estructuras de datos están ubicados en un único módulo lógico, sin interfaces explı́citas entre las partes del SO Prácticamente, no hay ocultación de la información: cualquier procedimiento puede ver a cualquier otro y acceder a cualquier estructura de datos Se utilizan porque: es difı́cil particionar un SO debido a las muchas interrelaciones entre las partes suelen ser muy eficientes cuando son correctamente implementados tal vez sea la estructura más sencilla para SSOO pequeños Inconvenientes: son difı́ciles de mantener y de comprender Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Núcleos monolı́ticos Ejemplos: MS-DOS y UNIX Es importante observar que monolı́tico 6= software no estructurado Posible organización: Proc. principal: atiende las llamadas al sistema en 1a instancia Proc. de servicio: ejecutan la llamada al sistema Proc. auxiliares: apoyan a los proc. de servicio Juan Piernas Cánovas Main procedure Service procedures Utility procedures Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Organización modular La funcionalidad se encuentra dividida entre componentes lógicos independientes con interfaces bien definidas Un SO modular se implementa mediante diversos módulos de programa y/o procesos Ventajas: fáciles de mantener y modificar debido a la encapsulación funcional y a la abstracción de datos Inconveniente: potencial degradación del rendimiento Ejemplo: Choices, Linux (?),. . . Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Choices: un SO orientado a objetos (1987) SO de investigación, experimental, construido con un lenguaje y un diseño orientados a objetos Objetivos: poder experimentar con diversas aproximaciones mediante el prototipado rápido y poder transportar fácilmente el sistema a nuevas máquinas Organización: Cualquier elemento del SO es un objeto Las clases base representan a los módulos del SO La estructura del SO se captura en una jerarquı́a de frameworks (marcos) de objetos: Un marco describe un conjunto de submarcos que se emplean como clases base Un marco define las interacciones y relaciones genéricas entre las clases base Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Choices: un SO orientado a objetos Con esta organización, cuando Choices se implementa en una nueva plataforma hardware: las funciones de los módulos, las interfaces y las interacciones están ya definidas la implementación de un módulo se hereda desde la clase base y después se refina para realizar la implementación sobre un hardware concreto Programación orientada a objetos (C++) a nivel de S.O. Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Choices: submarco del gestor de memoria Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Organizaciones estratificadas o por capas La funcionalidad se divide en una jerarquı́a de máquinas abstractas donde las funciones de la capa i están implementadas mediante las funciones proporcionadas por la capa i − 1 Problema: cantidad, orden y contenido de las capas Ventajas: Modularidad Ocultación de la información Verificación capa a capa Si todas las capas del SO en modo núcleo ⇒ ¿SO monolı́tico? Ejemplo: THE, Venus, Windows Server (?), . . . Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Organizaciones estratificadas o por capas Estructura estratificada de THE Nivel Nivel Nivel Nivel Nivel Nivel 5 4 3 2 1 0 Programas de usuario Gestión de E/S Consola del Operador Gestión de memoria Planificación de la CPU y sincronización Hardware Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Service process POSIX program Win32 program OS/2 program POSIX subsystem Win32 subsystem OS/2 subsystem User mode Estructura de Windows NT System interface (NT DLL.DLL) I/O mgr File sys D Object Process Memory Security Cache mgr mgr mgr mgr mgr PnP mgr Power Config mgr mgr LPC mgr Win32 GDI Video driver Kernel Hardware Abstraction layer (HAL) Hardware Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Kernel mode System services Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Estructura de Windows 2003 Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Núcleos extensibles o micronúcleos Organización modular especializada pensada para sistemas de tiempo real, de tiempo compartido, multimedia, etc. Un micronúcleo es un pequeño núcleo del SO que proporciona las bases para ampliaciones modulares La idea: sólo las funciones absolutamente esenciales del núcleo del SO deben permanecer en el micronúcleo Las aplicaciones y los servicios menos esenciales se construyen sobre el micronúcleo y se ejecutan en modo usuario. Por ejemplo: manejadores de dispositivo, sistemas de ficheros, gestores de memoria virtual, etc. El micronúcleo es el nexo de unión de los elementos que se ejecutan en el modo de usuario Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Núcleos extensibles o micronúcleos En una arquitectura micronúcleo podemos distinguir tipos de módulos: módulos troncales, independientes de cualquier polı́tica módulos especı́ficos, depedientes de cierta polı́tica Los módulos troncales implementan el micronúcleo: No proporcionan una funcionalidad completa de SO Crean un entorno de trabajo fiable de propósito general sobre el que se asientan los módulos dependientes de la polı́tica Proporcionan una máquina virtual de bajo nivel con una gestión básica de procesos, memoria y dispositivos Los módulos especı́ficos: definen el comportamiento final del SO complementan al micronúcleo creando un SO completo se suelen implementar mediante procesos servidores Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Ventajas de una organización micronúcleo 1 2 3 4 5 6 7 Uniformidad de interfaces: los procesos solicitan cualquier servicio enviando un mensaje Extensibilidad: es fácil añadir nuevos servicios Flexibilidad: el producto final es totalmente configurable Transportabilidad: basta con cambiar algunas partes del micronúcleo Fiabilidad: un pequeño micronúcleo puede probarse de un modo muy riguroso Soporte para sistemas distribuidos: los mensajes se pueden enviar entre procesos locales y remotos Soporte para SSOO orientados a objetos: mediante algún modelo de componentes Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Rendimiento de los micronúcleos El rendimiento es el caballo de batalla Caracterı́sticas de la 1a generación (Mach, Chorus,. . . ) IPC lento respecto a las llamadas al sistema Gran número de cambios de modo usuario/núcleo y de espacios de direcciones Micronúcleos grandes (≈ 300 KB): muchos servicios dentro del núcleo Interfaces complejas (≈ 140 llamadas al sistema) Caracterı́sticas de la 2a generación (L4, exokernels,. . . ) IPC muy rápido, tanto o más que una llamada al sistema Micronúcleos pequeños (≈ 12 KB) Interfaces pequeñas (≈ 7 llamadas al sistema) Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Diseño de micronúcleos Un micronúcleo debe incluir aquellas funciones básicas que dependen directamente del hardware y que dan soporte a las aplicaciones y los servidores: gestión de procesos y de memoria de bajo nivel, IPC y gestión de interrupciones y E/S Gestión de procesos Micronúcleo: cambio de contexto Servidor: algoritmo de planificación Gestión de la memoria de bajo nivel Micronúcleo: trata los fallos de página (parcialmente) y establece las asociaciones página–marco Servidor: algoritmo de reemplazo de páginas y polı́tica de protección/compartición de los espacios de direcciones Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Diseño de micronúcleos Comunicación entre procesos Micronúcleo: gestión de mensajes, puertos y capacidades Servidor: mensajes entre sistemas remotos Gestión de interrupciones y E/S Micronúcleo: convierte int. en mensajes y proyecta puertos de E/S en memoria Servidor: atiende mensajes (int.) y gestiona dispositivos Ejemplo de un hilo de manejador: do esperaPor(msg, emisor); if (emisor == mi interrupcion hardware) { leer/escribir puertos de E/S; reiniciar interrupcion hardware; } else ... while (true); Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Tipos de micronúcleos Los núcleos extensibles o micronúcleos los podemos clasificar, a grandes rasgos, en 3 tipos: máquinas virtuales exokernels modelos cliente-servidor Se diferencian, principalmente, en los servicios proporcionados por el micronúcleo Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Máquinas virtuales El monitor de máquina virtual (el micronúcleo) se ejecuta sobre el HW directamente, realiza la multiprogramación y proporciona varias máquinas virtuales a la capa superior El SO no añade funcionalidad nueva Las máquinas virtuales son copias exactas del HW Es posible ejecutar varios SSOO a la vez Ejemplo: VM/370 de IBM con CMS (ojo: años 70) Virtual 370s System calls here I/O instructions here CMS CMS CMS Trap here VM/370 Trap here 370 Bare hardware Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Máquinas virtuales Ejemplo: el modo 8086 virtual de los procesadores 386 En este modo, el procesador actúa como un 8086 Instrucciones normales: se ejecutan en el HW directamente Interrupciones y operaciones protegidas de E/S: salto (trap) al monitor de la máquina virtual Dos variantes (según quién trate la llamada al sistema): 1 2 MS-DOS (u otro SO) se ejecuta en el 8086 virtual y las llamadas al sistema se rebotan al SO El monitor atiende las llamadas al sistema (necesario un monitor especı́fico) En cualquier caso, la E/S siempre la atiende el monitor haciendo uso del SO anfitrión Otros ejemplos: VMWARE, VirtualBox, JVM, QEMU, . . . Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Exokernels Presentan una copia exacta de la máquina real pero con un subconjunto de los recursos de la misma Caracterı́sticas de un exokernel: Se ejecuta en la capa más baja, en modo núcleo Asigna recursos a las máquinas virtuales, las cuales son conscientes de qué recursos se les han asignado Controla los intentos de uso de los recursos, evitando interferencias entre las máquinas virtuales Cada máquina virtual puede ejecutar su propio SO, que estará limitado a los recursos asignados Son más rápidos al eliminar un nivel de traducción o correspondencia (no hay discos duros virtuales, etc.) También separa la multiprogramación (en el exokernel) y el código del SO del usuario (en el espacio de usuario) Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Modelos cliente-servidor No simulan una máquina Tratan de subir código del SO a capas superiores (en espacio de usuario) dejando un micronúcleo mı́nimo Dos tipos de procesos: proceso cliente (solicita un servicio) y proceso servidor (proporciona un servicio) El núcleo maneja la comunicación entre clientes y servidores, la cual se realiza, habitualmente, intercambiando mensajes: Client process Client process Process server Terminal server File server Memory server User mode Kernel mode Microkernel Client obtains service by sending messages to server processes Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Modelos cliente-servidor Al dividir el SO en partes (servidores), éste es más fácil de implementar, depurar y extender Los servidores se ejecutan en espacio de usuario ⇒ el fallo de un servidor no tiene por qué afectar a todo el sistema Problema: algunos servidores necesitan acceder al hardware. Dos soluciones: Algunos servidores dentro del núcleo Mensajes especiales que el kernel reconoce y trata El modelo cliente-servidor es fácilmente adaptable a sistemas distribuidos (Mach, Chorus, etc.): Machine 1 Machine 2 Machine 3 Machine 4 Client File server Process server Terminal server Kernel Kernel Kernel Kernel Network Message from client to server Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (1986) Objetivos: Carnegie Mellon University investigación en organizaciones de SSOO que soporten de forma eficiente el paso de mensajes ⇒ Útil para entornos distribuidos investigación en nuevos diseños de memoria virtual para espacios de direcciones grandes y dispersos investigación sobre hilos soporte de comunicaciones seguras y transparencia de red exploración de las implicaciones prácticas de la implementación de sistemas con un núcleo extensible compatibilidad con la versión 4.3 de UNIX BSD Ojo: 1986 (¿qué habrá hecho que no triunfen?) Base de los núcleos más modernos L4 Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach El micronúcleo de Mach proporciona mecanismos para la gestión de procesos, memoria y dispositivos Puede crearse un SO definiendo un servidor que use el micronúcleo para implementar la interfaz deseada de SO El servidor de SO implementa el gestor de ficheros y varios módulos de polı́tica para los mecanismos implementados en el micronúcleo Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (gestión de procesos) Mach soporta tareas (procesos) e hilos. Los hilos son entidades del núcleo que operan dentro de una tarea El gestor de procesos de Mach proporciona dos niveles de primitivas: uno para la gestión de tareas y otro para la gestión de hilos. La planificación de la CPU se hace en base a hilos Cuando hay varios procesadores, cada procesador y cada hilo se asigna a un conjunto procesador El planificador de cada conjunto procesador asigna hilos listos a los procesadores libres del conjunto El planificador es una cola multinivel con prioridades que favorece a los hilos que menos consumen CPU Hay hilos que sólo se pueden ejecutar en una CPU ⇒ Puede haber procesadores que posean una cola local de planificación Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (paso de mensajes) Mach permite comunicaciones entre procesos (IPC) mediante mensajes y puertos Un puerto es una cola de mensajes tipados asociada a un proceso. Dicha cola posee un único punto de entrada (para escritura) y un único punto de salida (para lectura) Los puertos asociados a una tarea son compartidos por todos los hilos de la tarea. Un hilo puede leer de cualquier puerto de la tarea a la que pertenece Un hilo puede escribir en uno de los puertos de cualquier otro hilo (local o remoto) siempre que tenga permiso para ello Para el envı́o de mensajes a través de la red, cada máquina posee un servidor de mensajes de red en el espacio de usuario. Conjuntamente, estos servidores permiten el intercambio de mensajes entre hilos remotos de forma transparente Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Caracterı́sticas de los micronúcleos Máquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (gestión de memoria) En Mach, la gestión de memoria se reparte entre: el gestor de memoria, que es un servidor en el esp. de usuario el manejador de fallos, que se ejecuta dentro del micronúcleo El gestor de memoria implementa la polı́tica de reemplazo de páginas y controla la posición de las páginas en disco El manejador de fallos se ejecuta cuando se produce un fallo de página y su función es la de resolver el fallo haciendo uso de los servicios proporcionados por el gestor de memoria La unidad de gestión de memoria en Mach es el objeto de memoria y puede ser: una página, un conjunto de páginas, una pila o incluso un fichero (memory-mapped) Los objetos de memoria se pueden asociar al espacio de direcciones virtuales de un proceso y se pueden transferir de un proceso a otro mediante mensajes Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Sistemas operativos para sistemas distribuidos 2 enfoques: Sistemas operativos de red, que han evolucionado desde los SSOO convencionales Sistemas operativos distribuidos, que presentan una nueva organización Principal caracterı́stica diferenciadora: la transparencia de red, aunque a veces la frontera es difusa Los sistemas operativos de red: no hay transparencia de red (o es parcial) proporcionan distintos servicios y mecanismos de comunicación entre procesos: transferencia de ficheros, interconexión de terminales, sistemas de ficheros remotos, IPC, RPC, . . . Ejemplos de SSOO de red: cualquier versión actual de UNIX, Linux y Windows Server Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Sistemas operativos para sistemas distribuidos Los elementos que diferencian a los sistemas operativos distribuidos de los de red son: Primitivas de comunicación entre procesos Nominación y protección de procesos de forma global Gestión global de los recursos en la red (planificación, balanceo de carga, . . . ) Tolerancia a fallos Servicios proporcionados (ejecución remota, servidores de ficheros y de impresión, . . . ) En un SOD un proceso percibe el entorno de cómputo como un único sistema en lugar de como un conjunto de computadores individuales Ejemplos: Mach y CHORUS Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a El sistema operativo CHORUS (1988) El micronúcleo proporciona actores (procesos), hilos, IPC basado en mensajes y puertos, identificadores globales únicos y regiones (bloques pequeños de dirs. contiguas de memoria). El micronúcleo también proporciona subsistemas para alojar servidores que implementan polı́ticas de SO concretas (UNIX, COOL, RT-OS, etc.) El micronúcleo en sı́ está modularizado sobre: un supervisor, dependiente de la máquina, que gestiona interrupciones y traps un gestor de procesos, independiente de la máquina un gestor de memoria, que controla la MMU y puede apoyarse en un servidor externo (como en Mach) un gestor de IPC, que proporciona servicios globales a través del mecanismo de mensajes Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a El sistema operativo CHORUS Un sistema CHORUS consta de un conjunto de sitios (ordenador, tarjeta de CPU en un multiprocesador, etc.) interconectados por una red (red Ethernet, bus interno, etc.) Los identificadores globales únicos (UI) implementan la transparencia de ubicación para los puertos. Cada puerto es referenciado mediante una habilitación y cada habilitación contiene un UI que identifica al puerto El gestor de IPC es responsable de traducir los UIs adecuadamente CHORUS permite la multidifusión de mensajes: es posible enviar un mismo mensaje a varios puertos a la vez Los mensajes son simples flujos de bytes Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a El sistema operativo CHORUS La gestión de la memoria de CHORUS se basa en segmentos Un segmento es un bloque lógico de información (fichero, área de intercambio, . . . ) que se correlaciona con una región en el espacio de direcciones de un actor La correlación ((segmento–region)) la establece el servidor de segmentos o mapeador del subsistema en ejecución La correlación ((región–marcos de página)) la establece el gestor de memoria del micronúcleo En un fallo de página: supervisor ⇒ gestor de memoria ⇒ mapeador (que obtiene la página desde una posición arbitraria según su polı́tica) Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Bibliografı́a Gary Nutt. ((Sistemas Operativos)), 3a edición, capı́tulo 19. Addison Wesley, 2004 Andrew Tanenbaum. ((Sistemas Operativos Modernos)), 2a edición, capı́tulo 1. Prentice Hall, 2003 William Stallings. ((Sistemas Operativos)), 4a edición, capı́tulo 4. Prentice Hall, 2001 Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos Núcleos monolı́ticos Organización modular Organizaciones estratificadas o por capas Núcleos extensibles o micronúcleos Sistemas operativos para sistemas distribuidos Bibliografı́a Bibliografı́a Jochen Liedtke. ((Toward Real Microkernels)). Communications of the ACM 39(9), pp. 70–77, 1996 Abraham Silberschatz y Peter B. Galvin. ((Sistemas Operativos)), 5a edición, capı́tulo 3. Addison Wesley Longman, 1999 Juan Piernas Cánovas Tema 2. Arquitecturas de Sistemas Operativos