Tema 2. Arquitecturas de Sistemas Operativos

Anuncio
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
Descargar