Estructura del sistema operativo Sebastián Sánchez Prieto.

22
Estructura del sistema operativo Sebastián Sánchez Prieto

Transcript of Estructura del sistema operativo Sebastián Sánchez Prieto.

Page 1: Estructura del sistema operativo Sebastián Sánchez Prieto.

Estructura del sistema operativo

Sebastián Sánchez Prieto

Page 2: 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?

Page 3: Estructura del sistema operativo Sebastián Sánchez Prieto.

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)

Page 4: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 5: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 6: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

No

Page 7: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 8: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 9: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 10: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 11: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 12: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 13: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 14: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 15: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 16: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 17: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 18: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 19: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 20: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 21: Estructura del sistema operativo Sebastián Sánchez Prieto.

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

Page 22: Estructura del sistema operativo Sebastián Sánchez Prieto.

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