3. multiprogramados1960 CTSS OS/360 Sistemas de tiempo compartido 1970 MULTICS UNIX Primeros sistemas Unix CP/M VMS 1980 Sistemas para PC MS DOS MAC OS 1990 OS/2 Linux Windows Windows NT 2000 2 Sistemas Operativos I
5. pre historia Sistemas Operativos I 4 generación de computadoras Años 40. Primeras computadoras. No existen sistemas operativos. Todos los trabajos se ejecutan en serie.
6. primera generación (años 50) Sistemas Operativos I 5 generación de computadoras Los trabajos siguen ejecutándose en serie. Se procesan los trabajos por lotes. Se dispone de rutinas de E/S. Se usan mecanismos rápidos para pasar de un trabajo al siguiente. Recuperación del sistema si un trabajo acaba en error. Lenguaje de control de trabajos para especificar los recursos a utilizar y las operaciones a realizar en cada trabajo.
7. segunda generación (años 60) Sistemas Operativos I 6 generación de computadoras Aparece el concepto de multiprogramación. Se construyen los primeros multiprocesadores. Sistemas de tiempo compartido. Planificación del CPU en rodajas. Primeros sistemas de tiempo real.
8. tercera generación (años 70) Sistemas Operativos I 7 generación de computadoras Sistemas de propósito general. Procesamiento por lotes. Multiprogramación. Tiempo compartido. Modo multiprocesador. Aparición de los sistemas UNIX y MVS.
9. cuarta y quinta generación (años 80 a la actualidad) Sistemas Operativos I 8 generación de computadoras Procesamiento distribuido. Se desarrollan los sistemas operativos para computadores personales (MS-DOS y sistemas Windows). Aparecen los sistemas operativos de tiempo real. Se desarrollan los primeros sistemas operativos distribuidos. Middlewares. POSIX y Win32.
10. historia anécdotas Los sistemas operativos han estado estrechamente vinculados a la arquitectura de las computadoras en los que se ejecuta. La primera computadora digital verdadera fue diseñada por el matemático inglés Charles Babbage (1792-1871): Se trataba de una “máquina analítica” totalmente mecánica que nunca logro que funcionara correctamente. Babbage se dio cuenta de que necesitaría software para su máquina y contrato a Ada Lovelace como la primera programadora de la historia. 9 Sistemas Operativos I
11. historia anécdotas Primeros sistemas (1945-1955) Howard Aiken (Harvard), John Von Neumann (Princeton) Konrad Zuse (Alemania) lograron construir máquinas calculadoras con tubos de vacío. Eran máquinas muy voluminosas ocupaban habitaciones completas con decenas de miles de tubos de vacío. Un solo grupo de persona diseñaba, construía, operaba y mantenía cada máquina. Los programas se almacenaban en tableros de conmutación y posteriormente en tarjetas perforadas. Modo de operación: “handson”, el usuario hace las veces de operador delante de la consola y tiene el control total sobre la máquina. No existe un sistema operativo como tal. Se dispone de software como: cargadores, compiladores, bibliotecas con manejadores de dispositivo. Existe un mala utilización de recursos: CPU y E/S. Se trata de máquinas muy caras donde era importante maximizar el rendimiento de la CPU. Prácticamente todos los problemas eran cálculos numéricos directos como las tablas de senos y cosenos. 10 Sistemas Operativos I
12. modos de operación sistemas por lotes simples Modo de operación: Contratación de un operador profesional. Ausencia de interacción directa usuario-máquina. El programador ya no opera delante de la máquina. Agrupación por lotes de trabajos similares (igual compilador) con requisitos semejantes. Esto reduce el tiempo de preparación. Secuenciación automática de trabajos con tarjetas de control. El usuario proporciona las cintas ó tarjetas al operador con el programa a ejecutar, el operador no puede depurar programas incorrectos, de modo que en caso de error en el programa se hace un volcado de la memoria y los registros . El programador depura a partir del volcado, iniciando luego el trabajo siguiente. Funciones del S.O.: Aparece el primer esbozo de sistema operativo: El monitor residente. 11 Sistemas Operativos I
13. ventajas y desventajas sistemas por lotes simples Ventaja de agrupar por lotes y contratar operador: Se reduce el tiempo de preparación. Problemas que persisten: El operador debe estar atento a la consola para comprobar si un trabajo ha terminado (normal o anormalmente). Efectuar el volcado necesario y luego cargar el lector de tarjetas o de cintas con el siguiente trabajo Todavía hay tiempos muertos de CPU. Secuencia automática de trabajos monitor residente Primeros sistemas operativos con procedimiento para transferir automáticamente el control de un trabajo al siguiente. Para este fin se crea un pequeño programa llamado monitor residente, el cual siempre se encuentra (reside) en memoria. Inicialmente se invocaba al monitor residente, el cual pasa transfiere el control al programa. Cuando termina devuelve el control al monitor residente el cual pasa el control al siguiente programa. Utiliza tarjetas de control $JOB (inicio de trabajo) $END (fin de trabajo). 12 Sistemas Operativos I
14.
15.
16. Spooling (Simultaneous Peripheral Operation On Line) sistemas por lotes simples El disco actúa como un buffer de E/S: Las tarjetas se leen de la lectora al disco (en lugar de a memoria directamente). Las imágenes de las tarjetas se almacenan en una tabla mantenida por el SO. Cuando se ejecuta un trabajo, el SO satisface las peticiones de lectura, leyendo del disco. Así mismo, cuando el trabajo solicita la impresión de una línea, esa línea se copia en un buffer del sistema y se escribe en el disco. Cuando el trabajo termina, la salida se imprime realmente. El spooling solapa la E/S de un trabajo con el cómputo de otros trabajos. Mientras ejecuta un trabajo, el SO: Lee el siguiente trabajo de la lectora de tarjetas y lo almacena en un área del disco (la reserva de trabajos). Envía a la impresora la salida del trabajo previo almacenada en el disco. 15 Sistemas Operativos I
17. Spooling (Simultaneous Peripheral Operation On Line) sistemas por lotes simples 16 Sistemas Operativos I DISCO Impresora Lectora Tarjetas CPU El spooling da origen a una importante estructura de datos: la reserva de trabajos. Como resultado del spooling, puede haber varios trabajos ya leídos esperando en el disco. El SO puede entonces escoger qué trabajo ejecutará a continuación, con el fin de mejorar la utilización de la CPU. Es posible la planificación de trabajos. El aspecto más importante de la planificación de trabajos es la capacidad de multiprogramar.
18. sistemas por lotes multiprogramados distribución de la memoria principal sistemas por lotes simples El spooling tiene sus limitaciones. En general, un solo usuario no puede mantener la CPU ni los dispositivos de E/S ocupados todo el tiempo. Con la multiprogramación, varios trabajos se mantienen en memoria al mismo tiempo, y la CPU se conmuta de un trabajo a otro para mejorar la utilización de la CPU y reducir el tiempo requerido para ejecutar los trabajos. 17 Sistemas Operativos I Sistema operativo Trabajo 1 Trabajo 2 Trabajo 3
19. sistemas por lotes multiprogramados alternancia en el uso del CPU sistemas por lotes simples 18 Sistemas Operativos I E/S E/S CPU CPU E/S Trabajo 1 E/S Trabajo 2 E/S E/S CPU CPU E/S E/S E/S CPU CPU Trabajo 3 Utilización CPU La idea es la siguiente: El SO mantiene varios trabajos en la memoria a la vez. Este conjunto de trabajos es un subconjunto de los que se mantienen en la reserva de trabajos. El SO escoge uno de los trabajos que está presente en la memoria y empieza su ejecución. Tarde o temprano el trabajo tendrá que esperar mientras se lleva a cabo alguna operación como el montaje de una cinta o la terminación de una operación de E/S. Entonces, el SO selecciona otro trabajo y lo ejecuta. Cuando ese trabajo necesita esperar, la CPU se conmuta a otro trabajo y así sucesivamente. En algún momento, el primer trabajo terminará su espera y recuperará la CPU. Mientras haya algún trabajo que ejecutar, la CPU nunca estará ociosa.
20. sistemas por lotes multiprogramados funciones y problemática sistemas por lotes simples Funciones El sistema operativo crece considerablemente en tamaño y aparecen nuevas funciones: Planificación de trabajos y planificación de la CPU Gestión de memoria. Problemática La ausencia de interacción usuario-máquina hace difícil la elaboración y depuración de programas Un sistema por lotes con multiprogramación necesita ciertas características adicionales del hardware del computador, la más notable a destacar es que el hardware respalde las interrupciones de E/S y el DMA. Con E/S dirigida por interrupciones y con DMA, el procesador puede enviar una orden de E/S para un trabajo y continuar con la ejecución de otro, mientras la E/S es efectuada por el controlador del dispositivo. Cuando termina la operación de E/S, el procesador es interrumpido y el control pasa a un programa de tratamiento de interrupciones del sistema operativo. El sistema operativo le pasa entonces el control a otro trabajo. Los S.O. Con multiprogramación son bastante más sofisticados en comparación con los monoprogramados o de un solo programa. Para tener varios trabajos listos para ejecutar estos deben mantenerse en memoria principal, lo que requiere una adecuada gestión de memoria. Además, si hay varios trabajos preparados para ser ejecutados, el procesador debe decidir cual de ellos va a ejecutar, lo que requiere un algoritmo de planificación de CPU. 19 Sistemas Operativos I
21. tipos de sistema sistemas de tiempo compartido La técnica básica de un sistema de tiempo compartido es tener a varios usuarios utilizando simultáneamente el sistema mediante terminales, mientras que el S.O. intercala la ejecución de cada programa de usuario en ráfagas cortas de cómputo. Tipos de sistema: Mainframes con muchas terminales que distribuyen potencia de cálculo como una especie de “central eléctrica”. Sistemas multiusuario que combinan la multiprogramación y la interacción usuario-máquina a través de terminales. 20 Sistemas Operativos I IBM 7094 ASR 33 Teletype (1967) DEC VT-100 (1978) DEC VT-52 (1975)
22. objetivos sistemas de tiempo compartido Objetivos Tiempos de respuesta aceptables. Mejora de la interfaz usuario-máquina. Multitarea: un usuario puede ejecutar varios procesos concurrentemente. Tanto la multiprogramación por lotes como el tiempo compartido utilizan multiprogramación. La diferencia radican en que: Para tiempo compartido el objetivo principal es minimizar el tiempo de respuesta, las instrucciones al sistema operativo son ordenes dadas desde la terminal. Para multiprogramación el objetivo principal es maximizar la utilización de CPU y las instrucciones al sistema operativo son ordenes dadas por un lenguaje de control de trabajos que se incluye junto con el trabajo. 21 Sistemas Operativos I
23. funciones del sistema operativo sistemas de tiempo compartido Funciones del sistema operativo: Gestión de procesos: Madura el concepto de proceso y la planificación. Gestión de memoria: Nacen y se desarrollan las técnicas de memoria virtual. Gestión de ficheros: Nace la necesidad de sistemas de ficheros “en línea” y comienzan a desarrollarse los precedentes de los sistemas de ficheros actuales. Necesidad de protección entre los diferentes usuarios y procesos existentes. 22 Sistemas Operativos I
24. Dennis Ritchie y Ken Thompson utilizando consolas Teletype en computadores PDP-11 durante el primer desarrollo de Unix Sistemas Operativos I 23 primeros sistemas Unix Tipo de sistemas: Minicomputadoras: máquinas de arquitectura más sencilla que los mainframes pero con mayor potencia de cálculo y menos usuarios. Ejemplos: PDP-1 ... PDP-7 ... PDP-11. Objetivos: Adaptar los objetivos de los sistemas de tiempo compartido (MULTICS) a arquitecturas minicomputador. Utilización de lenguajes de alto nivel para el diseño del sistema operativo. Aportaciones de Unix: Diseño sencillo y potente. Dos únicas abstracciones: proceso y fichero. Introduce el modelo de sistema de ficheros actual. Introduce un potente intérprete de órdenes. Entorno de programación muy completo. Base para el desarrollo de la primera red de computadoras y TCP/IP. Introduce el concepto de sistema abierto.
25. objetivos y características sistemas operativos para PC Objetivos: Sencillez y comodidad del usuario: contrasta con los primeros sistemas, donde los altos precios imponían la optimización en la utilización de recursos. Características primeros sistemas (MS-DOS, CP/M, ...): Poco más que un sistema de ficheros y un cargador. Características sistemas actuales (Windows, Linux, MacOS, ...): Interfaz basada en sistema de ventanas y ratón (introducida por Macintosh). Sistemas de ficheros tipo árbol (introducidos por Unix). Capacidad multitarea. Capacidad multimedia. Capacidad Plug-and-Play. Acceso a la red. Progresiva introducción de mecanismos de protección (al estilo UNIX). 24 Sistemas Operativos I C:>cd datos C:atos>cd practica C:atosractica>dir 27/03/1994 15:13 <DIR> . 27/03/1994 15:13 <DIR> .. 15/03/1990 10:54 466 ejemplo.bas 18/03/1993 08:12 1244 carta.doc 2 archivos 1710 bytes 2 directorios 5.242.880 bytes libres C:atosractica>cd.. C:atos>cd.. C:gt;format a: /s
26. sistemas paralelos tendencias actuales Sistemas multiprocesador: Sistemas con más de una CPU en estrecha comunicación Fuertemente acoplados: Los procesadores comparten el bus, el reloj, los periféricos y la memoria. La comunicación entre procesadores se lleva a cabo normalmente a través de la memoria compartida. Ventajas: Incremento del rendimiento: más trabajo en menos tiempo. Económicas: más baratos que varios equipos monoprocesador, al compartir los periféricos. Fiabilidad: Si es posible distribuir las funciones correctamente entre varios procesadores, el fallo de un procesador no detendrá el sistema, sólo lo hará más lento. Degradación gradual. Multiprocesamiento simétrico (SMP): Cada procesador ejecuta una copia idéntica del sistema operativo y estas copias se comunican entre sí cuando es necesario. La mayoría de los SO modernos soportan SMP. Multiprocesamiento asimétrico: A cada procesador se le asigna una tarea específica. Un procesador maestro controla el sistema: Planifica y asigna trabajo a los procesadores esclavos. Común en los sistemas extremadamente grandes, donde el procesamiento de la E/S es una de las actividades que más tiempo consume. 25 Sistemas Operativos I
27. sistemas distribuidos tendencias actuales Distribuir el cómputo entre varios procesadores físicos. Los procesadores (o nodos) pueden tener diferentes tamaños y funciones. Sistemas débilmente acoplados: No comparten la memoria ni el reloj. Cada procesador tiene su propia memoria local. Los procesadores se comunican entre sí a través de diversas líneas de comunicación, como buses de alta velocidad o líneas telefónicas. Ventajas: Compartición de recursos: Los usuarios de un nodo pueden utilizar los recursos (ficheros, bases de datos, impresoras …) de otros nodos. Computación más rápida: Ejecución concurrente de programas paralelos y migración de la carga. Fiabilidad: Si un nodo falla, el resto puede seguir funcionando. Comunicación: Si los nodos están conectados a través de una red de comunicaciones, los procesos y usuarios de distintos nodos pueden intercambiar información. Sistemas Operativos en Red: Un S.O. en red proporciona un entorno en el que los usuarios, quienes conocen los nodos, pueden acceder a recursos remotos ya sea iniciando una sesión en el nodo remoto o transfiriendo datos desde el nodo remoto. Sistemas Operativos Distribuidos: En un S.O. distribuido los usuarios acceden a recursos remotos del mismo modo que a los locales. La migración de datos y procesos entre nodos está bajo el control del S.O. 26 Sistemas Operativos I
28. sistemas de tiempo real tendencias actuales Se usan sistemas de tiempo real cuando los requisitos de tiempo de la operación de un procesador o del flujo de datos son estrictos. A menudo se utilizan como dispositivos de control en aplicaciones dedicadas. Un S.O. de tiempo real tiene restricciones de tiempo bien definidas. El procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallará. Hay dos tipos de sistemas de tiempo real: Críticos: Un sistema de tiempo real crítico garantiza que las tareas críticas se terminarán a tiempo. Acríticos: Un tipo menos restrictivo es el sistema de tiempo real acrítico en el que una tarea de tiempo real crítica goza de prioridad respecto a otras tareas y conserva esa prioridad hasta que se lleva a cabo. 27 Sistemas Operativos I