TEMA 1. Introducción a los sistemas operativos Contenidos: 1.1 Sistemas Operativos: Objetivos y Funciones El Sistema Operativo como Interfaz Usuario/Computador El Sistema Operativo como gestor de recursos Motivos para la Evolución de los Sistemas Operativos 1.1 Evolución de los sistemas Operativos Procesamiento en Serie (serial processing) Sistemas por Lotes (simple batch systems) Sistemas de tiempo compartido (time-sharing systems) Sistemas distribuidos Sistemas en tiempo real Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 1 TEMA 1. Introducción a los sistemas operativos Bibliografía • • W. Stallings. Sistemas Operativos, 2ª ed. [Tema 2] A. Silberschatz, P. B. Galvin. Sistemas Operativos. 5ª ed. [Tema 1] Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 2 1.1 Sistemas Operativos: Objetivos y Funciones Definición de Sistema Operativo “Un Sistema Operativo es un programa que actúa como interfaz entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas”. [Stallings 96] Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 3 1.1 Sistemas Operativos: Objetivos y Funciones Funciones y objetivos de los sistemas operativos: • Comodidad Acerca el sistema al usuario facilitando su uso • Eficiencia Uso de los recursos de modo eficiente • Capacidad de Evolución Construido de modo que permita una evolución para incorporar nuevas funciones en un futuro. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 4 1.1 Sistemas Operativos: Objetivos y Funciones • Comodidad/conveniencia de uso • Eficiencia – Los recursos han de aprovecharse eficientemente – El SO no debe suponer una gran sobrecarga • Control de la ejecución de los programas Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 5 1.1 Sistemas Operativos: Objetivos y Funciones Interfaz Usuario/Máquina Usuario Final Programas de Aplicación Utilidades Programador Diseñador del Sistema Operativo Sistema Operativo Hardware de la Computadora [Stallings 96] Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 6 1.1 Sistemas Operativos: Objetivos y Funciones A que áreas da servicio el sistema operativo • Creación de Programas • Ejecución de Programas • Acceso a dispositivos I/O • Acceso controlado a ficheros • Acceso al sistema • Detección de errores y respuesta • Información y Contabilidad Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 7 1.1 Sistemas Operativos: Objetivos y Funciones Sistema Operativo como gestor de Recursos • • • • • Ejecución de programas Acceso a dispositivos Manipulación de ficheros y datos Detección y respuesta a errores Protección Singularidad: • Sistema de control no externo • El sistema operativo es un programa que se ejecuta en el procesador • El S.O. devuelve el control a otros programas y debe esperar a que el procesador vuelva a darle el control Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 8 1.2 Evolución de los Sistemas Operativos Motivos para la evolución de los S.O. • Actualizaciones HW y nuevos tipos de HW. • Nuevos servicios. Nuevas demandas. • Resolver errores. Bugs. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 9 1.2 Evolución de los Sistemas Operativos •Un poco de Historia... Procesamiento en Serie Sistemas por Lotes – Monitor residente – Almacenamiento temporal Multiprogramación Sistema de tiempo compartido Sistemas en tiempo real Sistemas distribuidos Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 1940−1950 1950−1960 1960−1975 1975−1990 1990− 10 1.2 Evolución de los Sistemas Operativos Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 11 1.2 Evolución de los Sistemas Operativos Procesamiento en Serie • Primeros sistemas (Años 1945-1955) – Sin Sistema Operativo. Interactúan directamente con el HW – Grandes Ordenadores (ENIAC 1946 – 180m2) – Compuestos por válvulas de vacío – Programas en código máquina, directamente con el HW – Aplicaciones: cálculo numérico sencillo, tablas de senos y cosenos . . . • Comunicación con la máquina: – Panel de programación (displays y switches) – Dispositivos de entrada: consola con interruptores manuales – Dispositivos de salida: Bombillas de luz Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 12 1.2 Evolución de los Sistemas Operativos Procesamiento en Serie • Año 1950 • Aparecen nuevos dispositivos de entrada y salida: – Tarjetas perforadas e Impresoras • Aparecen los cargadores, los primeros lenguajes y librerías comunes • Comunicación con la máquina: – Dispositivos de entrada: lector de tarjetas con el programa – Dispositivos de salida: impresora – Dispositivo de gestión: consola • Los programas eran cargadas manualmente en la memoria por el operario (tarjetas) • La activación de los programas y recogida de datos se realizaba directamente desde la memoria del ordenador mediante una consola Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 13 1.2 Evolución de los Sistemas Operativos Procesamiento en Serie Ventajas: • Interactivo (los usuarios obtienen respuesta inmediata) Desventajas: • Sistema monousuario/monopuesto • Los usuarios acceden en serie a la máquina. Solamente un usuario operando la máquina en cada momento. • Máquina cara y permanece bastante tiempo ociosa, debido a que las personas son lentas. • Programación & depuración tediosas: Cada programa debe incluir código para operar periféricos: propenso a errores. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 14 1.2 Evolución de los Sistemas Operativos Procesamiento en Serie Problemas principales • Planificación: – Formularios de reserva (p.e: múltiplos de 30 min.) –Desperdicio del tiempo del computador •Tiempo de preparación: – trabajo Æ compilador Æ programa objeto Æ montaje Æ carga Æ ejecución – Cada paso podía implicar montar y desmontar cintas y/o tarjetas – Gran perdida de tiempo en la preparación – Si se produce un error el usuario debía comenzar el proceso Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 15 1.2 Evolución de los Sistemas Operativos Sistema por Lotes • Primera Generación • Problema: Máquina antiguas muy caras y permanecían bastante tiempo ociosa, debido a que las personas son lentas. –Necesidades de maximizar utilización (evitar perdidas en planificación y preparación) • Solución: – Nuevo concepto software: monitor – El usuario no accede directamente a la máquina – Un job o trabajo es un lote de tarjetas perforadas por el programador Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 16 1.2 Evolución de los Sistemas Operativos Sistema por Lotes • Operativa: – El usuario entrega los trabajos al operador – El operador agrupaba trabajos en un lote y el monitor cargaba trabajos y los ejecutaba continuamente – Los trabajos (jobs) tenían unas rutinas finales (branch) que devolvían el control al monitor cuando terminaban • Los primeros sistemas por lotes se desarrollaron: 1940-1950, General Motors, en un IBM701 1960, IBM, IBSYS en un 7090/7094 Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 17 1.2 Evolución de los Sistemas Operativos Sistema por Lotes • El monitor siempre debe estar siempre en memoria: Monitor Residente • Ofrece también un conjunto de funciones comunes como subrutinas para los programas de usuario • El monitor lee trabajos uno a uno • El control pasa al trabajo • Al terminar el trabajo devuelve el control al monitor (branch) • El resultado de cada trabajo es impreso • El monitor lee un nuevo trabajo Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 18 1.2 Evolución de los Sistemas Operativos Sistema por Lotes Planificación de trabajos • Resuelto por el monitor de trabajos ¿Qué ocurre con la preparación de los trabajos? • Lenguaje de control de trabajos (JCL, Job Control Language) • Instrucciones para el monitor • Trabajo (job) incluye: Tarjetas de control + Programa + Datos • Tarjetas de control: •$JOB $FTN $LOAD $RUN $END Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 19 1.2 Evolución de los Sistemas Operativos Sistema por Lotes Disposición de la memoria con monitor residente [Stallings 96] Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 20 1.2 Evolución de los Sistemas Operativos Sistema por Lotes Ventajas: • Computador se mantiene la mayor parte del tiempo ocupado Desventajas: • No interactivo, prolongados tiempos de despacho • Procesador costoso y aún permanece ocioso debido a jobs limitados por E/S. • Procesador sobrecargado: monitor + programas de usuario • Cantidad de memoria ocupada por el monitor Las desventajas son mejoras deseadas, aun con esto la mejora respecto a los sistemas anteriores son evidentes. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 21 1.2 Evolución de los Sistemas Operativos Sistema por Lotes Características deseables • • • • Protección de memoria: no permitir que un proceso en ejecución acceda al zona de memoria del monitor Temporizador: limitar el uso del computador por trabajo Instrucciones Privilegiadas: El acceso a determinados recursos debieran ser mediante Instr. Privilegiadas ejecutadas por el monitor. Interrupciones Mejora de los tiempos de preparación de trabajos: • • Procesamiento off-line Spooling Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 22 1.2 Evolución de los Sistemas Operativos Sistema por Lotes •Procesamiento off-line – Lectora de tarjetas muy lenta – Bajo rendimiento debido a que E/S y CPU no pueden operar a la vez – Solución: procesamiento off-line de la entrada y la salida • Los trabajos se cargan desde cinta magnética (más rápida) y sus resultados también se escriben en cinta magnética – Método: •La lectura de tarjetas para su escritura en cinta y la impresión definitiva de los resultados se hacen off-line • La E/S no se puede hacer on-line porque las cintas no son dispositivos de acceso directo, pero el procesador está menos tiempo inactivo (cinta + rápida que lectoras de tarjetas) Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 23 1.2 Evolución de los Sistemas Operativos Sistema por Lotes • Ventajas del procesamiento off-line – El ordenador principal no está restringido a la velocidad de lectura de tarjetas o impresión, sólo a la velocidad de la cinta, más rápida – No se necesitan cambios en los programas de aplicación para operar off-line – Posibilidad de usar múltiples sistemas de tarjeta a cinta y cinta a impresora para una misma CPU Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 24 1.2 Evolución de los Sistemas Operativos Sistema por Lotes •Spooling (Simultaneous Peripheral Operation On Line) – Reducir los tiempos de E/S utilizando el disco como un buffer para compensar la diferencia de velocidades entre la E/S y los periféricos lentos – Para ello se usa un disco magnético (Disp. Acceso directo) – El disco actúa como un buffer de E/S – Grabación de los trabajos de entrada en disco (desde tarjetas perforadas o desde cinta) sin intervención constante de la CPU – Grabación de los datos de salida también en disco para su impresión posterior Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 25 1.2 Evolución de los Sistemas Operativos Sistema por Lotes • Pool (conjunto) de trabajos – Los trabajos se escriben en disco • La ubicación de cada trabajo en disco es registrada por el SO – Una vez finalizado un trabajo, el SO puede seleccionar (planificar) el siguiente a ejecutar • Gracias a que el disco es un dispositivo de acceso directo Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 26 1.2 Evolución de los Sistemas Operativos Sistema por Lotes con Multiprogramación • Año 1960 – 1970 Máquinas muy caras y la ocupación de la CPU es pequeña por las esperas de E/S * •Objetivo: Disminuir el tiempo de espera de la CPU ejecutando simultáneamente varias tareas • Solución: Mientras una tarea espera E/S otra tarea puede ejecutarse en el procesador • Si hay espacio en memoria para: Monitor + 2 o más prog. Æ Programa 1 (ops. E/S) Æ Programa 2 (paso a ejecución) Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 27 1.2 Evolución de los Sistemas Operativos Sistema por Lotes con Multiprogramación •Concepto: Multiprogramación o Multitarea • Es el punto central de los Sistemas Operativos Modernos •El monitor Residente comienza a llamarse Sistema Operativo Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 28 1.2 Evolución de los Sistemas Operativos Sistema por Lotes con Multiprogramación Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 29 1.2 Evolución de los Sistemas Operativos Sistema por Lotes con Multiprogramación (*) Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 30 1.2 Evolución de los Sistemas Operativos Sistema por Lotes con Multiprogramación • Características Hw necesarias: – Interrupciones E/S – DMA (Direct Memory Access) • Características del S.O. necesarias: – Gestión de Memoria – Planificación de procesos • No resuelto: – Hay programas y tareas que es necesario que el usuario interactue con el computador Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 31 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Año 1970. – Sistemas por lotes son bastante eficientes, pero no permiten al usuario interactuar con el computador – Hoy en día la interacción es imprescindible • Objetivo Que varios usuarios compartan la máquina y puedan interactual con el computador. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 32 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Técnica A cada usuario se le da un trozo de tiempo (quatum) de procesador n usuario Æ 1/n de tiempo por usuario • Consecuencia El tiempo de reacción humano hace que el usuario perciba que disfruta del 100% del tiempo • Los usuarios acceden al sistema mediante terminales • Requisito Hw adicional: Interrupciones de Tiempo (pulsos de Reloj) Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 33 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Diferencias entre Multiprogramación por Lotes y el Tiempo compartido: Multiprogramación por Lotes Tiempo Compartido Objetivo principal Maximizar uso del procesador Minimizar tiempos de respuesta Origen de las instrucciones al S.O JLC Ordenes lanzadas desde el terminal • Primeros sistemas: CTSS (Compatible Time-Sharing System) en un IBM709 y IBM7094. • Tenía las siguientes características: Memoria: 32K palabras de 36bits Monitor: 5K Programas: 27K restantes Interrupciones de reloj: 0,2 sg. Numero de usuario máximo: 32 Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 34 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Inconvenientes – Es necesario almacenar el estado actual del proceso cuando se saca de ejecución – Las escrituras y lecturas en disco relentizas el cambio de trabajo activo – Para evitar muchas escrituras sólo se escribe a disco si el proceso entrante puede sobrescribir el anterior • Consecuencia: Enfoque primitivo, pero efectivo (*) • Nuevos problemas a resolver – Protección de la memoria (varios programas en memoria a la vez) – Seguridad de archivos (varios usuario en el sistema a la vez) – Contención de recursos Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 35 1.2 Evolución de los Sistemas Operativos Sistemas Distribuidos • Nueva tendencia: Distribuir cálculos entre varios procesadores • Dos posibilidades: – Sistemas fuertemente acoplados: Varios procesadores. Comparten el reloj y memoria principal. Coordinación mediante memoria compartida. – Sistemas débilmente acoplados: Cada procesador su propio reloj y memoria principal. Coordinación mediante líneas de comunicación. • Consecuencia El usuario no tiene porque conocer la ubicación física de los recursos. Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 36 1.2 Evolución de los Sistemas Operativos Sistemas Distribuidos • Razones para construir sistemas distribuidos: – Compartir recursos – Aceleración de los cálculos – Tolerancia a fallos – Comunicación entre usuarios y aplicaciones Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 37 1.2 Evolución de los Sistemas Operativos Sistemas en Tiempo Real • Se usan para el control de aplicaciones especializadas • Tienen restricciones de tiempo fijas y bien determinadas • Son muy utilizados en sistemas empotrados: UCIs, automóviles, teléfonos móviles, sistemas de control, etc. • El sistema operativo debe responder siempre dentro de los márgenes requeridos por el sistema controlado, si nos salimos de esos márgenes, tendremos que buscar otras soluciones • Existen actualmente lenguajes de programación (Ada) que nos dan grandes posibilidades para controlar procesos en tiempo real 38 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Sistema Operativo UNIX – A partir del CTSS se diseña el MULTICS (MIT, Bell Labs, General Electric) • Pensado para cientos de usuarios • Resultó demasiado ambicioso – Ken Thompson, de Bell Labs, desarrolla una versión monousuario, en ensamblador: UNICS • Se unen all proyecto Brian Kernighan y Denis Ritchie • Se reescribe en un lenguaje propio: B • Ritchie rediseña el lenguaje y lo llama C • Se reescribe Unix en C • Se distribuye gratuitamente a las universidades • Se estandariza con el nombre POSIX Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 39 1.2 Evolución de los Sistemas Operativos Sistemas de Tiempo Compartido • Computadores personales (1980-1990) – Dos tipos: • Estaciones de trabajo: UNIX y redes • PCs para oficinas y hogares: MS-DOS, luego Windows – Software fácil de usar: entornos gráficos de ventanas • Hasta Hoy (1991-hoy) – los SO generales proporcionan conexión a la red – se populariza el software libre (Gnu) – dos grandes familias: Windows y Unix/Linux surgen otros niveles diferentes al SO: Java, .net Arquitectura de Computadores Automática y Computación. Ingeniería Telemática Diego Martínez Pomares 40