Estructura del sistema operativo
Sebastián Sánchez Prieto
1999-2003 S2P, OGP & IGT Estructura del SO 2
Introducción
En el tema anterior se dio una visión desde el punto de vista funcional del sistema operativo
¿Qué hace? En este tema lo analizaremos desde el punto de vista
estructural ¿Cómo lo hace?
Objetivo de la estructuración: Buscar una organización interna que facilite la
comprensión, incremente la portabilidad, extensión y favorezca el mantenimiento
¿Cómo abordar un programa de hasta 50 millones de líneas de código?
1999-2003 S2P, OGP & IGT Estructura del SO 3
Hardware y SSOO
El sistema operativo debe ser seguro, robusto, estable y con un alto rendimiento
El diseñador de sistemas operativos solicita al arquitecto de computadores:
Modo dual de ejecución de instrucciones Instrucciones normales e instrucciones privilegiadas
Mecanismos para pasar a modo protegido Interrupciones y llamadas al sistema
Mecanismos de protección de: Memoria (hardware de protección) Dispositivos (hardware de protección o instrucciones
privilegiadas) Procesador (Interrupciones)
1999-2003 S2P, OGP & IGT Estructura del SO 4
Mecanismo de interrupciones
El hardware salva el contador de programa Se carga un nuevo contador de programa Se salvan los registros Se cambia el valor del puntero de pila Se conmuta el proceso que estaba bloqueado al estado
de listo El planificador elige el siguiente proceso Se cede el control a un programa ensamblador que
arranca proceso elegido
1999-2003 S2P, OGP & IGT Estructura del SO 5
Niveles de interrupción
Mecanismo empleado para determinar en qué orden se atienden las interrupciones
Puede ser proporcionado por el hardware o por el software
Típicamente existen 32 niveles de nivel de prioridad de interrupción (NPI)
En UNIX se les suele conocer como Interrupt Priority Level o IPL
En W2K se les conoce como Interrupt Request Level o IRQL
1999-2003 S2P, OGP & IGT Estructura del SO 6
Diagrama de manejo de interrupciones
Interrupción
¿Nuevo NPI > actual NPI?
Crear un nuevo contextoGuardar el CP y lo flags
NPI = nuevo NPILlamada al manejador
Manejador de interrupción
¿Hay int. pendientes?
Retornar
Guardar interrupción
Desbloquear
Bloquear
No
Sí
No
Sí
1999-2003 S2P, OGP & IGT Estructura del SO 7
Niveles de interrupción en W2K
Alta
Fallo de alimentación
IPI
Reloj
Perfiles
Dispositivo n
...
Dispositivo 1
DPC/Dispatch
APC
Base0
31
Interrupciones HW
Interrupciones SW
Nivel de ejecución ordinario
1999-2003 S2P, OGP & IGT Estructura del SO 8
Enfoques de diseño
A grandes rasgos cabe considerar dos enfoques de diseño:
Enfoque monitor monolítico Enfoque micronúcleo
En el primero, toda la funcionalidad del SO se incluye se incluye en el núcleo
Ejemplo: MS-DOS, Windows XP, Linux En el segundo, parte de esa funcionalidad es llevada a
cabo por procesos de sistema que se sirven de la funcionalidad mínima proporcionada por un micronúcleo
Ejemplo: Mach, L4, Chorus
1999-2003 S2P, OGP & IGT Estructura del SO 9
Monitor monolítico
Proceso de
usuario
Proceso de
usuario
Proceso de
usuario
Intérprete de la SVC
Petición de E/S
Proceso de la
interrupción
Desbloquear
Dispositivos
Monitor
Procesos
de usuario
SVC
Despertar
Comienzo de la E/S Interrupción
1999-2003 S2P, OGP & IGT Estructura del SO 10
Micronúcleo
Proceso de
usuario
Proceso de
usuario
Proceso de
usuario
Proceso de
usuario
Proceso gestionador
de dispositivo
Micronúcleo
Proceso de la
interrupción
Determinación del proceso que solicitó
la E/S
DispositivoLectura de disco
Devolver los datos
Inicio de la E/S
Interrupción
Despertar
1999-2003 S2P, OGP & IGT Estructura del SO 11
Comparativa
Monitor monolítico Micronúcleo
Todo el SO se ejecuta en modo supervisor
Menos robusto El SO es ininterrumpible Mayor rendimiento
Empleado en sistemas pequeños
Difícil de modificar en tiempo de ejecución
Menos adaptable
Empleado en sistemas grandes
Fácil de modificar en tiempo de ejecución
Más adaptable
Menor rendimiento debido a la sobrecarga de comunicaciones
El SO es interrumpible
Más robusto
Sólo el núcleo se ejecuta en modo supervisor
1999-2003 S2P, OGP & IGT Estructura del SO 12
Diseño por capas
El diseño por capas lleva asociada una jerarquización que permite disminuir la complejidad observable de un sistema
Concepto de capa: conjunto de funciones claramente definidas hacia un objetivo común
Capa N
Capa N-1
Entidad N
Entidad N-1 Entidad N-1
Servicios
1999-2003 S2P, OGP & IGT Estructura del SO 13
Ventajas del empleo de capas
Las estructuras internas y algoritmos de una capa no son visibles a las demás
El sistema puede evolucionar fácilmente. Lo único que hay que mantener son las interfaces
Pueden existir realizaciones alternativas llevadas a cabo por diferentes grupos de trabajo
Algunas capas pueden ser transparentes si sus servicios no son necesarios
Cada capa se codifica y prueba de modo independiente. Esto es muy importante en el desarrollo del software
1999-2003 S2P, OGP & IGT Estructura del SO 14
Niveles clásicos de un SO
NIVEL 1
Nivel inferior de gestión del procesador
Objetivo: Compartir la CPU entre procesos
Funciones: Sincronización entre procesos Conmutación de la CPU Gestión de interrupciones
1999-2003 S2P, OGP & IGT Estructura del SO 15
Niveles clásicos de un SO
NIVEL 2
Gestión de memoria
Objetivo: Repartir la memoria entre procesos
Funciones: Asignación y liberación de memoria Control violación de acceso
1999-2003 S2P, OGP & IGT Estructura del SO 16
Niveles clásicos de un SO
NIVEL 3
Nivel superior de gestión de procesos
Objetivo: Gestión de procesos
Funciones: Creación y destrucción de procesos Intercambio de mensajes entre procesos Detención y arranque de procesos
1999-2003 S2P, OGP & IGT Estructura del SO 17
Niveles clásicos de un SO
NIVEL 4
Nivel de gestión de dispositivos
Objetivo: Realizar la gestión de las E/S en función de los dispositivos
existentes Funciones:
Creación de procesos de E/S Asignación y liberación de dispositivos de E/S Planificación de la E/S
1999-2003 S2P, OGP & IGT Estructura del SO 18
Niveles clásicos de un SO
NIVEL 5
Nivel de gestión de la información
Objetivo: Gestionar el espacio de nombres lógicos y la protección de
la información. Funciones:
Creación y destrucción de archivos y directorios Apertura y cierre de archivos Lectura y escritura de archivos Protección de acceso
1999-2003 S2P, OGP & IGT Estructura del SO 19
Estructura de UNIX
Bibliotecas
Buffer caché
Control hardware
Subsistema
de archivos
Subsistema
de E/S
Subsistema de
control de procesos
Carácter
Nivel kernel
Nivel hardware
Nivel kernel
Nivel de usuario
HARDWARE
Drivers
Interfaz de llamadas al sistema
Programas de usuario
Trap
Bloque
Manejo de memoria
IPC
Planificador
1999-2003 S2P, OGP & IGT Estructura del SO 20
Estructura de Mach
Manejo de hilos
Programasde usuario
Servidorde procesos
Hardware
Manejadores de dispositivo
Nivel kernel
Nivel hardware
Nivel kernel
Nivel de usuario
Servidorde memoria
Servidorde archivos
Servidorde gráficos
1999-2003 S2P, OGP & IGT Estructura del SO 21
Estructura de Linux
Validación de argumentos de las llamadas al sistema
Conmutador de sistemas de archivo
Bib
liote
cas
del
ker
nel
Manejador dememoria
Manejador deprocesos
Manejador de interrupciones
Manejadores de dispositivo
Estructuras dedatos compartidas
entre el alto y el bajo nivel
Interfaz de llamadas de alto nivel
HARDWARE
Bajo niveldel núcleoManejador de traps de llamadas al sistema
Manejador de excepciones
Manejador de procesos de
bajo nivel
Cambiode contexto
Tabla dedispatch
Callout debajo nivel
Manejador determinales
Pila de red
Interfaz desockets ystreams
Manejador dearchivos
Estructuras delnúcleo
(alto nivel)
Manejadorde callouts
Sis
tem
as
de
arch
ivo
Alto niveldel núcleo
Modo usuario
1999-2003 S2P, OGP & IGT Estructura del SO 22
Estructura de W2K
DLLsDLLs
API del núcleo
Controlador de servicios
WinLogon
Manejador desesiones
Replicador
Alertador
RPC
Registradorde eventos
Aplicacionesde usuario
DLLs
POSIX
OS2
Win32
Manejador deE/S
Sistemade archivos
NTDLL.DLL
Manejadorde cache
PnPControl de
alimentación
Seguridad Memoriavirtual
Procesose hilos
Win32GDI
Manejador de objetos
Manejadores de dispositivo Kernel
HAL
HARDWARE
Hilos del sistema
NtosKrnl.exe
Procesos de sistema Servicios Aplicaciones Subsistemas