Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cap2

1,155 views

Published on

Published in: Education
  • Be the first to comment

Cap2

  1. 1. Capítulo 2<br />Evolución<br />1<br />Sistemas Operativos I<br />
  2. 2. hasta los sistemas para PC<br />evolución de los S.O.<br />Fortran y Cobol<br />Primeros sistemas<br />1950<br />Sistemas por lotes<br /><ul><li> simples
  3. 3. multiprogramados</li></ul>1960<br />CTSS<br />OS/360<br />Sistemas de tiempo compartido<br />1970<br />MULTICS<br />UNIX<br />Primeros sistemas Unix<br />CP/M<br />VMS<br />1980<br />Sistemas para PC<br />MS DOS<br />MAC OS<br />1990<br />OS/2<br />Linux<br />Windows<br />Windows NT<br />2000<br />2<br />Sistemas Operativos I<br />
  4. 4. Sistemas Operativos I<br />3<br />generación de computadoras<br />
  5. 5. pre historia<br />Sistemas Operativos I<br />4<br />generación de computadoras<br />Años 40.<br />Primeras computadoras.<br />No existen sistemas operativos.<br />Todos los trabajos se ejecutan en serie.<br />
  6. 6. primera generación (años 50)<br />Sistemas Operativos I<br />5<br />generación de computadoras<br />Los trabajos siguen ejecutándose en serie.<br />Se procesan los trabajos por lotes.<br />Se dispone de rutinas de E/S.<br />Se usan mecanismos rápidos para pasar de un trabajo al siguiente.<br />Recuperación del sistema si un trabajo acaba en error.<br />Lenguaje de control de trabajos para especificar los recursos a utilizar y las operaciones a realizar en cada trabajo.<br />
  7. 7. segunda generación (años 60)<br />Sistemas Operativos I<br />6<br />generación de computadoras<br />Aparece el concepto de multiprogramación.<br />Se construyen los primeros multiprocesadores.<br />Sistemas de tiempo compartido. <br />Planificación del CPU en rodajas.<br />Primeros sistemas de tiempo real.<br />
  8. 8. tercera generación (años 70)<br />Sistemas Operativos I<br />7<br />generación de computadoras<br />Sistemas de propósito general.<br />Procesamiento por lotes.<br />Multiprogramación.<br />Tiempo compartido.<br />Modo multiprocesador.<br />Aparición de los sistemas UNIX y MVS.<br />
  9. 9. cuarta y quinta generación (años 80 a la actualidad)<br />Sistemas Operativos I<br />8<br />generación de computadoras<br />Procesamiento distribuido.<br />Se desarrollan los sistemas operativos para computadores personales (MS-DOS y sistemas Windows).<br />Aparecen los sistemas operativos de tiempo real.<br />Se desarrollan los primeros sistemas operativos distribuidos.<br />Middlewares.<br />POSIX y Win32.<br />
  10. 10. historia<br />anécdotas<br />Los sistemas operativos han estado estrechamente vinculados a la arquitectura de las computadoras en los que se ejecuta.<br />La primera computadora digital verdadera fue diseñada por el matemático inglés Charles Babbage (1792-1871):<br />Se trataba de una “máquina analítica” totalmente mecánica que nunca logro que funcionara correctamente.<br />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.<br />9<br />Sistemas Operativos I<br />
  11. 11. historia<br />anécdotas<br />Primeros sistemas (1945-1955)<br />Howard Aiken (Harvard), John Von Neumann (Princeton) Konrad Zuse (Alemania) lograron construir máquinas calculadoras con tubos de vacío. <br />Eran máquinas muy voluminosas ocupaban habitaciones completas con decenas de miles de tubos de vacío. <br />Un solo grupo de persona diseñaba, construía, operaba y mantenía cada máquina.<br />Los programas se almacenaban en tableros de conmutación y posteriormente en tarjetas perforadas.<br />Modo de operación:<br />“handson”, el usuario hace las veces de operador delante de la consola y tiene el control total sobre la máquina.<br />No existe un sistema operativo como tal. Se dispone de software como: cargadores, compiladores, bibliotecas con manejadores de dispositivo.<br />Existe un mala utilización de recursos: CPU y E/S.<br />Se trata de máquinas muy caras donde era importante maximizar el rendimiento de la CPU.<br />Prácticamente todos los problemas eran cálculos numéricos directos como las tablas de senos y cosenos.<br />10<br />Sistemas Operativos I<br />
  12. 12. modos de operación<br />sistemas por lotes simples<br />Modo de operación:<br />Contratación de un operador profesional.<br />Ausencia de interacción directa usuario-máquina.<br />El programador ya no opera delante de la máquina.<br />Agrupación por lotes de trabajos similares (igual compilador) con requisitos semejantes.<br />Esto reduce el tiempo de preparación.<br />Secuenciación automática de trabajos con tarjetas de control.<br />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 .<br />El programador depura a partir del volcado, iniciando luego el trabajo siguiente.<br />Funciones del S.O.:<br />Aparece el primer esbozo de sistema operativo: <br />El monitor residente.<br />11<br />Sistemas Operativos I<br />
  13. 13. ventajas y desventajas<br />sistemas por lotes simples<br />Ventaja de agrupar por lotes y contratar operador:<br />Se reduce el tiempo de preparación.<br />Problemas que persisten:<br />El operador debe estar atento a la consola para comprobar si un trabajo ha terminado (normal o anormalmente). <br />Efectuar el volcado necesario y luego cargar el lector de tarjetas o de cintas con el siguiente trabajo<br />Todavía hay tiempos muertos de CPU.<br />Secuencia automática de trabajos monitor residente<br />Primeros sistemas operativos con procedimiento para transferir automáticamente el control de un trabajo al siguiente.<br />Para este fin se crea un pequeño programa llamado monitor residente, el cual siempre se encuentra (reside) en memoria. <br />Inicialmente se invocaba al monitor residente, el cual pasa transfiere el control al programa. <br />Cuando termina devuelve el control al monitor residente el cual pasa el control al siguiente programa.<br />Utiliza tarjetas de control $JOB (inicio de trabajo) $END (fin de trabajo).<br />12<br />Sistemas Operativos I<br />
  14. 14. el monitor residente<br />sistemas por lotes simples<br />13<br />Sistemas Operativos I<br />Tratamiento de<br />interrupciones<br />Manejadores de<br />dispositivos<br />Monitor<br />Carga y<br />secuenciación<br />de trabajos<br />Intérprete del<br />lenguaje<br />de control<br />ZONA DEL<br />PROGRAMA<br />DE USUARIO<br />Distribución de la memoria principal<br />El monitor residente tiene varias partes:<br />Interprete de tarjetas de control<br />Manejadores de dispositivo de E/S del sistema.<br />Problemas:<br />Incluso en la secuencia automática de trabajos la CPU todavía tiene periodos de inactividad, debido a la diferencia de velocidad entre la computadora y los dispositivos de E/S.<br />Solución:<br />Sustituir los lectores de tarjetas e impresoras de línea por cintas. <br />Los lectores de tarjetas e impresoras operaban fuera de línea, no lo hacían en la computadora principal.<br />Para el procesamiento fuera de línea se utilizaban dos métodos:<br /><ul><li>Lectores de tarjetas, impresoras de líneas que enviaban la salida a la cinta magnética..
  15. 15. Un pequeño computador dedicado a copiar de la cinta y en ella procesamiento satélite. </li></li></ul><li>problemática<br />sistemas por lotes simples<br />Problema: <br />Baja utilización de la CPU debido a los elevados tiempos de E/S<br />Soluciones:<br />Spooling<br />Multiprogramación<br />Utilización de la CPU (UtCPU):<br />UtCPU = tiempo_CPU_ocupada / tiempo_total<br />Tipos de carga:<br />Trabajos con secuencia de ráfagas de CPU y E/S.<br />14<br />Sistemas Operativos I<br />E/S<br />E/S<br />E/S<br />E/S<br />CPU<br />CPU<br />CPU<br />CPU<br />CPU<br />
  16. 16. Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />El disco actúa como un buffer de E/S:<br />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.<br />Cuando se ejecuta un trabajo, el SO satisface las peticiones de lectura, leyendo del disco. <br />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.<br />Cuando el trabajo termina, la salida se imprime realmente.<br />El spooling solapa la E/S de un trabajo con el cómputo de otros trabajos. Mientras ejecuta un trabajo, el SO:<br />Lee el siguiente trabajo de la lectora de tarjetas y lo almacena en un área del disco (la reserva de trabajos).<br />Envía a la impresora la salida del trabajo previo almacenada en el disco.<br />15<br />Sistemas Operativos I<br />
  17. 17. Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />16<br />Sistemas Operativos I<br />DISCO<br />Impresora<br />Lectora<br />Tarjetas<br />CPU<br />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. <br />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. <br />El aspecto más importante de la planificación de trabajos es la capacidad de multiprogramar.<br />
  18. 18. sistemas por lotes multiprogramados<br />distribución de la memoria principal<br />sistemas por lotes simples<br />El spooling tiene sus limitaciones. <br />En general, un solo usuario no puede mantener la CPU ni los dispositivos de E/S ocupados todo el tiempo.<br />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.<br />17<br />Sistemas Operativos I<br />Sistema operativo<br />Trabajo 1<br />Trabajo 2<br />Trabajo 3<br />
  19. 19. sistemas por lotes multiprogramados<br />alternancia en el uso del CPU<br />sistemas por lotes simples<br />18<br />Sistemas Operativos I<br />E/S<br />E/S<br />CPU<br />CPU<br />E/S<br />Trabajo 1<br />E/S<br />Trabajo 2<br />E/S<br />E/S<br />CPU<br />CPU<br />E/S<br />E/S<br />E/S<br />CPU<br />CPU<br />Trabajo 3<br />Utilización<br />CPU<br />La idea es la siguiente: <br />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.<br /> El SO escoge uno de los trabajos que está presente en la memoria y empieza su ejecución. <br />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.<br />En algún momento, el primer trabajo terminará su espera y recuperará la CPU. <br />Mientras haya algún trabajo que ejecutar, la CPU nunca estará ociosa.<br />
  20. 20. sistemas por lotes multiprogramados<br />funciones y problemática<br />sistemas por lotes simples<br />Funciones<br />El sistema operativo crece considerablemente en tamaño y aparecen nuevas funciones:<br />Planificación de trabajos y planificación de la CPU<br />Gestión de memoria.<br />Problemática<br />La ausencia de interacción usuario-máquina hace difícil la elaboración y depuración de programas<br />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.<br />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.<br /> 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. <br />El sistema operativo le pasa entonces el control a otro trabajo.<br />Los S.O. Con multiprogramación son bastante más sofisticados en comparación con los monoprogramados o de un solo programa.<br />Para tener varios trabajos listos para ejecutar estos deben mantenerse en memoria principal, lo que requiere una adecuada gestión de memoria. <br />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. <br />19<br />Sistemas Operativos I<br />
  21. 21. tipos de sistema<br />sistemas de tiempo compartido<br />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. <br />Tipos de sistema:<br />Mainframes con muchas terminales que distribuyen potencia de cálculo como una especie de “central eléctrica”.<br />Sistemas multiusuario que combinan la multiprogramación y la interacción usuario-máquina a través de terminales.<br />20<br />Sistemas Operativos I<br />IBM 7094 <br />ASR 33 Teletype (1967) <br />DEC VT-100 (1978)<br />DEC VT-52 (1975)<br />
  22. 22. objetivos<br />sistemas de tiempo compartido<br />Objetivos<br />Tiempos de respuesta aceptables.<br />Mejora de la interfaz usuario-máquina.<br />Multitarea: un usuario puede ejecutar varios procesos concurrentemente.<br />Tanto la multiprogramación por lotes como el tiempo compartido utilizan multiprogramación. <br />La diferencia radican en que: <br />Para tiempo compartido el objetivo principal es minimizar el tiempo de respuesta, las instrucciones al sistema operativo son ordenes dadas desde la terminal.<br />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.<br />21<br />Sistemas Operativos I<br />
  23. 23. funciones del sistema operativo<br />sistemas de tiempo compartido<br />Funciones del sistema operativo:<br />Gestión de procesos: <br />Madura el concepto de proceso y la planificación.<br />Gestión de memoria: <br />Nacen y se desarrollan las técnicas de memoria virtual.<br />Gestión de ficheros: <br />Nace la necesidad de sistemas de ficheros “en línea” y comienzan a desarrollarse los precedentes de los sistemas de ficheros actuales.<br />Necesidad de protección entre los diferentes usuarios y procesos existentes.<br />22<br />Sistemas Operativos I<br />
  24. 24. Dennis Ritchie y Ken Thompson utilizando consolas Teletype en computadores PDP-11 durante el primer desarrollo de Unix<br />Sistemas Operativos I<br />23<br />primeros sistemas Unix<br />Tipo de sistemas:<br />Minicomputadoras: máquinas de arquitectura más sencilla que los mainframes pero con mayor potencia de cálculo y menos usuarios.<br />Ejemplos: PDP-1 ... PDP-7 ... PDP-11.<br />Objetivos:<br />Adaptar los objetivos de los sistemas de tiempo compartido (MULTICS) a arquitecturas minicomputador.<br />Utilización de lenguajes de alto nivel para el diseño del sistema operativo.<br />Aportaciones de Unix:<br />Diseño sencillo y potente. Dos únicas abstracciones: proceso y fichero.<br />Introduce el modelo de sistema de ficheros actual.<br />Introduce un potente intérprete de órdenes.<br />Entorno de programación muy completo.<br />Base para el desarrollo de la primera red de computadoras y TCP/IP.<br />Introduce el concepto de sistema abierto.<br />
  25. 25. objetivos y características<br />sistemas operativos para PC<br />Objetivos:<br />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.<br />Características primeros sistemas (MS-DOS, CP/M, ...):<br />Poco más que un sistema de ficheros y un cargador.<br />Características sistemas actuales (Windows, Linux, MacOS, ...):<br />Interfaz basada en sistema de ventanas y ratón (introducida por Macintosh).<br />Sistemas de ficheros tipo árbol (introducidos por Unix).<br />Capacidad multitarea.<br />Capacidad multimedia.<br />Capacidad Plug-and-Play.<br />Acceso a la red.<br />Progresiva introducción de mecanismos de protección (al estilo UNIX).<br />24<br />Sistemas Operativos I<br />C:>cd datos<br />C:datos>cd practica<br />C:datospractica>dir<br />27/03/1994 15:13 <DIR> .<br />27/03/1994 15:13 <DIR> ..<br />15/03/1990 10:54 466 ejemplo.bas<br />18/03/1993 08:12 1244 carta.doc<br />2 archivos 1710 bytes<br />2 directorios 5.242.880 bytes libres<br />C:datospractica>cd..<br />C:datos>cd..<br />C:>format a: /s<br />
  26. 26. sistemas paralelos<br />tendencias actuales<br />Sistemas multiprocesador:<br />Sistemas con más de una CPU en estrecha comunicación<br />Fuertemente acoplados:<br />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.<br />Ventajas:<br />Incremento del rendimiento: más trabajo en menos tiempo.<br />Económicas: más baratos que varios equipos monoprocesador, al compartir los periféricos.<br />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.<br />Multiprocesamiento simétrico (SMP):<br />Cada procesador ejecuta una copia idéntica del sistema operativo y estas copias se comunican entre sí cuando es necesario.<br />La mayoría de los SO modernos soportan SMP.<br />Multiprocesamiento asimétrico:<br />A cada procesador se le asigna una tarea específica. <br />Un procesador maestro controla el sistema: <br />Planifica y asigna trabajo a los procesadores esclavos.<br />Común en los sistemas extremadamente grandes, donde el procesamiento de la E/S es una de las actividades que más tiempo consume.<br />25<br />Sistemas Operativos I<br />
  27. 27. sistemas distribuidos<br />tendencias actuales<br />Distribuir el cómputo entre varios procesadores físicos.<br />Los procesadores (o nodos) pueden tener diferentes tamaños y funciones.<br />Sistemas débilmente acoplados:<br />No comparten la memoria ni el reloj. <br />Cada procesador tiene su propia memoria local. <br />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.<br />Ventajas:<br />Compartición de recursos: Los usuarios de un nodo pueden utilizar los recursos (ficheros, bases de datos, impresoras …) de otros nodos.<br />Computación más rápida: Ejecución concurrente de programas paralelos y migración de la carga.<br />Fiabilidad: Si un nodo falla, el resto puede seguir funcionando. <br />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.<br />Sistemas Operativos en Red:<br />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.<br />Sistemas Operativos Distribuidos:<br />En un S.O. distribuido los usuarios acceden a recursos remotos del mismo modo que a los locales. <br />La migración de datos y procesos entre nodos está bajo el control del S.O.<br />26<br />Sistemas Operativos I<br />
  28. 28. sistemas de tiempo real<br />tendencias actuales<br />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.<br />A menudo se utilizan como dispositivos de control en aplicaciones dedicadas.<br />Un S.O. de tiempo real tiene restricciones de tiempo bien definidas. <br />El procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallará.<br />Hay dos tipos de sistemas de tiempo real: <br />Críticos: <br />Un sistema de tiempo real crítico garantiza que las tareas críticas se terminarán a tiempo.<br />Acríticos:<br />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. <br />27<br />Sistemas Operativos I<br />

×