Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ
Objetivos SO Definir capa de software cuyos componentes maximicen: Confiabilidad Seguridad Extensibilidad Desempeño
Por qué es difícil escribir un SO Complejidad Millones de líneas de código Miles de desarrolladores y probadores Ambiente de programación delicado Se ejecuta sobre HW Un error puede hacer que sistema se caiga dejando todos los usuarios sin servicio Concurrencia e interrupciones Restricciones de compatibilidad con versiones previas
Componentes más importantes del SO Procesos Manejo de colas de estados, planificación, protección, comunicación y sincronización Memoria Manejo VM por proceso, protección Almacenamiento secundario Usado por Sistema de archivos y memoria virtual Información persistente, comunicación con controlador de disco, protección E/S Incluyendo redes Autentificación Intérprete de comandos Auditoria de uso de recursos de sistema Tiempo, memoria, disco
Estructura de SOs No siempre claro como interactúan todos los módulos del SO Interprete de Comandos Servicios de informacion Manejo de errores Auditoria Sist Archivos Protección Administración De Memoria Adm Almacenamiento secundario Adm Procesos E/S
Enfoque más simple-Monolítico Una biblioteca grande Cualquier función puede llamar a cualquier otra. Programas usuario Funcionalidad SO SO HW
Diseño monolítico Ventaja Desventajas Alternativas? Comunicación entre módulos mediante llamadas a procedimientos Barato en tiempo, interfaz simple y homogénea Desventajas Cuando sistema crece se hace Difícil de entender Difícil de modificar Difícil de mantener Baja confiabilidad No exite aislación entre componentes Alternativas? Encontrar manera de estructurar componentes para simplicar su diseño, implementación y mantención
Estructura por niveles Idea: Diseñar e implementar SO mediante un conjunto de niveles Primer sistema de este tipo propuesto por DIJKSTRA con el sistem THE (1968) Nivel 5: Adminitrador de tareas Ejecuta programas de usuarios Nivel 4: Manejadores de dispositivos Maneja dispositivos y proporciona buffers Nivel 3: Consola Implementa consolas virtuales Nivel 2: Administrador de Páginas Implementa memoria virtual para cada proceso Nivel 1: kernel Implementa un procesador virtual para cada proceso Nivel 0: hardware Cada nivel puede ser probado y verificado independientemente
Desventajas estructura por niveles Estructura jerárquica es demasiado inflexible Sistemas reales tienen ciclos de uso Sistema de archivos requiere servicios de memoria virtual Memoria virtual puede usar archivos para respaldos en discos Bajo desempeño Cada cruce entre niveles involucra una sobrecarga (overhead)
Usos En cierto grado se pueden definir algunos niveles Un ejemplo en sistemas modernos Separar rutinas específicas del HW del núcleo del SO Proporciona portabilidad Mejora entendimiento de sistema por la abstracción en cada nivel. Núcleo SO (sistema archivos, planificador, Llamadas a sistema) Abstracción HW Nivel (manejadores disp, Rutinas en assembly)
Microkernels Filosofía Diseño Ejemplos Jerarquía estricta no es buena Modularidad es buena Diseño Minimizar que va en el kernel Organizar el resto del SO como procesos de nivel usuario Ejemplo, Sist de Archivos como un servidor Procesos se comunican mediante pasos de mensajes Como en un sistema distribuido Ejemplos Hydra (1970s) Mach (1985-1994)
Ilustración SO Microkernel Modo usuario Firefox powerpoint Procesos usuarios apache Sistema de archivos red Procesos de sistema Paginación planificador hebras kernel Comunicación Control CPU microkernel Memoria virtual protección Hardware
Ventajas/desventajas microkernels Simplicidad Kernel pequeño Extensibilidad Se puede agregar nueva funcionalidad en modo usuario Confiabilidad Servicios SO aislados en modo usuario Desventajas Bajo desempeño Comunicación mediante mensajes no tan bueno como llamadas a sistema
Estado del arte: Modulos kernel Idea básica: usuarios pueden proporcionar módulos, los cuales se ejecutan directamente en el espacio de dirección del kernel. También llamados Loadable Kernel Modules (LKM) Son cargados después que kernel base está en ejecución Ventajas Buen desempeño Provee extensibilidad a SO Un módulo interesante en kvm Funciona en arquitecturas que soportan virtualización (Intel Dual Core es una de ellas) Usuarios pueden ejecutar múltiples máquinas virtuales ejecutando linux o Windows. Cada máquina virtual tiene su propio hw virtualizado. Desventajas Módulos pueden comprometer seguridad y confiabilidad Manejadores de dispositivo causan el 85% de las caidas en Windows 2000
ACTIVIDAD N° 2 Según la lectura del documento, qué diferencias y características encuentras entre un s.o monoprocesador y un s.o multiprocesador. Explique la estructura por niveles del so ¿Cuáles son las operaciones que se deben tener en cuenta en un so? ¿Cuál es la estructura de un so? Explique el kernel de los so.