4º Curso fperez@fi.upm.es José María Peña jmpena@fi.upm.es frosal@fi.upm.es DATSI Universidad Politécnica de Madrid Temario 1. Introducción 2. Procesos 3. Interbloqueos 4. Gestión de Memoria 5. Administración de Sistemas 6. Entrada/Salida 7. Sistemas de Ficheros 8. Protección y Seguridad 9. Introducción a los SSOO Distribuidos Introducción: Conceptos y Estructura de SSOO 1 Tema 1. Introducción Cuatro módulos: 1. Conceptos y evolución 2. Estructuras de un sistema de computación 3. Estructuras del sistema operativo 4. Aspectos de diseño e implementación Objetivos: Que el alumno entienda el porqué de los SSOO Comprender el porqué de cada parte del SO Mostrar las distintas estructuras de SSOO Módulo 1. Conceptos y Evolución Qué es un sistema operativo? Evolución de los Sistemas Operativos Introducción: Conceptos y Estructura de SSOO 2 Introducción: Conceptos y Estructura de SSOO 3 Qué es un sistema operativo? Un programa que actúa como intermediario entre el usuario de un computador y el hardware del mismo Objetivos del sistema operativo: Facilitar el uso al usuario (interfaz) Facilitar la programación al programador (máquina virtual extendida) Ejecutar programas eficientemente (gestor de recursos) Componentes de un sistema de computación Usuarios personas, máquinas u otros computadores Aplicaciones consumen los recursos para resolver los problemas de computación de los usuarios Sistema Operativo controla y coordina el uso del hardware entre las distintas aplicaciones de los distintos usuarios Hardware proporciona los recursos básicos de computación (UCP,, dispositivos de E/S) Introducción: Conceptos y Estructura de SSOO 4 Introducción: Conceptos y Estructura de SSOO 5
Visión abstracta del sistema usuario 1 usuario 2 usuario 3 compilador ensamblador editor editor de de texto texto...... base base de de datos datos Aplicaciones del del sistema Sistema Operativo Hardware del del computador... usuario n Definiciones de sistema operativo Gestor de recursos: gestión y asignación de recursos del computador Programa de control: controla la ejecución de los programas de usuario y las operaciones de los dispositivos de E/S Núcleo: el único programa que ejecuta siempre (por debajo y anterior a cualquier otro programa) Máquina virtual: extiende y enmascara la funcionalidad del hardware Introducción: Conceptos y Estructura de SSOO 6 Introducción: Conceptos y Estructura de SSOO 7 Evolución: Maquina desnuda Sistemas sencillos por lotes Sistemas por lotes multiprogramados Sistemas de tiempo compartido Sistemas de computación personal Sistemas paralelos Sistemas distribuidos Sistemas de tiempo real Máquina desnuda (1950) I Estructura Grandes máquinas manejadas por consola Sistemas monousuario monoprogramados 3en1: programador, operador, usuario Cinta de papel o tarjetas perforadas Introducción: Conceptos y Estructura de SSOO 8 Introducción: Conceptos y Estructura de SSOO 9 Máquina desnuda (1950) II Software Ensambladores, compiladores, enlazadores y cargadores Bibliotecas de subrutinas comunes Manejadores de dispositivo Máquina desnuda (1950) III Rendimiento Uso ineficiente de recursos caros Uso UCP muy pobre Largo tiempo de activación Ventaja: seguridad Introducción: Conceptos y Estructura de SSOO 10 Introducción: Conceptos y Estructura de SSOO 11
Sistema sencillo por lotes Lectora de tarjetas como dispositivo de entrada Reduce el tiempo de activación agrupando trabajos similares Monitor residente Monitor residente Secuenciador automático de trabajos Control inicial en el monitor Se transfiere control a una tarea Cuando la tarea termina, el control vuelve al monitor Intérprete de tarjetas de control Cargador y manejadores de dispositivos Usuario!= operador Nace el centro de cálculo Introducción: Conceptos y Estructura de SSOO 12 Introducción: Conceptos y Estructura de SSOO 13 Sistema sencillo por lotes Problemas: Sistema monoprogramado E/S y UCP no solapan Solución: E/S lenta (tarjeta, impresora) offline E/S rápida (carga) a cinta o disco Spooling lectora lectora de de tarjetas impresora computador principal procesador satélite satélite cintas cintas del del sistema Introducción: Conceptos y Estructura de SSOO 14 Introducción: Conceptos y Estructura de SSOO 15 Spooling Spooling Usar UCP durante E/S mientras se ejecuta un trabajo, se lee el siguiente y se imprime la salida del anterior Cola de tareas estructura de datos que permite que el SO seleccione qué trabajo ejecutar el siguiente para optimizar uso de UCP Lectora de de tarjetas Disco Impresora de de líneas Introducción: Conceptos y Estructura de SSOO 16 Introducción: Conceptos y Estructura de SSOO 17
Sistema por lotes multiprogramado Varios trabajos en principal al mismo tiempo Se multiplexa la UCP entre ellos Multiplexación de la CPU SO SO u1 u1 u2 u2 u3 u3 u4 u4 UCP u1 u2 SO L leer L + 1 Rodaja ses planificador planificador E/S R interrupción R + 1 planificador Introducción: Conceptos y Estructura de SSOO 18 Introducción: Conceptos y Estructura de SSOO 19 Características de un SO multiprogramado Las rutinas de E/S pertenecen al sistema Gestión de : asignar la a varios trabajos Planificación de la UCP: elegir entre varios trabajos listos para ejecutar Asignación de dispositivos Todos SSOO actuales son multiprogramados! Introducción: Conceptos y Estructura de SSOO 20 Sistemas de tiempo compartido Multiprogramado UCP multiplexada. Varios trabajos en Interactivo comunicación on-line entre usuario y sistema Intérprete de mandatos sustituye a tarjetas de control Sistema de ficheros on-line permite a los usuarios el acceso a datos y código Multiusuario varios usuarios simultáneos cada usuario cree tener todo el computador Introducción: Conceptos y Estructura de SSOO 21 Sistemas de computación personal PCs Dedicados a un único usuario (monousuario) Multiprogramados (generalmente) Variedad de dispositivos de E/S teclado, ratón, pantallas gráficas,... Muy interactivos Hasta ahora sistemas aislados, poca atención a la seguridad UCP muy potente (1Ghz) Mucha (512MB) Conexión a red Sistemas paralelos I Multiprocesadores: Varias CPU fuertemente acopladas reloj común Memoria compartida comunicación y sincronización vía Sistema operativo único Ventajas: Incremento de rendimiento Económicos Incremento de fiabilidad: degradación parcial, tolerancia a fallos Introducción: Conceptos y Estructura de SSOO 22 Introducción: Conceptos y Estructura de SSOO 23
Sistemas paralelos II 1 red red fuertemente acoplada (bus, switch,...)...) 2 3 n Tipos de sistemas paralelos Según el número de CPUs: Supercomputadores De 64 en adelante (miles) Multiprocesadores De 2 a 64 Computadores personales paralelos De 2 a 8 Introducción: Conceptos y Estructura de SSOO 24 Introducción: Conceptos y Estructura de SSOO 25 Multiproceso asimétrico Cada procesador tiene asignada una tarea específica (E/S, SO, procesos...) Un procesador maestro planifica el trabajo de los esclavos Muy frecuente en supercomputadores Manera trivial de portar un SO convencional a un multiprocesador Multiproceso simétrico SMP Cada procesador ejecuta una copia idéntica del SO Muchos procesos simultáneos sin pérdida de rendimiento Cada procesador ejecuta el primer trabajo listo para ejecutar, no hay jerarquía Introducción: Conceptos y Estructura de SSOO 26 Introducción: Conceptos y Estructura de SSOO 27 Características SO paralelo Planificador más complejo Gestión de más compleja Gestión de caches de muy importante para rendimiento Todos son recursos compartidos Programación concurrente en el SO Sistemas distribuidos I Múltiple procesadores débilmente acoplados: Físicamente separados, NO comparten Comunicación mediante mensajes Los SO se comportan como uno único Ventajas: Compartición de recursos Reparto dinámico de carga Fiabilidad: replicación y tolerancia a fallos El mismo modelo de comunicación vale para una red local o extendida, o para máquina aislada Introducción: Conceptos y Estructura de SSOO 28 Introducción: Conceptos y Estructura de SSOO 29
Sistemas distribuidos II 1 2 3 red red débilmente acoplada (RAL, RAV, RAE,...)...)... n Tipos de sistemas distribuidos Red de computadores conectados con una RAL Clusters conectados por una RAV Red de procesadores con propia Introducción: Conceptos y Estructura de SSOO 30 Introducción: Conceptos y Estructura de SSOO 31 Características sistemas distribuidos Cada nodo tiene su SO independiente El usuario NO debería saber donde está trabajando ni donde están sus ficheros Los SO colaboran para crear este efecto Introducción: Conceptos y Estructura de SSOO 32 Sistemas de tiempo real Restricciones de tiempo bien definidas ejecutan tareas en el tiempo y orden prefijados STR críticos avión, satélite, médicos, etc. No pueden perder ningún deadline de tarea Almacenamiento secundario limitado o ausente Sistemas dedicados, no de propósito general STR suave multimedia, comunicaciones, etc. Pueden perder deadlines de tareas no críticas Uso limitado en sistemas de control Introducción: Conceptos y Estructura de SSOO 33 Módulo 2. Estructuras de un sistema de computación Arquitectura del computador Arquitectura del computador Funcionamiento del computador Estructura de E/S Jerarquía de Protección por hardware Arquitectura general del sistema disco disco controlador de de disco disco impresora controlador de de impresora bus bus del del sistema controlador de de cinta cinta controlador de de cinta cinta Introducción: Conceptos y Estructura de SSOO 34 Introducción: Conceptos y Estructura de SSOO 35
Funcionamiento del computador UCP y dispositivos de E/S en concurrencia Manejadores de dispositivos de E/S que: Se encargan de cada tipo de dispositivo Tienen almacenes locales de datos Ej. operación de Entrada: Desde cada dispositivo a de su controlador El controlador informa a la UCP que tiene los datos listos mediante un interrupción Se dispara una rutina de tratamiento de interrupción (RTI) La UCP mueve los datos del almacén local a principal Interrupciones El sistema operativo es guiado por interrupciones!! Tratamiento: Salvar el estado de la UCP guardando registros, CP, etc. Inhibir interrupciones, para no perder otras Determinar qué interrupción ha ocurrido (polling, vector) Indexar en vector de interrupciones y saltar a RTI RTI: tratamiento para una interrupción Restaurar estado previo para seguir ejecución Trap: interrupción generada por software error o petición de usuario Introducción: Conceptos y Estructura de SSOO 36 Introducción: Conceptos y Estructura de SSOO 37 E/S y acceso directo a E/S y acceso directo a Dispositivos de E/S que envían/toman los datos directamente a/de Sin intervención de la UCP Programación: datos E/S, buffer, longitud Resultado: interrupción Indica estado de terminación (OK, ERROR) Una interrupción por bloque, no por byte instrucciones de E/S dispositivos de de entrada/salida Introducción: Conceptos y Estructura de SSOO 38 Introducción: Conceptos y Estructura de SSOO 39 Jerarquía de registros cache principal disco electrónico disco magnético disco óptico cintas magnéticas Modo dual de operación Compartir recursos El SO asegura que un programa no afectará a otro Solución: Mecanismo de protección hardware (bit) que permite, al menos, 2 modos de ejecución: usuario (1) y sistema (0). Instrucciones privilegiadas sólo posibles en modo sistema Cuando hay interrupción, trap o excepción, el hardware cambia a modo sistema Introducción: Conceptos y Estructura de SSOO 40 Introducción: Conceptos y Estructura de SSOO 41
Modo dual de operación Protección por hardware monitor interrupción/fallo pasar a modo usuario usuario E/S: siempre instrucciones privilegiadas, modo sistema Memoria: registros base y límite por programa accesos fuera originan un fallo de protección UCP: temporizador que interrumpe periódicamente para dar control al SO y que decida Introducción: Conceptos y Estructura de SSOO 42 Introducción: Conceptos y Estructura de SSOO 43 Protección por hardware 0 256000 300040 420940 monitor tarea 1 tarea 2 256000 registro base 300040 registro límite Arquitectura general del sistema Si las instrucciones de E/S son privilegiadas, cómo ejecuta el usuario la E/S? Llamada al sistema: Método estándar de acceso a los servicios del SO El programa genera un trap (interrupción sw) Se salta a ejecutar la RTI (servicio del SO) y a la vez se cambia a modo sistema El SO verifica los parámetros, ejecuta la petición y devuelve control en la instrucción siguiente El SO oculta las llamadas al sistema en bibliotecas que se instalan con el SO Introducción: Conceptos y Estructura de SSOO 44 Introducción: Conceptos y Estructura de SSOO 45 Módulo 3. Estructuras del sistema operativo Componentes del sistema Llamadas al sistema Estructura de un sistema operativo Máquinas virtuales Introducción: Conceptos y Estructura de SSOO 46 Componentes del SO Básicos: Gestor de procesos Gestor de Gestor de E/S y almacenamiento secundario Servidores: Servidor de ficheros Servidor de protección y seguridad Servidor de comunicaciones por red Utilidades: Intérprete de mandatos Programas de sistema Introducción: Conceptos y Estructura de SSOO 47
Gestor de procesos Un proceso es un programa en ejecución Es la unidad que consume recursos: UCP,, ficheros, etc. El SO gestionar lo siguiente de los procesos: Creación y destrucción Suspensión y reanudación Mecanismos de comunicación y sincronización Asignación de los recursos al proceso Gestor de Memoria: Vector enorme de palabras o bytes (direcciones) Compartida por UCP y dispositivos E/S Volátil: pierde su contenido sin alimentación El SO gestiona lo siguiente de la : Qué partes están en uso y quién las está usando Qué procesos se deben cargar, y dónde Asigna y libera espacio cuando se requiere Introducción: Conceptos y Estructura de SSOO 48 Introducción: Conceptos y Estructura de SSOO 49 Gestor de entrada/salida El gestor de E/S está formado por: Almacenamiento intermedio en (caché) Manejadores genéricos, uno por cada clase de dispositivo Gestión individualizada por dispositivo existente El SO gestiona lo siguiente de la E/S: Traduce peticiones a formato de manejador Copia de/hacia el controlador Controla transferencias por DMA Gestión del almacenamiento secundario Dispositivos rápidos de E/S (discos) Vector enorme de bloques Almacenamiento no volátil Usado como respaldo de principal El SO gestiona lo siguiente del almacenamiento secundario: Asignación y liberación de espacio Planificación de accesos a los discos Introducción: Conceptos y Estructura de SSOO 50 Introducción: Conceptos y Estructura de SSOO 51 Servidor de ficheros y directorios Fichero: Conjunto de información lógicamente relacionada Directorio: Fichero que contiene asociaciones entre nombres de fichero e identificadores internos del SO El SO gestiona lo siguiente de los ficheros: Creación y borrado de ficheros y directorios Primitivas para manipularlos Proyectar los ficheros en Respaldar los ficheros en dispositivos no volátiles Servidor de protección y seguridad I Protección: Controlar el acceso a los recursos por parte de los procesos (de los usuarios) El servidor de protección debe: Distinguir entre uso autorizado y no autorizado Especificar los controles de acceso a llevar a cabo Proporcionar métodos de control de acceso Introducción: Conceptos y Estructura de SSOO 52 Introducción: Conceptos y Estructura de SSOO 53
Servidor de protección y seguridad II Seguridad: Proteger al sistema de un uso indebido (fraudulento) El servidor de seguridad debe: Autenticar a los usuarios Evitar amenazas al sistema (gusanos, virus, piratas, fuego, etc.) Evitar intercepción de comunicaciones (cifrado, canales seguros, etc.) Introducción: Conceptos y Estructura de SSOO 54 Servidor de comunicaciones Sistema en red o distribuido: Conjunto de procesadores que no comparten Conectados mediante una red de comunicación El servidor de comunicaciones debe: Proporcionar mecanismos para comunicación local y remota entre procesos Para distintos tipos de redes (Ethernet, ATM, telefónica, etc.) Responsabilidad del SO: Resolución de nombres, enrutamiento, conexiones y control de flujo Introducción: Conceptos y Estructura de SSOO 55 Intérprete de mandatos Programa cuya función es obtener los mandatos del usuario y lanzar su ejecución Hay dos tipos básicos: Intérprete de mandatos en línea en modo texto, como el shell de UNIX y LINUX Interfaz gráfico de usuario, como el de Windows y X-Windows Puede haber múltiples intérpretes de mandatos sobre el mismo SO La visión del mismo SO cambia según el usuario (POSIX sobre Windows NT o Win32 sobre LINUX) Introducción: Conceptos y Estructura de SSOO 56 Programas de sistema Proporcionan un entorno adecuado para el desarrollo y ejecución de programas Son la visión del SO que tienen muchos usuarios, y no la de las llamadas al sistema Categorías: Manipulación de ficheros: copia, mover,... Información de estado: monitores,... Programación: compiladores, depuradores, Carga y ejecución: cargador, Comunicaciones: telnet, ftp, Aplicaciones: servidores BD, navegadores,... Introducción: Conceptos y Estructura de SSOO 57 Llamadas al sistema Interfaz entre aplicaciones y SO Con un trap o interrupción sw Acceso como función en los lenguajes (C, ) Paso de parámetros: En registros En, se pasa la dirección en un registro En la pila y dejar que el SO los extraiga El SO se define por sus llamadas al sistema: Estándar POSIX en UNIX y LINUX Win32 en Windows NT Introducción: Conceptos y Estructura de SSOO 58 Paso de llamadas al sistema trap Programa de usuario 1 llamada al sistema Tabla de RTI... Procesamiento de la interrupción Programa de usuario n Control vuelve al programa de usuario 1 rutina de servicio Se ejecuta en modo NO privilegiado Se ejecuta en modo PRIVILEGIADO Introducción: Conceptos y Estructura de SSOO 59
Sistemas monolíticos I Núcleo: Todo entre las llamadas al sistema y el hardware No dividido en módulos Interfaces y niveles de funcionalidad no separados Ej: Monitor o ejecutivo (MS-DOS) Escritos para funcionalidad específica y gestionar hardware reducido Monoproceso Sistemas monolíticos II Intérprete de mandatos Programas de usuario Programas de sistema Llamadas al sistema POSIX Win32 Núcleo Servidores Ficheros Memoria Protección Comunicaciones Manejadores Teclado Ratón Disco Introducción: Conceptos y Estructura de SSOO 60 Introducción: Conceptos y Estructura de SSOO 61 Sistemas modulares I Núcleo: Dividido en módulos con funcionalidad e interfaces claramente definidos Modular y estructurado Se pueden sustituir componentes por otros con el mismo interfaz (manejadores, sistemas de ficheros,...) Un único trap, el proceso existe en dos modos Ej: UNIX, LINUX Muchas funcionalidades Multiproceso y multiusuario Sistemas modulares II Intérprete de mandatos Programas de usuario Programas de sistema Llamadas al sistema POSIX Win32 Núcleo Servidores Ficheros Memoria Protección Comunicaciones Manejadores Teclado Ratón Disco Introducción: Conceptos y Estructura de SSOO 62 Introducción: Conceptos y Estructura de SSOO 63 Sistemas por capas Núcleo: Dividido en múltiples niveles, capas de una cebolla El más alto la interfaz de llamadas Cada nivel usa únicamente servicios del inferior y da servicio al superior Comunicación entre capas vía traps Ej: THE, Multics Problema: Una llamada puede necesitar varios niveles de traps Sistemas con micronúcleo I Núcleo: Reducido a las funcionalidades mínimas imprescindibles Se sacan fuera del núcleo los demás servicios Comunicación vía paso de mensajes Servidores: Hilos de ejecución independiente Los más altos ofrecen la interfaz de llamadas Los más bajos gestionan el hardware Introducción: Conceptos y Estructura de SSOO 64 Introducción: Conceptos y Estructura de SSOO 65
Sistemas con micronúcleo II Problema: Una llamada puede necesitar muchos mensajes Ventaja: Piezas separables, paso a SO Distribuido Ej: MINIX, Mach (Windows-NT) Máquinas virtuales I Una MV crea una copia idéntica del hardware Procesador con su propia y E/S Sobre una MV se puede ejecutar cualquier SO Sobre el mismo computador varios SSOO a la vez El Monitor de MVs ejecuta sobre el HW real Cómo se hace? Planificación UCP para MV multiproceso Spooling y sistema ficheros multiplexación E/S MV del operador control del sistema Introducción: Conceptos y Estructura de SSOO 66 Introducción: Conceptos y Estructura de SSOO 67 Máquinas virtuales II Ventajas: Protección sencilla, muy modular, bueno para investigación y desarrollo (SO distribuido) Inconvenientes: Difícil compartir recursos Difícil implementar duplicados exactos del HW Usado para emular SSOO sobre otros Ej. VM-370, MS-DOS en Windows, VMware Máquinas virtuales III Instrucciones de E/S 370 virtual trap CMS MS-DOS OS/2 Monitor de máquinas virtuales Hardware desnudo trap Llamadas al sistema Introducción: Conceptos y Estructura de SSOO 68 Introducción: Conceptos y Estructura de SSOO 69 Módulo 4. Aspectos de Diseño e Implem. Objetivos de diseño Implementación Arranque del sistema Objetivos de diseño de un SO Para el usuario: Fácil de usar, fiable, seguro, potente y sencillo Internamente: Fácil de implementar y mantener Flexible, fiable, eficiente y estar libre de errores Diferenciar claramente entre: Mecanismos: qué cosas se pueden hacer Políticas: criterio para decidir qué hacer Separarlos es importante para poder afinar bien los sistemas Introducción: Conceptos y Estructura de SSOO 70 Introducción: Conceptos y Estructura de SSOO 71
Implementación del sistema Tradicionalmente: ensamblador Actualmente: C y ensamblador Uso lenguaje alto nivel: Desarrollo más rápido Más fácil de comprender y depurar Más fácil de transportar de un hardware a otro (Ej. UNIX, Linux, Windows-NT) Base: HAL (Hardware Abstraction Layer) Oculta los detalles específicos de la arquitectura Proporciona una interfaz de alto nivel Introducción: Conceptos y Estructura de SSOO 72 Arranque del sistema I 1. Cargador ROM Carga y ejecuta el MRB 2. Master Record Boot (sector de arranque) Carga y ejecuta el ejecutable del SO 3. Ejecutable del SO Inicializa el núcleo Arranca e inicializa los manejadores de los dispositivos existentes Crea el primer proceso (PID==1) init Introducción: Conceptos y Estructura de SSOO 73 Arranque del sistema II 4. Proceso init Ejecuta scripts del nivel (rc.#) Se lanzan los servidores Sigue el guión inittab Crea un proceso login por terminal 5. Proceso login Autentifica el acceso de usuarios al sistema Crea un shell (intérprete de mandatos) Temario 1. Introducción 2. Procesos 3. Interbloqueos 4. Gestión de Memoria 5. Administración de Sistemas 6. Entrada/Salida 7. Sistemas de Ficheros 8. Protección y Seguridad 9. Introducción a los SSOO Distribuidos Introducción: Conceptos y Estructura de SSOO 74 Introducción: Conceptos y Estructura de SSOO 75