N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
N´ucleos monol´ıticos
Organizaci´on modular
Organizaciones estratificadas o por capas
N´ucleos extensibles o micron´ucleos
...
Próxima SlideShare
Cargando en…5
×

Sistema operativos

408 visualizaciones

Publicado el

ArquitecturasdeSistemasOperativos

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
408
En SlideShare
0
De insertados
0
Número de insertados
74
Acciones
Compartido
0
Descargas
11
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Sistema operativos

  1. 1. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Arquitecturas de Sistemas Operativos Tema 2. Arquitecturas de Sistemas Operativos
  2. 2. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa ´Indice 1 N´ucleos monol´ıticos 2 Organizaci´on modular 3 Organizaciones estratificadas o por capas 4 N´ucleos extensibles o micron´ucleos Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach 5 Sistemas operativos para sistemas distribuidos Arquitecturas de Sistemas Operativos
  3. 3. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa N´ucleos monol´ıticos Todo el software y las estructuras de datos est´an ubicados en un ´unico m´odulo l´ogico, sin interfaces expl´ıcitas entre las partes del SO Pr´acticamente, no hay ocultaci´on de la informaci´on: 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´as sencilla para SSOO peque˜nos Inconvenientes: son dif´ıciles de mantener y de comprender Arquitecturas de Sistemas Operativos
  4. 4. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa N´ucleos monol´ıticos Ejemplos: MS-DOS y UNIX Es importante observar que monol´ıtico = software no estructurado Posible organizaci´on: 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 Main procedure Service procedures Utility procedures Arquitecturas de Sistemas Operativos
  5. 5. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Organizaci´on modular La funcionalidad se encuentra dividida entre componentes l´ogicos independientes con interfaces bien definidas Un SO modular se implementa mediante diversos m´odulos de programa y/o procesos Ventajas: f´aciles de mantener y modificar debido a la encapsulaci´on funcional y a la abstracci´on de datos Inconveniente: potencial degradaci´on del rendimiento Ejemplo: Choices, Linux (?),. . . Arquitecturas de Sistemas Operativos
  6. 6. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Choices: un SO orientado a objetos (1987) SO de investigaci´on, experimental, construido con un lenguaje y un dise˜no orientados a objetos Objetivos: poder experimentar con diversas aproximaciones mediante el prototipado r´apido y poder transportar f´acilmente el sistema a nuevas m´aquinas Organizaci´on: Cualquier elemento del SO es un objeto Las clases base representan a los m´odulos 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´ericas entre las clases base Arquitecturas de Sistemas Operativos
  7. 7. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Choices: un SO orientado a objetos Con esta organizaci´on, cuando Choices se implementa en una nueva plataforma hardware: las funciones de los m´odulos, las interfaces y las interacciones est´an ya definidas la implementaci´on de un m´odulo se hereda desde la clase base y despu´es se refina para realizar la implementaci´on sobre un hardware concreto Programaci´on orientada a objetos (C++) a nivel de S.O. Arquitecturas de Sistemas Operativos
  8. 8. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Choices: submarco del gestor de memoria Arquitecturas de Sistemas Operativos
  9. 9. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Organizaciones estratificadas o por capas La funcionalidad se divide en una jerarqu´ıa de m´aquinas abstractas donde las funciones de la capa i est´an implementadas mediante las funciones proporcionadas por la capa i − 1 Problema: cantidad, orden y contenido de las capas Ventajas: Modularidad Ocultaci´on de la informaci´on Verificaci´on capa a capa Si todas las capas del SO en modo n´ucleo ⇒ ¿SO monol´ıtico? Ejemplo: THE, Venus, Windows Server (?), . . . Arquitecturas de Sistemas Operativos
  10. 10. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Organizaciones estratificadas o por capas Estructura estratificada de THE Nivel 5 Programas de usuario Nivel 4 Gesti´on de E/S Nivel 3 Consola del Operador Nivel 2 Gesti´on de memoria Nivel 1 Planificaci´on de la CPU y sincronizaci´on Nivel 0 Hardware Arquitecturas de Sistemas Operativos
  11. 11. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Estructura de Windows NT POSIX program POSIX subsystem Win32 program Win32 subsystem OS/2 program OS/2 subsystem Service process System interface (NT DLL.DLL) System services Hardware Hardware Abstraction layer (HAL) Kernel File sys I/O mgr Object mgr Process mgr Memory mgr Security mgr Cache mgr PnP mgr Power mgr Config mgr LPC mgr Win32 GDI Video driverD KernelmodeUsermode Arquitecturas de Sistemas Operativos
  12. 12. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Estructura de Windows 2003 Arquitecturas de Sistemas Operativos
  13. 13. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach N´ucleos extensibles o micron´ucleos Organizaci´on modular especializada pensada para sistemas de tiempo real, de tiempo compartido, multimedia, etc. Un micron´ucleo es un peque˜no n´ucleo del SO que proporciona las bases para ampliaciones modulares La idea: s´olo las funciones absolutamente esenciales del n´ucleo del SO deben permanecer en el micron´ucleo Las aplicaciones y los servicios menos esenciales se construyen sobre el micron´ucleo y se ejecutan en modo usuario. Por ejemplo: manejadores de dispositivo, sistemas de ficheros, gestores de memoria virtual, etc. El micron´ucleo es el nexo de uni´on de los elementos que se ejecutan en el modo de usuario Arquitecturas de Sistemas Operativos
  14. 14. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach N´ucleos extensibles o micron´ucleos En una arquitectura micron´ucleo podemos distinguir tipos de m´odulos: m´odulos troncales, independientes de cualquier pol´ıtica m´odulos espec´ıficos, depedientes de cierta pol´ıtica Los m´odulos troncales implementan el micron´ucleo: No proporcionan una funcionalidad completa de SO Crean un entorno de trabajo fiable de prop´osito general sobre el que se asientan los m´odulos dependientes de la pol´ıtica Proporcionan una m´aquina virtual de bajo nivel con una gesti´on b´asica de procesos, memoria y dispositivos Los m´odulos espec´ıficos: definen el comportamiento final del SO complementan al micron´ucleo creando un SO completo se suelen implementar mediante procesos servidores Arquitecturas de Sistemas Operativos
  15. 15. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Ventajas de una organizaci´on micron´ucleo 1 Uniformidad de interfaces: los procesos solicitan cualquier servicio enviando un mensaje 2 Extensibilidad: es f´acil a˜nadir nuevos servicios 3 Flexibilidad: el producto final es totalmente configurable 4 Transportabilidad: basta con cambiar algunas partes del micron´ucleo 5 Fiabilidad: un peque˜no micron´ucleo puede probarse de un modo muy riguroso 6 Soporte para sistemas distribuidos: los mensajes se pueden enviar entre procesos locales y remotos 7 Soporte para SSOO orientados a objetos: mediante alg´un modelo de componentes Arquitecturas de Sistemas Operativos
  16. 16. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Rendimiento de los micron´ucleos El rendimiento es el caballo de batalla Caracter´ısticas de la 1a generaci´on (Mach, Chorus,. . . ) IPC lento respecto a las llamadas al sistema Gran n´umero de cambios de modo usuario/n´ucleo y de espacios de direcciones Micron´ucleos grandes (≈ 300 KB): muchos servicios dentro del n´ucleo Interfaces complejas (≈ 140 llamadas al sistema) Caracter´ısticas de la 2a generaci´on (L4, exokernels,. . . ) IPC muy r´apido, tanto o m´as que una llamada al sistema Micron´ucleos peque˜nos (≈ 12 KB) Interfaces peque˜nas (≈ 7 llamadas al sistema) Arquitecturas de Sistemas Operativos
  17. 17. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Dise˜no de micron´ucleos Un micron´ucleo debe incluir aquellas funciones b´asicas que dependen directamente del hardware y que dan soporte a las aplicaciones y los servidores: gesti´on de procesos y de memoria de bajo nivel, IPC y gesti´on de interrupciones y E/S Gesti´on de procesos Micron´ucleo: cambio de contexto Servidor: algoritmo de planificaci´on Gesti´on de la memoria de bajo nivel Micron´ucleo: trata los fallos de p´agina (parcialmente) y establece las asociaciones p´agina–marco Servidor: algoritmo de reemplazo de p´aginas y pol´ıtica de protecci´on/compartici´on de los espacios de direcciones Arquitecturas de Sistemas Operativos
  18. 18. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Dise˜no de micron´ucleos Comunicaci´on entre procesos Micron´ucleo: gesti´on de mensajes, puertos y capacidades Servidor: mensajes entre sistemas remotos Gesti´on de interrupciones y E/S Micron´ucleo: 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); Arquitecturas de Sistemas Operativos
  19. 19. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Tipos de micron´ucleos Los n´ucleos extensibles o micron´ucleos los podemos clasificar, a grandes rasgos, en 3 tipos: m´aquinas virtuales exokernels modelos cliente-servidor Se diferencian, principalmente, en los servicios proporcionados por el micron´ucleo Arquitecturas de Sistemas Operativos
  20. 20. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach M´aquinas virtuales El monitor de m´aquina virtual (el micron´ucleo) se ejecuta sobre el HW directamente, realiza la multiprogramaci´on y proporciona varias m´aquinas virtuales a la capa superior El SO no a˜nade funcionalidad nueva Las m´aquinas virtuales son copias exactas del HW Es posible ejecutar varios SSOO a la vez Ejemplo: VM/370 de IBM con CMS (ojo: a˜nos 70) I/O instructions here Trap here Trap here System calls here Virtual 370s CMS CMS CMS VM/370 370 Bare hardware Arquitecturas de Sistemas Operativos
  21. 21. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach M´aquinas virtuales Ejemplo: el modo 8086 virtual de los procesadores 386 En este modo, el procesador act´ua 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´aquina virtual Dos variantes (seg´un qui´en trate la llamada al sistema): 1 MS-DOS (u otro SO) se ejecuta en el 8086 virtual y las llamadas al sistema se rebotan al SO 2 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´on Otros ejemplos: VMWARE, VirtualBox, JVM, QEMU, . . . Arquitecturas de Sistemas Operativos
  22. 22. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Exokernels Presentan una copia exacta de la m´aquina real pero con un subconjunto de los recursos de la misma Caracter´ısticas de un exokernel: Se ejecuta en la capa m´as baja, en modo n´ucleo Asigna recursos a las m´aquinas virtuales, las cuales son conscientes de qu´e recursos se les han asignado Controla los intentos de uso de los recursos, evitando interferencias entre las m´aquinas virtuales Cada m´aquina virtual puede ejecutar su propio SO, que estar´a limitado a los recursos asignados Son m´as r´apidos al eliminar un nivel de traducci´on o correspondencia (no hay discos duros virtuales, etc.) Tambi´en separa la multiprogramaci´on (en el exokernel) y el c´odigo del SO del usuario (en el espacio de usuario) Arquitecturas de Sistemas Operativos
  23. 23. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Modelos cliente-servidor No simulan una m´aquina Tratan de subir c´odigo del SO a capas superiores (en espacio de usuario) dejando un micron´ucleo m´ınimo Dos tipos de procesos: proceso cliente (solicita un servicio) y proceso servidor (proporciona un servicio) El n´ucleo maneja la comunicaci´on entre clientes y servidores, la cual se realiza, habitualmente, intercambiando mensajes: Client process Client process Process server Terminal server File server Memory server Microkernel User mode Kernel mode Client obtains service by sending messages to server processes Arquitecturas de Sistemas Operativos
  24. 24. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach Modelos cliente-servidor Al dividir el SO en partes (servidores), ´este es m´as f´acil de implementar, depurar y extender Los servidores se ejecutan en espacio de usuario ⇒ el fallo de un servidor no tiene por qu´e afectar a todo el sistema Problema: algunos servidores necesitan acceder al hardware. Dos soluciones: Algunos servidores dentro del n´ucleo Mensajes especiales que el kernel reconoce y trata El modelo cliente-servidor es f´acilmente adaptable a sistemas distribuidos (Mach, Chorus, etc.): Machine 1 Machine 2 Machine 3 Machine 4 Client Kernel File server Kernel Process server Kernel Terminal server Kernel Message from client to server Network Arquitecturas de Sistemas Operativos
  25. 25. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (1986) Objetivos: Carnegie Mellon University investigaci´on en organizaciones de SSOO que soporten de forma eficiente el paso de mensajes ⇒ ´Util para entornos distribuidos investigaci´on en nuevos dise˜nos de memoria virtual para espacios de direcciones grandes y dispersos investigaci´on sobre hilos soporte de comunicaciones seguras y transparencia de red exploraci´on de las implicaciones pr´acticas de la implementaci´on de sistemas con un n´ucleo extensible compatibilidad con la versi´on 4.3 de UNIX BSD Ojo: 1986 (¿qu´e habr´a hecho que no triunfen?) Base de los n´ucleos m´as modernos L4 Arquitecturas de Sistemas Operativos
  26. 26. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach El micron´ucleo de Mach proporciona mecanismos para la gesti´on de procesos, memoria y dispositivos Puede crearse un SO definiendo un servidor que use el micron´ucleo para implementar la interfaz deseada de SO El servidor de SO implementa el gestor de ficheros y varios m´odulos de pol´ıtica para los mecanismos implementados en el micron´ucleo Arquitecturas de Sistemas Operativos
  27. 27. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (gesti´on de procesos) Mach soporta tareas (procesos) e hilos. Los hilos son entidades del n´ucleo que operan dentro de una tarea El gestor de procesos de Mach proporciona dos niveles de primitivas: uno para la gesti´on de tareas y otro para la gesti´on de hilos. La planificaci´on 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´olo se pueden ejecutar en una CPU ⇒ Puede haber procesadores que posean una cola local de planificaci´on Arquitecturas de Sistemas Operativos
  28. 28. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas 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 ´unico punto de entrada (para escritura) y un ´unico 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´es de la red, cada m´aquina 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 Arquitecturas de Sistemas Operativos
  29. 29. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Caracter´ısticas de los micron´ucleos M´aquinas virtuales Exokernels Modelos cliente-servidor El sistema operativo Mach El Sistema Operativo Mach (gesti´on de memoria) En Mach, la gesti´on 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´ucleo El gestor de memoria implementa la pol´ıtica de reemplazo de p´aginas y controla la posici´on de las p´aginas en disco El manejador de fallos se ejecuta cuando se produce un fallo de p´agina y su funci´on es la de resolver el fallo haciendo uso de los servicios proporcionados por el gestor de memoria La unidad de gesti´on de memoria en Mach es el objeto de memoria y puede ser: una p´agina, un conjunto de p´aginas, 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 Arquitecturas de Sistemas Operativos
  30. 30. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos 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´on 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´on entre procesos: transferencia de ficheros, interconexi´on de terminales, sistemas de ficheros remotos, IPC, RPC, . . . Ejemplos de SSOO de red: cualquier versi´on actual de UNIX, Linux y Windows Server Arquitecturas de Sistemas Operativos
  31. 31. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos 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´on entre procesos Nominaci´on y protecci´on de procesos de forma global Gesti´on global de los recursos en la red (planificaci´on, balanceo de carga, . . . ) Tolerancia a fallos Servicios proporcionados (ejecuci´on remota, servidores de ficheros y de impresi´on, . . . ) En un SOD un proceso percibe el entorno de c´omputo como un ´unico sistema en lugar de como un conjunto de computadores individuales Ejemplos: Mach y CHORUS Arquitecturas de Sistemas Operativos
  32. 32. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa El sistema operativo CHORUS (1988) El micron´ucleo proporciona actores (procesos), hilos, IPC basado en mensajes y puertos, identificadores globales ´unicos y regiones (bloques peque˜nos de dirs. contiguas de memoria). El micron´ucleo tambi´en proporciona subsistemas para alojar servidores que implementan pol´ıticas de SO concretas (UNIX, COOL, RT-OS, etc.) El micron´ucleo en s´ı est´a modularizado sobre: un supervisor, dependiente de la m´aquina, que gestiona interrupciones y traps un gestor de procesos, independiente de la m´aquina 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´es del mecanismo de mensajes Arquitecturas de Sistemas Operativos
  33. 33. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos 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 ´unicos (UI) implementan la transparencia de ubicaci´on para los puertos. Cada puerto es referenciado mediante una habilitaci´on y cada habilitaci´on contiene un UI que identifica al puerto El gestor de IPC es responsable de traducir los UIs adecuadamente CHORUS permite la multidifusi´on de mensajes: es posible enviar un mismo mensaje a varios puertos a la vez Los mensajes son simples flujos de bytes Arquitecturas de Sistemas Operativos
  34. 34. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa El sistema operativo CHORUS La gesti´on de la memoria de CHORUS se basa en segmentos Un segmento es un bloque l´ogico de informaci´on (fichero, ´area de intercambio, . . . ) que se correlaciona con una regi´on en el espacio de direcciones de un actor La correlaci´on ((segmento–region)) la establece el servidor de segmentos o mapeador del subsistema en ejecuci´on La correlaci´on ((regi´on–marcos de p´agina)) la establece el gestor de memoria del micron´ucleo En un fallo de p´agina: supervisor ⇒ gestor de memoria ⇒ mapeador (que obtiene la p´agina desde una posici´on arbitraria seg´un su pol´ıtica) Arquitecturas de Sistemas Operativos
  35. 35. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos Sistemas operativos para sistemas distribuidos Bibliograf´ıa Bibliograf´ıa Gary Nutt. ((Sistemas Operativos)), 3a edici´on, cap´ıtulo 19. Addison Wesley, 2004 Andrew Tanenbaum. ((Sistemas Operativos Modernos)), 2a edici´on, cap´ıtulo 1. Prentice Hall, 2003 William Stallings. ((Sistemas Operativos)), 4a edici´on, cap´ıtulo 4. Prentice Hall, 2001 Arquitecturas de Sistemas Operativos
  36. 36. N´ucleos monol´ıticos Organizaci´on modular Organizaciones estratificadas o por capas N´ucleos extensibles o micron´ucleos 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´on, cap´ıtulo 3. Addison Wesley Longman, 1999 Arquitecturas de Sistemas Operativos

×