2 Estructura del sistema operativo

30
Estructura del sistema operativo

Transcript of 2 Estructura del sistema operativo

Page 1: 2 Estructura del sistema operativo

Estructura del sistema operativo

Page 2: 2 Estructura del sistema operativo

2Estructura del sistema operativo

Contenidos (T2 y T3)

Introducción Diseño por capas

Ventajas del empleo de capas Niveles clásicos de un SO Núcleo de un SO

Funciones básicas del núcleo Enfoques de diseño:

Comparativa Estructura de UNIX clásico Estructura de Mach Estructura de Linux

El núcleo de Linux Estructura de W2K Llamadas al sistema

APIs de llamadas al sistema Realización

Page 3: 2 Estructura del sistema operativo

3Estructura del sistema operativo

Introducción

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 30 – 35 millones de líneas de código?

Page 4: 2 Estructura del sistema operativo

4Estructura del sistema operativo

Diseño por capas (i)

Interfaces del SO que debe conocer el diseñador: Interfaz hardware:

Interrupciones, repertorio de instrucciones, traducción de direcciones de la MMU, punto de entrada para cargar el SO

Interfaz usuario y programas API (Application Program Interface)

S.O.

Hardware

AplicacionesIntérprete de órdenes

Page 5: 2 Estructura del sistema operativo

5Estructura del sistema operativo

Diseño por capas (ii)

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 6: 2 Estructura del sistema operativo

6Estructura del sistema operativo

Diseño por capas (iii) 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, para luego hacer las pruebas de integración y de conjunto

Esto es muy importante en el desarrollo del software

Page 7: 2 Estructura del sistema operativo

7Estructura del sistema operativo

Niveles clásicos de un SO (i)

Usuario y aplicaciones

N5: Gestión de la informaciónN4: Gestión de los dispositivosN3: Gestión de procesosN2: Gestión de memoriaN1: Gestión del procesador

Hardware

Page 8: 2 Estructura del sistema operativo

8Estructura del sistema operativo

Niveles clásicos de un SO (ii)

NIVEL 1Nivel 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 Arranque inicial

Page 9: 2 Estructura del sistema operativo

9Estructura del sistema operativo

Niveles clásicos de un SO (iii)

NIVEL 2Gestión de memoria

Objetivo: Repartir la memoria entre procesos

Funciones: Asignación y liberación de memoria Control violación de acceso

Page 10: 2 Estructura del sistema operativo

10Estructura del sistema operativo

Niveles clásicos de un SO (iv)

NIVEL 3Nivel superior de gestión de procesos

Objetivo: Gestión de procesos de alto nivel

Funciones: Creación y destrucción de procesos Intercambio de mensajes entre procesos Detención y arranque de procesos

Page 11: 2 Estructura del sistema operativo

11Estructura del sistema operativo

Niveles clásicos de un SO (v)

NIVEL 4Nivel 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 12: 2 Estructura del sistema operativo

12Estructura del sistema operativo

Niveles clásicos de un SO (vi)

NIVEL 5Nivel 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 13: 2 Estructura del sistema operativo

13Estructura del sistema operativo

Núcleo del sistema operativo (i)

Proporciona la funcionalidad básica del SO Es la parte más dependiente del hw de todo el

SO Suele permanecer en el almacenamiento

primario porque su código se ejecuta muy frecuentemente

Otros niveles

Núcleo

HW

Page 14: 2 Estructura del sistema operativo

14Estructura del sistema operativo

Núcleo del sistema operativo (ii)Funciones básicas del núcleo

Proporcionar el entorno adecuado para la existencia de procesos

Funciones: Tratamiento de interrupciones Conmutación del procesador entre procesos

(soporte al diagrama de estados) Mecanismos básicos de comunicación y

sincronización entre hilos y procesos Carga inicial y activación de la configuración del

sistema

EDSO

Page 15: 2 Estructura del sistema operativo

15Estructura del sistema operativo

Núcleo del sistema operativo (iii)Funciones básicas del núcleo

Tratamiento de interrupciones: El núcleo transforma las interrupciones en eventos

de más alto nivel (p. ej. mensajes) El núcleo determina qué proceso espera una

interrupción y le envía un mensaje

Page 16: 2 Estructura del sistema operativo

16Estructura del sistema operativo

Núcleo del sistema operativo (iv)Funciones básicas del núcleo

Conmutación de CPU entre procesos Los procesos de usuario pasan por varios estados

durante su tiempo de vida en el sistema El núcleo proporciona los mecanismos de

conmutación de la CPU entre procesos

AsignarDormir

Despertar

Revocar

Ejecución

ListoEspera

Page 17: 2 Estructura del sistema operativo

17Estructura del sistema operativo

Núcleo del sistema operativo (v)Funciones básicas del núcleo

Comunicación y sincronización entre procesos El núcleo proporciona mecanismos para que los

procesos puedan intercambiar información y sincronizarse

Mecanismos: Señales Semáforos Mensajes RPCs (remote procedure calls)

Ejemplo: NFS (Sistema de ficheros en red) construido a partir

de RPCs

Page 18: 2 Estructura del sistema operativo

18Estructura del sistema operativo

Enfoques de diseño (i)

Enfoques de diseño: Monitor monolítico Micronúcleo

Monitor monolítico Toda la funcionalidad del SO se incluye se incluye

en el núcleo Ejemplos: MS-DOS, Linux

Micronúcleo Parte de los sevicios del SO la llevan a cabo los

procesos de sistema, que se sirven de la funcionalidad mínima proporcionada por un micronúcleo

Ejemplos: Mach, L4, Chorus

Page 19: 2 Estructura del sistema operativo

19Estructura del sistema operativo

Enfoques de diseño (ii) Comparativa

Monitor monolítico Todo el SO se ejecuta en

modo supervisor Menos robusto El SO es ininterrumpible Mayor rendimiento

Difícil de modificar en tiempo de ejecución

Menos adaptable

Micronúcleo Sólo el núcleo se ejecuta

en modo supervisor Más robusto El SO es interrumpible Menor rendimiento debido

a la sobrecarga de comunicaciones

Fácil de modificar en tiempo de ejecución

Más adaptable

Page 20: 2 Estructura del sistema operativo

20Estructura del sistema operativo

Estructura de UNIX clásico

Subsistema de

archivos

Subsistema decontrol de procesos

Manejo de memoria

IPC

Planificador

Interfaz de llamadas al sistema

Programas de usuario

Bibliotecas

Buffer cache

Control hardware

Hardware

Nivel kernelNivel hardware

Nivel kernel

Nivel de usuario

Trap

Subsistema

de E/S

Carácter BloqueDrivers

Page 21: 2 Estructura del sistema operativo

21Estructura del sistema operativo

Estructura de Mach

Manejo de hilos

Programasde usuario

Servidorde proces

os

Hardware

Manejadores de dispositivos

Nivel kernelNivel hardware

Nivel kernelNivel de usuario

Servidor de

memoria

Servidorde

archivos

Servidorde

gráficos

Page 22: 2 Estructura del sistema operativo

Estructura de Linux (i)

Validación de argumentos de las llamadas al sistema

Conmutador de sistemas de archivo

Manejador delbuffer de cache

Bib

liote

cas

del ke

rnel

Manejadorde

memoria

Manejadorde

procesos

Manejadores de dispositivo

Est. datos compartidas entre nivelalto y bajo

Interfaz de llamadas de alto nivel

Hardware

Bajo niveldel núcleo

Manejador de interrupcionesManejador traps de llamadas al sist.Manejador de excepciones

Manejadorprocesos debajo nivel

Cambiode

contexto

Tabladispatch

Callout debajo nivel

Manejadorde

terminalesPila de red

Interfaz desockets ystreams

Manejadorde archivos

Estructuras del núcleo(alto nivel)

Manejadorde callouts

Sis

tem

as

de

arc

hiv

o

Alto niveldel núcleo

Modo usuario

Page 23: 2 Estructura del sistema operativo

23Estructura del sistema operativo

Estructura de Linux (ii) El núcleo de Linux

Comunicación entre procesos Señales Tuberías Sockets (TCP/IP)

Manejadores (drivers) Modo carácter Modo bloque

Sistema de archivos Archivos,

directorios Bloqueo de

archivos

Facilidades básicas Manejo del reloj y

temporizador Manejo del estado

de los procesos Manejo de

descriptores Semáforos

Gestión de memoria Memoria virtual Trasiego Memoria

compartida

Page 24: 2 Estructura del sistema operativo

24Estructura del sistema operativo

WinLogon

Estructura de W2K

DLLsDLLs

Controladorservicios

Manejador de sesiones

ReplicadorAlertador

RPCRegistradorde eventos

Aplicacionesde usuario

DLLs

POSIX

OS2

Win32

NTDLL.DLLHilos del sistema

API del núcleoManejador

de E/S

Sistemade archivos

Manejadorde caché

PnPControl de

alimentación

SeguridadMemoriavirtual

Procesose hilos

Win32GDI

Manejador de objetosManejadores de dispositivo Kernel

HAL

Hardware

NtosKrnl.exe

Procesos de sistema Servicios Aplicaciones Subsistemas

Page 25: 2 Estructura del sistema operativo

25Estructura del sistema operativo

Llamadas al sistema (i)

Interfaz de llamadas al sistema Funciones de biblioteca compartidas por todos

los procesos que se ejecutan en la máquina

S.O.

Hardware

AplicacionesIntérprete de órdenes

Interfaz de llamadas al sistema

Page 26: 2 Estructura del sistema operativo

26Estructura del sistema operativo

Llamadas al sistema (ii)

Llamadas al sistema Mecanismo controlado de acceso por parte de los

procesos a los recursos del S.O. Funcionalidad básica:

Comunicación y sincronización de procesos Ejecución de programas Manejo de operaciones de E/S Manipulación del sistema de archivos Detección y control de errores en tiempo de ejecución Asignación no conflictiva de recursos Protección en el empleo de recursos Contabilidad de los recursos empleados

Page 27: 2 Estructura del sistema operativo

27Estructura del sistema operativo

Llamadas al sistema (iii) APIs de llamadas al sistema

Las llamadas al sistema están definidas a nivel de ensamblador

Código no portable (depende de la arquitectura) Incómodo de programar

Existen APIs (Application Program Interface) para mejorar la portabilidad y facilitar la codificación

El API es un “envoltorio” para realizar llamadas al sistema desde un lenguaje de alto nivel (portable y cómodo)

API estándar: POSIX (Portable Operating System Unix)

Ejemplo de llamada de interfaz POSIX para abrir un fichero:

int open( char* archivo, int modo);

Page 28: 2 Estructura del sistema operativo

28Estructura del sistema operativo

Llamadas al sistema (iv) APIs de llamadas al sistema

Manipulación de archivos:int open (const char *pathname, int flags, mode_t mode);

int close (int fd)

int creat (const char *pathname, mode_t mode)

int unlink (const char *pathname);

ssize_t read (int fd, void *buf, size_t count);

ssize_t write (int fd, const void *buf, size_t count);

off_t lseek (int fildes, off_t offset, int whence);

int rename (const char *oldpath, const char *newpath);

Page 29: 2 Estructura del sistema operativo

29Estructura del sistema operativo

Llamadas al sistema (v)Realización

Método: A través de una instrucción máquina específica, el

hw la trata como una interrupción sw Al ejecutarse esta instrucción toma el control el

S.O.

P1

...

...syscall N

...

...

...

switch N {

case 0:

case 1:

case N:

}

Modo supervisorCarga vector interrupción

Page 30: 2 Estructura del sistema operativo

30Estructura del sistema operativo

Llamadas al sistema (vi) Realización

Su implementación depende de la arquitectura del ordenador

IBM 360: instrucción SVC MIPS: instrucción syscall i386: int # (DOS: 21h, Linux: 80h, W2k: 2Eh)

Paso de parámetros: En registros internos del procesador En zona de memoria cuya dirección se pasa en

registros En la pila