Download nivel 1

Document related concepts

Arquitectura de Windows NT wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Windows NT wikipedia , lookup

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Transcript
Estructura del sistema operativo
Sebastián Sánchez Prieto
Introducción

En el tema anterior se dio una visión desde el punto de
vista funcional del sistema operativo


En este tema lo analizaremos desde el punto de vista
estructural


¿Qué hace?
¿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 2
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


Mecanismos para pasar a modo protegido


Instrucciones normales e instrucciones privilegiadas
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 3
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 4
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 5
Diagrama de manejo de interrupciones
Interrupción
¿Nuevo NPI > actual NPI?
No
Guardar interrupción
Sí
Crear un nuevo contexto
Guardar el CP y lo flags
NPI = nuevo NPI
Llamada al manejador
Bloquear
Manejador de interrupción
Sí
¿Hay int. pendientes?
Desbloquear
No
Retornar
 1999-2003 S2P, OGP & IGT
Estructura del SO 6
Niveles de interrupción en W2K
31
Alta
Fallo de alimentación
IPI
Reloj
Perfiles
Dispositivo n
Interrupciones HW
...
0
Dispositivo 1
DPC/Dispatch
APC
Base
 1999-2003 S2P, OGP & IGT
Interrupciones SW
Nivel de ejecución ordinario
Estructura del SO 7
Enfoques de diseño

A grandes rasgos cabe considerar dos enfoques de
diseño:



En el primero, toda la funcionalidad del SO se incluye se
incluye en el núcleo


Enfoque monitor monolítico
Enfoque micronú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 8
Monitor monolítico
Procesos
de usuario
Proceso
de
usuario
Proceso
de
usuario
Proceso
de
usuario
SVC
Despertar
Intérprete
de la SVC
Desbloquea
r
Petición
de E/S
Proceso de
la
interrupción
Monitor
Dispositivos
Comienzo de la E/S
 1999-2003 S2P, OGP & IGT
Interrupción
Estructura del SO 9
Micronúcleo
Proceso
Proceso
Proceso
Proceso de de
usuario
dede
usuario
usuario
usuario
Lectura de disco
Devolver los datos
Inicio de la E/S
Proceso
gestionador
de
dispositivo
Dispositivo
Interrupción
Despertar
Micronúcleo
 1999-2003 S2P, OGP & IGT
Determinación del
proceso que solicitó
la E/S
Proceso de
la
interrupción
Estructura del SO 10
Comparativa
Micronúcleo

Monitor monolítico


Todo el SO se ejecuta en
modo supervisor


Menos robusto

Más robusto

El SO es ininterrumpible

El SO es interrumpible

Mayor rendimiento

Menor rendimiento debido a
la sobrecarga de
comunicaciones

Empleado en sistemas
pequeños

Empleado en sistemas
grandes

Difícil de modificar en tiempo
de ejecución

Fácil de modificar en tiempo
de ejecución

Menos adaptable

Más adaptable
 1999-2003 S2P, OGP & IGT
Sólo el núcleo se ejecuta en
modo supervisor
Estructura del SO 11
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
Entidad N
Capa N
Servicios
Capa N-1
Entidad N-1
 1999-2003 S2P, OGP & IGT
Entidad N-1
Estructura del SO 12
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 13
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 14
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 15
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 16
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 17
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 18
Estructura de UNIX
Programas de usuario
Trap
Nivel de usuario
Nivel kernel
Bibliotecas
Interfaz de llamadas al sistema
Subsistema de
Subsistema
Subsistema
control de procesos
de archivos
de E/S
Manejo de memoria
Buffer caché
IPC
Bloque
Carácter
Drivers
Planificador
Nivel kernel
Nivel hardware
 1999-2003 S2P, OGP & IGT
Control hardware
HARDWARE
Estructura del SO 19
Estructura de Mach
Servidor
de procesos
Programas
de usuario
Servidor
de memoria
Servidor
de archivos
Servidor
de gráficos
Nivel de usuario
Nivel kernel
Manejo de hilos
Manejadores de
dispositivo
Nivel kernel
Nivel hardware
Hardware
 1999-2003 S2P, OGP & IGT
Estructura del SO 20
Estructura de Linux
Interfaz de llamadas de alto nivel
Modo usuario
Validación de argumentos de las llamadas al sistema
Alto nivel
del núcleo
archivo
Manejador de
memoria
de
Manejador de
procesos
Sistemas
Manejador de
archivos
Interfaz de
sockets y
streams
Manejador de
terminales
Pila de red
Bibliotecas del kernel
Conmutador de sistemas de archivo
Manejador de traps de llamadas al sistema
Manejador de excepciones
Tabla de
dispatch
Manejador de
procesos de
bajo nivel
Estructuras del
núcleo
(alto nivel)
Estructuras de
datos compartidas
entre el alto y
el bajo nivel
Manejadores de dispositivo
Manejador de interrupciones
Manejador
de callouts
Callout de
bajo nivel
Cambio
de contexto
Bajo nivel
del núcleo
HARDWARE
 1999-2003 S2P, OGP & IGT
Estructura del SO 21
Estructura de W2K
Procesos de sistema
Servicios
Controlador
de servicios
Aplicaciones
Subsistemas
POSIX
Replicador
Alertador
WinLogon
OS2
RPC
Manejador de
sesiones
Aplicaciones
DLLs
de usuario
DLLs
DLLs
Registrador
de eventos
Hilos del
sistema
Win32
NTDLL.DLL
API del núcleo
Manejador de
E/S
NtosKrnl.exe
Manejador
de cache
PnP
Control de
alimentación
Seguridad
Memoria
virtual
Procesos
e hilos
Win32
GDI
Sistema
de archivos
Manejador de objetos
Manejadores de dispositivo
Kernel
HAL
HARDWARE
 1999-2003 S2P, OGP & IGT
Estructura del SO 22