160 likes | 274 Views
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
E N D
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 Auditoria Manejo de errores Sist Archivos Protección Adm Almacenamiento secundario Administración De Memoria 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 • 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 • 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 Memoria virtual microkernel protección Hardware
Ventajas/desventajas microkernels • Ventajas • 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.