Tema 2 Introducción a los Sistemas Operativos Tema 2 1 Contenido Definición y necesidad de los SSOO. Evolución de los SSOO. Logros Principales. Llamadas al sistema.(*) Partes y Estructura.(*) UNIX. Stallings: 2.1 – 2.4, 2.6, 2.7 (*)Tanenbaum: 1.6, 1.7 A.Ortigosa Tema 2 2 1 Sistemas operativos Programa que controla la ejecución de los programas de aplicación: Acceso eficiente a recursos compartidos limitados Actúa como interfaz entre las aplicaciones del usuario y el hardware: Simplifica la labor del programador A.Ortigosa Tema 2 3 Objetivos de los sistemas operativos Comodidad: Hace que un computador sea más cómodo de utilizar. Abstracción, Factores humanos Eficiencia: Permite un uso eficiente de los recursos de un sistema informático. Concurrencia Capacidad de evolución: A.Ortigosa Permite el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema sin interferir en los servicios. Modularidad Tema 2 4 2 Sistemas operativos Funciona de la misma manera que el software normal de un computador. Es un programa ejecutado por el procesador. El sistema operativo abandona el control del procesador para ejecutar otros programas. A.Ortigosa Tema 2 5 Núcleo Parte del sistema operativo que se encuentra en la memoria principal. Incluye las funciones utilizadas con más frecuencia. Carece de estructura También denominado kernel (DOS, Windows , Unices). Microkernel o micronúcleo (WNT,W2K): En este caso, el S.O. se ocupa sólo de unas pocas funciones (gestión de memoria, procesos, IPC), reduciendo el núcleo a su mínima expresión. El resto de funciones pasan a estar en el espacio de usuario. A.Ortigosa Tema 2 6 3 Sistema informático Memoria Software del sistema operativo Dispositivos de E/S Controlador de E/S Impresoras, teclados, cámaras digitales,etc. Controlador de E/S Introducción a los Sistemas Operativos Programas y datos Controlador de E/S Procesador Procesador Almacenamiento SO Programas Datos Tema 2 7 Niveles de un sistema informático Usuario final Programador Programas de aplicación Diseñador del sistema operativo Utilidades Sistema operativo Hardware del computador A.Ortigosa Figura 2.1. Niveles y vistas de un sistema informático. Tema 2 8 4 Servicios que ofrece el sistema operativo (I) Creación de programas: Editores, compiladores y depuradores (debuggers). Ejecución de programas: Administra: carga en memoria, prepara recursos,… Acceso a los dispositivos de E/S: Proporciona interfaz de acceso, ocultando detalles y señales de control Acceso controlado a los archivos: Naturaleza del dispositivo,estructura de datos,… Acceso al sistema: Acceso, protección a recursos, etc. A.Ortigosa Tema 2 9 Servicios que ofrece el sistema operativo (II) Detección y respuesta a errores: Errores internos y externos del hardware. Error de memoria. Fallo de dispositivos. Errores de software. Desbordamiento aritmético. Acceso a una posición prohibida de memoria. Incapacidad del sistema operativo para satisfacer la solicitud de una aplicación. A.Ortigosa Tema 2 10 5 Servicios que ofrece el sistema operativo (III) Contabilidad: Recoger estadísticas. Supervisar su rendimiento. Utilizado para los usuarios con cuotas. A.Ortigosa Tema 2 11 Evolución de un sistema operativo Actualizaciones del hardware y nuevos tipos de hardware. Nuevos servicios. Correcciones. A.Ortigosa Tema 2 12 6 Evolución del Hardware CPU (MHz) RAM Disco Red (Bwth) # bits direcc. # usuarios/máquina Precio 1981 10 128 Kb 10 Mb 9600 b/s 16 Decenas 5M 2007 3000 4Gb 500Gb 155 Mb/s 64 1 0.002 M factor 300 32000 50000 15000 4 0.1 0.0004 - La historia de los SO’s esta ligada a la rápida evolución del hardware (€ decreciente, con el nivel de integración) y a condicionantes sociales (encarecimiento del precio mano de obra): ADAPTACIÓN A.Ortigosa Tema 2 13 Evolución de los sistemas operativos Proceso en serie (Open Shop): No había sistema operativo (sólo Hw). Las operación con estas máquinas era desde una consola consistente en unos indicadores luminosos, unos conmutadores, un dispositivo de entrada y una impresora (ej: tarjetas perforadas). PROBLEMAS: A.Ortigosa Planificación (reserva previa) y temporización (t.máximo). Preparación: incluía cargar un compilador, un programa fuente, salvar el programa compilado y, por último, cargar y montar el programa objeto. Usaban cintas y paquetes de tarjetas. Tema 2 14 7 A.Ortigosa Tema 2 15 EJEMPLO: IBM 701 [Rickman 83] Características de los 19 sistemas vendidos: • 12 micras/ciclo (80 KHz) • 15000 instr/s • 3.5 horas entre fallos! • $300 (1954) por hora de uso • Slots de 15 minutos! (>10 minutos de setup) [Rickman 83] “The IBM 701 Computer at the General Motors Research Laboratories” G. Rickman. IEEE Annals of the History of Computing 5,2 (April 1983), 210-212 A.Ortigosa Tema 2 16 8 Evolución de los sistemas operativos Sistemas sencillos de procesamiento por lotes. Monitor: – Software que controla los programas que están en funcionamiento. – Residente en memoria principal, listo para ser ejecutado en cuando se necesite. – Usuario entrega cinta o tarjeta. Los trabajos se agrupan por lotes y se ubican en dispositivo de entrada del monitor. – Monitor carga en memoria y ejecuta lotes. – El programa vuelve al monitor al terminar su procesamiento y éste carga siguiente. A.Ortigosa Tema 2 17 Lenguaje de control de trabajos (JCL) Cada usuario entregaba al operador las tarjetas de programa con otras tarjetas de control que codificaban las acciones requeridas. Tipo especial de lenguaje de programación. Empleado para dar instrucciones al monitor: Qué compilador utilizar. Dónde copiar el objeto compilado Qué datos utilizar. Todavía utilizado en grandes sistemas de computación científica no-interactivos A.Ortigosa Tema 2 18 9 Ejemplo (JCL) $ USER $ JOB $ FTN Instrucciones en Fortran $ LOAD $ RUN Datos $ END } } A.Ortigosa Tema 2 19 Características del hardware Protección de memoria: No permite modificar la zona de memoria en la que está el monitor. Temporizador: Previene que un solo trabajo monopolice el sistema. Si se excede, interrupción y vuelta al monitor. Instrucciones privilegiadas Sólo permitidas al monitor. Ej: Operaciones E/S. Interrupciones A.Ortigosa Tema 2 20 10 Problemas Falta de interacción con el proceso Dificultad para debugging. Ineficiencia en el uso de los recursos del sistema: Procesador: esperas por E/S Dispositivos: de uno en uno A.Ortigosa Tema 2 21 Debugging A.Ortigosa Tema 2 22 11 Monoprogramación Antes de continuar, el procesador debe esperar hasta que la instrucción de E/S termine. Programa A Ejecutar Esperar Ejecutar Esperar Tiempo (a) Monoprogramación A.Ortigosa Tema 2 23 Multiprogramación Cuando un trabajo necesite esperar una E/S, el procesador puede cambiar al otro trabajo. Programa A Programa B Combinados Esperar Ejecutar Esperar Ejecutar Ejecutar Esperar Ejecutar A Ejecutar B Esperar Esperar Ejecutar Ejecutar A Ejecutar B Esperar Esperar Tiempo (b) Multiprogramación con dos programas A.Ortigosa Tema 2 24 12 Multiprogramación Programa A Ejec. Programa B Esperar Programa C Combinados Ejec. Esperar Ejec. Ejec. Ejec. A B Ejec. Esperar Ejec Esperar Esperar Esperar Ejec Esperar Ejec. C. Esperar Ejec. Ejec. A B Ejec. C. Esperar Esperar Tiempo (c) Multiprogramación con tres programas A.Ortigosa Tema 2 25 Requisitos (I): Cambio de Contexto MEMORIA Sistema Operativo Proceso 1 Proceso 2 Proceso 3 (...) Proceso m A.Ortigosa CPU Contador de Programa (CP) Acumulador (AC) Registro A (RA) ... Registro Z (RZ) Pila (P) Tema 2 Proceso 1 CP = CP1 RA = RA1 … RZ = RZ1 Comienzo Pila = Pi1 Profundidad Pila= Ph1 Proceso 2 CP = CP2 RA = RA2 … RZ = RZ2 Comienzo Pila = Pi2 Profundidad Pila= Ph2 26 13 Requisitos (II): Intercambio DISCO MEMORIA Sistema Operativo Programa 1 Programa 2 Proceso 1 Programa 3 Programa 4 Programa 5 1 Proceso 2 A.Ortigosa CPU Proceso 3 (...) (...) Programa n 2 Proceso m Tema 2 27 Ejemplo: CTSS (MIT) - 1961 TRABAJO 3 TRABAJO 1 TRABAJO 2 Libre TRABAJO 1 Libre Libre TRABAJO 4 (TRABAJO 1) (TRABAJO 2) (TRABAJO 2) TRABAJO 2 (TRABAJO 2) Libre Libre Libre Figura 2.7. Operación CTSS (Sistema Compatible de Tiempo Compartido). A.Ortigosa Tema 2 28 14 Ejemplo TRABAJO1 Tipo de trabajo TRABAJO2 Cálculo intensivo E/S intensiva TRABAJO3 E/S intensiva Duración 5 min. 15 min. 10 min. Memoria exigida 50 K 100 K 80 K ¿Necesita disco? No No Sí ¿Necesita terminal? No Sí No No Sí ¿Necesita impresora? No A.Ortigosa Tema 2 29 Efectos de la multiprogramación Monoprogramación Multiprogramación Uso del procesador 22% 43% Uso de la memoria 30% 67% Uso del disco 33% 67% Uso de la impresora 33% 67% Tiempo transcurrido 30 min. 15 min. Tasa de productividad 6 trabajos/hora Tiempo medio de respuesta 18 min. A.Ortigosa Tema 2 12 trabajos/hora 10 min. 30 15 Tiempo compartido Utiliza la multiprogramación para gestionar varias tareas interactivas. El tiempo del procesador se comparte entre los diversos usuarios. Múltiples usuarios acceden simultáneamente al sistema por medio de terminales. A.Ortigosa Tema 2 31 Multiprogramación por lotes frente a tiempo compartido Multiprogramación por lotes Tiempo compartido Objetivo principal Maximizar la utilización del procesador Minimizar tiempo de respuesta Origen de las instrucciones al sistema operativo Instrucciones de un lenguaje de control de trabajos incluidas en el trabajo Órdenes dadas en el terminal A.Ortigosa Tema 2 32 16 ¡PARA MEMORIZAR! “Computers in the future may weigh no more than 1.5 tons” Popular Mechanics (1949) “I think there is a world market for maybe five computers” Thomas Watson. CEO de IBM (1943) “640K ought to be enough for anybody” Bill Gates (1981) A.Ortigosa Tema 2 33 Logros principales Los procesos. La gestión de memoria. La seguridad y la protección de la información. La planificación y la gestión de recursos. La estructura del sistema. A.Ortigosa Tema 2 34 17 Procesos Un programa en ejecución. Una instancia de un programa funcionando en un computador. La entidad que puede ser asignada al procesador y ejecutada por él. Una unidad de actividad caracterizada por un sencillo tratamiento de ejecución secuencial, un estado actual, y asociada a un conjunto de recursos del sistema. A.Ortigosa Tema 2 35 Dificultades en el diseño del sistema software Sincronización incorrecta: Asegurar que un proceso que espera el dispositivo de E/S reciba la señal (¡y no por duplicado!). Fallos de exclusión mutua Sólo una rutina hace transacción en un momento det. Funcionamiento no determinista del programa: El programa debe depender de una sola entrada y no de las zonas comunes de memoria. Interferencias. Interbloqueos A.Ortigosa Dependencia mutua Tema 2 36 18 Proceso Formado por tres componentes: Un programa ejecutable. Los datos asociados necesarios para el programa. El contexto de ejecución del programa. Toda la información que el sistema operativo necesita para administrar el proceso (contenidos de registros del procesador, prioridad, si espera E/S…). A.Ortigosa Tema 2 37 Proceso Memoria principal Registros del procesador Índice de proceso PC Lista de procesos Base Límite Otros registros Contexto Proceso A Datos Programa (código) Contexto Proceso B Datos Programa (código) A.Ortigosa Figura 2.8. Implementación típica de los procesos. Tema 2 38 19 Gestión de memoria Aislamiento del proceso. Asignación y gestión automáticas. Soporte para la programación modular. Protección y control de acceso. Almacenamiento a largo plazo. A.Ortigosa Tema 2 39 Sistema de archivos Incorpora un almacenamiento a largo plazo. La información se almacena en unos objetos denominados archivos. A.Ortigosa Tema 2 40 20 Memoria virtual Permite a los programas direccionar la memoria desde un punto de vista lógico. No existirá un espacio muerto entre la ejecución de los procesos sucesivos, mientras un proceso se envía al almacenamiento secundario y el proceso que le sucede es traído de éste. A.Ortigosa Tema 2 41 Sistema de paginación Permite que los procesos estén formados por varios bloques de tamaño fijo, denominados páginas. La dirección virtual está formada por un número de página y un deplazamiento dentro de la página. Cada página puede estar ubicada en un lugar cualquiera de la memoria principal. La dirección real o dirección física se utiliza en la memoria principal. A.Ortigosa Tema 2 42 21 Programa de usuario B Programa de usuario A Disco Memoria principal La memoria principal está formada por un número de marcos de longitud fija del tamaño de una página. Para ejecutar un programa, algunas o todas sus páginas tienen que estar en el operativo de la memoria principal. A.Ortigosa La memoria secundaria (disco) puede almacenar muchas páginas de longitud fija. Un programa de usuario está formado por varias páginas. Las páginas de todos los programas, incluso los del sistema están en el disco, en forma de archivos. Figura 2.9. Conceptos de memoria virtual. Tema 2 43 Direccionamiento de la memoria virtual Procesador Dirección virtual Unidad de gestión de memoria Dirección real Memoria principal Direcciónde de Dirección disco disco Memoria secundaria Figura 2.10. Direccionamiento de la memoria virtual. A.Ortigosa Tema 2 44 22 Seguridad y protección de la información Control de acceso: Regula el acceso del usuario al sistema. Control del flujo de información: Regula el flujo de datos dentro del sistema y su distribución a los usuarios. Certificación: Demuestra que el acceso y el control del flujo se llevan a cabo de acuerdo con las especificaciones. A.Ortigosa Tema 2 45 Planificación y gestión de recursos Equidad: Otorga un acceso igual y equitativo a todos los procesos. Sensibilidades diferenciales: Discrimina entre las diferentes clases de trabajos. Eficiencia: A.Ortigosa Maximiza la productividad, minimiza el tiempo de respuesta y aloja a tantos usuarios como sea posible. Tema 2 46 23 Elementos principales de un sistema operativo Sistema operativo Petición de servicio de un proceso Interrupción de un proceso Interrupción de E/S Gestor de peticiones de servicio (código) Gestor de interrupciones (código) Cola a Cola a Cola de largo corto E/S plazo plazo Planificador a corto plazo (código) Pasar el control al proceso Figura 2.11. Elementos clave para la multiprogramación de un sistema operativo. A.Ortigosa Tema 2 47 Llamadas al sistema Los procesos se comunican con el SO a través de llamadas al sistema Cada llamada al sistema desde un lenguaje de alto nivel se corresponde normalmente con un procedimiento que lee los parámetros de la llamada y los pasa al SO, con el control, mediante un TRAP. A.Ortigosa Tema 2 48 24 Llamadas al sistema … read(); … Modo Usuario Trap Table read() { … trap N_SYS_READ() … } /*Función resguardo*/ Modo Núcleo sys_read() sys_read() { /* system function */ … return; } A.Ortigosa Tema 2 49 Llamadas al sistema (a,b,c) REGISTRO(S) TRAP(P) Llamada a P(a,b,c) Código para la llamada P PROCEDIMIENTO RETURN FROM TRAP(P) DE RESPUESTA A LA LLAMADA P OK/ERROR PROGRAMA DE USUARIO REGISTRO DE ESTADO SISTEMA OPERATIVO CONTROL DATOS A.Ortigosa Tema 2 50 25 Estructura del sistema Se puede contemplar el sistema como una serie de niveles. Cada nivel lleva a cabo un determinado subconjunto de funciones. Cada nivel se basa en el nivel inferior para llevar a cabo funciones más primitivas. De este modo, se descompone un problema en un número de subproblemas más manejables. A.Ortigosa Tema 2 51 Sistemas Monolíticos Estructura (o falta de ella) más común (MS-DOS, UNIX) SO es un conjunto de procedimientos que pueden llamarse mutuamente. Compilación individual/enlace en un único objeto. No hay modos usuario/núcleo (el hardware no lo permite) PROBLEMAS: No hay ocultación de datos, difícil de modificar y depurar. A.Ortigosa Tema 2 52 26 MS-DOS MS-DOS nació con limitaciones de espacio (memoria), tiempo de desarrollo y hardware (8088 no tenía modo usuario/núcleo ni protección de memoria). Consecuencia: INESTABILIDAD (corrupción de procesos y dispositivos) Aplicaciones de usuario SO residente (Shell + núcleo) drivers MS-DOS BIOS (ROM) Dispositivos A.Ortigosa Tema 2 53 UNIX (Original) Aplicaciones de usuario Intérprete de comandos (shell) compiladores y bibliotecas del sistema Interfaz entre el shell y el núcleo (kernel) Manejo de señales Sistema de E/S Drivers terminal Sistema de ficheros Swapping Drivers del disco Asignación de CPU Paginación Memoria Virtual SO Interfaz entre el kernel y el hardware Controlador de terminal Terminales A.Ortigosa Controlador de dispositivos Unidad de disco Tema 2 Controlador de memoria Memoria física 54 27 Sistemas por capas Ejemplo, THE (1968) 5. Programas de Usuario 4. Control de E/S 3. Comunicación Operador-proceso 2. Administrador de memoria y disco Controlador de terminal, discos y cintas, memoria 1. Temporización de procesos multiprogramación terminal, discos y cintas,ymemoria física 0. Dispositivos Problema: distribución de tareas en capas, baja eficiencia Solución: arquitecturas mixtas (OS/2, NT 4.0) A.Ortigosa Tema 2 55 Máquinas Virtuales Extensión del sistema por capas, donde cada proceso tiene la ilusión de estar ejecutándose en un sistema monoprogramado. Ej: IBM VM. La ilusión se consigue mendiante planificación de CPU y de memoria virtual Proceso Núcleo Proceso Núcleo Proceso Núcleo Máquina Virtual - La Máquina virtual proporciona copias exactas del hardware subyacente Hardware A.Ortigosa Tema 2 56 28 Máquinas Virtuales Ventajas de esta filosofía: El SO (virtual) no tiene problemas de seguridad y protección de recursos compartidos (memoria, disco, periféricos), ya que se ejecuta sobre una máquina (virtual) monoprogramada. Co-existencia de distintos SSOO sobre un mismo hardware (ej. PowerPC incluye una máquina virtual (emulador) del Motorola 68000 para permitir correr ejecutables compilados para el M68000) Inconvenientes: Perdida de eficiencia en las “traducciones” Ejemplo: JAVA Virtual Machine (JVM) A.Ortigosa Tema 2 57 Modelo Cliente/Servidor Simplificación del núcleo, al mover el código correspondiente a varias funciones a capas superiores. Acceso a servicio mediante mensajes desde los procesos de usuario (clientes) a los procesos que controlan los distintos servicios (servidores) que se ejecutan en modo usuario El núcleo se limita a encauzar los mensajes Proceso Proceso Servidor Servidor Servidor Cliente Cliente de de de Procesos Memoria Archivos ... Servidor de E/S Núcleo A.Ortigosa Tema 2 Mensaje 58 29 Modelo Cliente/Servidor Facilidad de mantenimiento, debido a la modularización de los servicios. Robustez, al ejecutarse los procesos de servicio en modo usuario: un servicio puede dejar de funcionar sin que todo el sistema tenga que interrumpir Extensión natural del modelo a sistemas distribuidos Proceso Cliente Servidor Procesos Servidor Archivos Servidor Memoria Núcleo Núcleo Núcleo Núcleo Red Mensaje A.Ortigosa Tema 2 59 Jerarquía de diseño de un S.O. Nivel 13 Nombre Shell 12 Procesos de usuario Objetos Entorno de programación de usuario Procesos de usuario 11 Directorios Directorios 10 Dispositivos 9 Sistema de archivos 8 Comunicaciones Dispositvos externos como Abrir, cerrar, leer, escribir impresoras, pantallas y teclados Archivos Crear, destruir, abrir, cerrar, leer, escribir Tubos (pipes) Crear, destruir, abrir, cerrar, leer, escribir A.Ortigosa Tema 2 Ejemplos de operaciones Sentencias de un lenguaje de shell Salir, eliminar, suspender, reanudar Crear, destruir, conectar, desconectar, buscar, listar 60 30 Jerarquía de diseño de un S.O. Nivel Nombre Objetos Ejemplos de operaciones 7 Memoria virtual Segmentos, páginas Leer, escribir, traer (fetch) 6 Almacenamiento Bloques de datos, Leer, escribir, asignar, liberar secundario local canales de dispositivos Procesos primitivos Procesos primitivos, semáforos, colas de procesos listos 5 A.Ortigosa Suspender, reanudar, esperar, señalizar Tema 2 61 Jerarquía de diseño de un S.O. Nivel Nombre Objetos Ejemplos de operaciones 4 Interrupciones Programas de tratamiento de interrupciones Invocar, enmascarar, desenmascarar, reintentar 3 Procedimientos Procedimientos, pila de llamadas, visualización Marcar la pila, llamar, retornar 2 Conjunto de Evaluación de la pila, Cargar, almacenar, sumar, instrucciones intérprete de microprogramas, restar, bifurcar vectores de datos y escalares 1 A.Ortigosa Circuitos electrónicos Registros, puertas, buses, etc. Tema 2 Borrar, transferir, activar, complementar 62 31 Características de los sistemas operativos modernos Arquitectura micronúcleo: Asigna solamente una pocas funciones esenciales al núcleo. Espacios de direcciones. Comunicación entre procesos (IPC). Planificación básica. A.Ortigosa Tema 2 63 Características de los sistemas operativos modernos Multihilos: El proceso se divide en hilos que pueden ejecutarse concurrentemente. Hilo: Unidad de trabajo que se puede expedir para su ejecución. Se ejecuta secuencialmente y es interrumpible. Proceso: A.Ortigosa Un conjunto de uno o más hilos. Tema 2 64 32 Características de los sistemas operativos modernos Multiproceso simétrico (SMP): A.Ortigosa Existencia de múltiples procesadores. Estos procesadores comparten la misma memoria principal y dispositivos de E/S. Todos los procesadores pueden ejecutar las mismas funciones. Tema 2 65 Características de los sistemas operativos modernos Sistema operativo distribuido: A.Ortigosa Proporciona la ilusión de un único espacio de memoria principal y un único espacio de memoria secundaria. Utilizado para el sistema de archivos distribuido. Tema 2 66 33 Características de los sistemas operativos modernos Diseño orientado a objetos: A.Ortigosa Añade extensiones modulares a un pequeño núcleo. Permite a los programadores personalizar un sistema operativo sin romper la integridad del sistema. Tema 2 67 UNIX Hardware rodeado del sistema operativo SO llamado núcleo del sistema o kernel Equipado con servicios de usuario e interfaces A.Ortigosa Intérprete de comandos (shell) Compilador de C Tema 2 68 34 UNIX Bibliotecas y órdenes (comandos) UNIX Interfaz de llamadas al sistema Núcleo Hardware Aplicaciones escritas por el usuario Figura 2.15. Arquitectura general de UNIX A.Ortigosa Tema 2 69 Sistemas UNIX modernos System V Release 4 (SVR4) Solaris 9.x 4.4BSD Linux MacOS X A.Ortigosa Tema 2 70 35 Para la próxima clase Stallings: 3.1, 3.2, 3.3 A.Ortigosa Tema 2 71 36