Estructuras en Sistemas Operativos DAISY KATERINE RODRGUEZ Objetivos
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ
Objetivos SO ¢ Definir capa de software cuyos componentes maximicen: l Confiabilidad l Seguridad l Extensibilidad l Desempeño
Por qué es difícil escribir un SO ¢ ¢ Complejidad l Millones de líneas de código l Miles de desarrolladores y probadores Ambiente de programación delicado l Se ejecuta sobre HW l 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 l ¢ Memoria l ¢ ¢ Usado por Sistema de archivos y memoria virtual Información persistente, comunicación controlador de disco, protección E/S l ¢ Manejo VM por proceso, protección Almacenamiento secundario l ¢ Manejo de colas de estados, planificación, protección, comunicación y sincronización Incluyendo redes Autentificación Intérprete de comandos Auditoria de uso de recursos de sistema l 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 Sist Archivos Auditoria Protección Adm Procesos Administración De Memoria Adm Almacenamiento secundario E/S
Enfoque más simple-Monolítico ¢ ¢ Una biblioteca grande Cualquier función puede llamar a cualquier otra. Programas usuario SO Funcionalidad SO HW
Diseño monolítico ¢ Ventaja l Comunicación entre módulos mediante llamadas a procedimientos • Barato en tiempo, interfaz simple y homogénea ¢ Desventajas l Cuando sistema crece se hace • Difícil de entender • Difícil de modificar • Difícil de mantener l Baja confiabilidad • No exite aislación entre componentes ¢ Alternativas? l 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) l Nivel 5: Adminitrador de tareas • Ejecuta programas de usuarios l Nivel 4: Manejadores de dispositivos • Maneja dispositivos y proporciona buffers l Nivel 3: Consola • Implementa consolas virtuales l Nivel 2: Administrador de Páginas • Implementa memoria virtual para cada proceso l Nivel 1: kernel • Implementa un procesador virtual para cada proceso Nivel 0: hardware Cada nivel puede ser probado y verificado independientemente l ¢
Desventajas estructura por niveles ¢ Estructura jerárquica es demasiado inflexible l 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 l Cada cruce entre niveles involucra una sobrecarga (overhead) l ¢
Usos ¢ ¢ En cierto grado se pueden definir algunos niveles Un ejemplo en sistemas modernos l 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 l l ¢ Jerarquía estricta no es buena Modularidad es buena Diseño l l Minimizar que va en el kernel Organizar el resto del SO como procesos de nivel usuario • Ejemplo, Sist de Archivos como un servidor l Procesos se comunican mediante pasos de mensajes • Como en un sistema distribuido ¢ Ejemplos l l Hydra (1970 s) Mach (1985 -1994)
Ilustración SO Microkernel Procesos de sistema Firefox powerpoint apache Sistema de archivos hebras red Paginación planificador microkernel Memoria virtual protección Hardware Control CPU kernel Comunicación Modo usuario Procesos usuarios
Ventajas/desventajas microkernels ¢ Ventajas l Simplicidad • Kernel pequeño l Extensibilidad • Se puede agregar nueva funcionalidad en modo usuario l Confiabilidad • Servicios SO aislados en modo usuario ¢ Desventajas l 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) l Son cargados después que kernel base está en ejecución Ventajas l Buen desempeño l 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 l Módulos pueden comprometer seguridad y confiabilidad • Manejadores de dispositivo causan el 85% de las caidas en Windows 2000
ACTIVIDAD N° 2 1. 2. 3. 4. 5. 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.
- Slides: 15