Download nivel 1
Document related concepts
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