La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño de Sistemas Operativos Ing. Ángel Caffa

Presentaciones similares


Presentación del tema: "Diseño de Sistemas Operativos Ing. Ángel Caffa"— Transcripción de la presentación:

1 Diseño de Sistemas Operativos Ing. Ángel Caffa
Facultad de Ingeniería Universidad ORT

2 Temario Generalidades de S.O. Gestión de procesos Memoria
Generalidades de Sistemas Operativos is a Design Digital Content & Contents mall developed by Guild Design Inc. Gestión de procesos Gestión de procesos is a Design Digital Content & ontents mall developed by Guild Design Inc. Memoria Memoria Contents mall developed by Guild Design Inc.

3 Conceptos de Seguridad
Temario Disco Disco is a Design Digital Content & Contents mall developed by Guild Design Inc. Conceptos de Seguridad Conceptos de Seguridad Contents mall developed by Guild Design Inc.

4 Bibliografía Sistemas Operativos. Deitel.
Sistemas Operativos. Peterson. Sistemas Operativos Modernos. Tanenbaum. Conceptos de Sistemas Operativos. Silberchatz-otros. The Logical Design of Operating Systems. Bic-Shaw. El Entorno de Programación Unix. Kernighan-Pike. Sistemas Operativos, diseño e implementación. Tanenbaum.

5 Aprobación del curso 2 Parciales y 1 obligatorio.
Pruebas sin material. El segundo parcial abarca todos los temas. Preguntas teóricas, ejercicios, problemas, situaciones reales. Ganancia de curso. Aprobación del curso. Examen individual, solo preguntas letra, solos.

6 Horarios Grupo Matutino Grupo Nocturno
Cada semana se ven los mismos temas con los dos grupos (recuperación).

7 Cronograma Comienzo: Lunes 15 de Marzo. Lectura obligatorio.
Preparación primer parcial (simulacro y corrección). Primer parcial. Resultados primer parcial, muestra. Entrega obligatorio. Preparación segundo parcial. Segundo parcial. Defensas obligatorio. Resultados segundo parcial y obligatorio, muestra. Consulta examen. Examen. Resultados examen, muestra.

8 El curso dentro de la formación de un informático
Arquitectura de sistemas Sistemas operativos Redes Prog. B.D. ... Administración de sistemas bajo un sistema operativo determinado Programación en un lenguaje determinado Diseño y configuración de Sistemas, servicio técnico Configuración de redes bajo un conjunto determinado de protocolos. ...

9 El curso dentro de la formación de un informático
Se trata de una asignatura básica, general, al igual que el resto de las marcadas en el bloque. Sirve de base para comprender aspectos técnicos concretos (pasados, presentes y muchas veces futuros). Marca la diferencia con los técnicos.

10 Enfoque del curso Se trata de temas clásicos dentro de la informática.
Los sistemas operativos actuales, cumplen con los modelos teóricos que se ven en el curso. Las variantes se ven en los estudios de caso.

11 Enfoque del curso Sistema operativo = Software para gestión de los
recursos del sistema Recursos críticos = CPU, memoria y disco Gestión de CPU Gestión de memoria Gestión de disco Gestión de otros recursos del sistema

12 I - Generalidades de los sistemas operativos

13 Repaso de conceptos básicos
Componentes de un sistema informático: hardware, software y gente. El hardware proporciona la capacidad bruta de cómputo, abarca todas las componentes tangibles del sistema. El software abarca los programas y datos (no tangibles). Sistema informático = conjunto de recursos. Sistemas abiertos. Esta tendencia implica componentes compatibles a nivel de hardware, software, comunicaciones, etc.

14 Repaso de conceptos básicos
Componentes de un sistema informático: hardware, software y gente. El hardware proporciona la capacidad bruta de cómputo, abarca todas las componentes tangibles del sistema. El software abarca los programas y datos (no tangibles). Sistema informático = conjunto de recursos. Sistemas abiertos. Esta tendencia implica componentes compatibles a nivel de hardware, software, comunicaciones, etc.

15 Recursos Son los componentes del sistema. El conjunto de recursos constituye la capacidad bruta de cómputo para el sistema. Ejemplos de recursos: (Micro) procesador, memoria, disco, unidad de CD, impresora, scanner, lector de barras, mouse, teclado, etc.

16 Definición de sistema operativo
16 Un sistema operativo es un conjunto de programas que administran los recursos del sistema, proporcionando y arbitrando el acceso a los mismos por parte de los usuarios del sistema.

17 Definición de SO Desglosando lo anterior, el SO:
17 Desglosando lo anterior, el SO: Está compuesto por programas. Trata el hardware como un conjunto de recursos. Puede reconocer diferentes usuarios. Administra los recursos. Permite acceso a recursos. Proporciona a usuarios una interfaz para interactuar con el sistema y sus recursos. Proporciona a otros programas una interfaz para interactuar con el sistema y sus recursos. Arbitra el acceso a recursos. Proporciona mecanismos de seguridad.

18 Además... El sistema operativo es de alguna forma el nexo entre el hardware y el software. El sistema operativo brinda al usuario un ambiente de trabajo (más cómodo que tener que resolver cada vez los problemas de bajo nivel, etc.). El sistema operativo asigna (y por lo tanto arbitra) los recursos del sistema.

19 Analogía Hardware = automóvil. Sistema operativo = conductor.
El automóvil no funciona sin el conductor. Distintos conductores logran funcionamientos diferentes para el mismo auto. El auto consta de un conjunto de recursos que constituyen su capacidad bruta de funcionamiento. El motor, la dirección, el sistema de frenos, el sistema eléctrico, etc., son los recursos.

20 Primer esquema de capas
Programas Sistema Operativo Hardware = Recursos USUARIO

21 Evolución de los SO 1822 – Charles Babbage idea una máquina diferencial mecánica que calculaba polinomios de grado <= 6 sobre Z. Totalmente diseñada, no se pudo construir. 1830 – Charles Babbage diseña una máquina analítica mecánica. No se pudo construir por la complejidad de sus piezas. Aparece conceptos de: almacenamiento en tarjetas, almacenamiento en variables (memoria), almacenamiento de un conjunto de operaciones (programa). 1896 – Primera computadora real. Censo USA, tarjetas perforadas, primer sistema de codificación. Horelitz, que luego fundaría IBM.

22 Primera generación Décadas de 1940 y 1950.
A válvula (necesidad de refrigeración), muy lentas, cuartos enteros. Los programas se introducían bit a bit con interruptores mecánicos, luego pasaban a la computadora vía tarjetas perforadas. Los resultados se expresaban a través de leds. ENIAC – Cálculo trayectorias balísticas, 1800 válvulas de vacío, 32 bits de memoria, una suma en 0,2 ms.

23 Primera generación 1951 – ENIAC I, primera computadora para uso comercial. Programas perforados en tarjetas, pero aún no habían nada parecido a un sistema operativo. 1953 – Aparece el primer sistema operativo. Escrito por General Motors para la IBM 701. La necesidad original era de un programa que gestionara la E/S. Además, este SO, cuando un programa finalizaba, una rutina saltaba el flujo de ejecución al programa siguiente. Era monotarea. Denominados sistemas de procesamiento por lotes de secuencia única.

24 Segunda generación: Hardware: sustitución de válvulas por transistores. Primeras máquinas fabricadas en serie. El que fabrica la computadora ya no es el usuario. Muy grandes, cuartos especiales, temperatura. Job sequencing: Al finalizar un trabajo se lanza otro en forma automática, sin necesidad de monitoreo ni intervención del operador. Se gana en eficiencia de uso del sistema al aparecer los sistemas de procesamiento por lotes (batch).

25 Sistemas de proceso por lotes (batch).
Antes, la forma de utilizar los sistemas era: Se escribe el programa en papel. Se perfora el programa en tarjetas, con una máquina especial. Se ponen todas las tarjetas en la computadora para la ejecución. Por ejemplo, si se precisa el compilador Fortran, o alguna biblioteca, se incluyen también esas tarjetas.

26 Sistemas de proceso por lotes
Con los sistemas batch: Se pasan varios programas de tarjeta a una cinta (con una computadora que haga eso eficientemente). La cinta resultado es la entrada de otra computadora (que realiza cálculos eficientemente), que es donde corren los programas. La salida de esa ejecución se envía a una cinta, y otra máquina manda la salida a la impresora. Un sistema operativo de esta época era, por ejemplo, el Fortran Monitor System. Los usuarios no están en el centro de cómputos mientras se ejecutan sus programas. Los programas debían esperar, y si ocurrían errores (incluso sintácticos), había que repetir todo este proceso tan lento.

27 Sistemas de proceso por lotes
Aparece el concepto de buffering: consiste en solapar las operaciones de entrada/salida con la computación del proceso. Así, se aprovecha mejor la CPU. En hardware, la innovación que posibilitó el buffering fue que los procesadores tienen registros e instrucciones propios para la comunicación entre CPU y canales controladores de entrada/salida. El proceso en ejecución solicita una operación de E/S (que es lenta). El controlador la hace, y mientras ese proceso sigue, hasta que, vía una interrupción, el controlador avisa que terminó. Esta es una primera forma de multitarea.

28 Sistemas de proceso por lotes
Estos dispositivos periféricos (algunos realizan la E/S por interrupciones): Lectoras de tarjetas. Perforadoras de tarjetas. Impresoras. Unidades de cinta. Unidades de disco. El desafío era usar estos recursos eficientemente, y en particular el recurso procesador al interactuar con ellos. En definitiva es importante no tener procesador ocioso.

29 Multiprogramación Cuando una tarea utilizaba el procesador, otras podían usar los dispositivos de E/S. La mejor forma de usar el tiempo de CPU, es que, en un momento dado, el sistema ejecute no una tarea, sino un conjunto de tareas. En esto se basa el concepto de multiprogramación: varias tareas se encuentran simultáneamente en memoria principal, y el procesador se conmuta de una tarea a otra buscando su avance a medida que requieren uso de los dispositivos periféricos.

30 Tercera generación: Innovación en hardware: aparecen circuitos integrados (a baja escala). Aparece la primer minicomputadora: PDP-8 (antecesoras de las Digital VAX). Aparece la familia de computadoras de IBM, System/360 (1964). 16 Kb. RAM, ops./seg. Primera serie que busca unificar máquinas científicas y comerciales. Costo del orden del millón de dólares. La siguió la serie 370 y luego 4300 y 30X0. Hardware compatible dentro y entre las series IBM (no así en las PDP por ejemplo).

31 OS/360 El IBM 360, tiene un sistema operativo, OS/360.
Sistema operativo muy grande, millones de instrucciones Assembler, muchos bugs. Se arreglaban algunos bugs y surgían otros. Aparecen algunas ideas de ingeniería de software, al tratarse lo relativo al desarrollo de programas grandes. Multiprogramación: Mientras un proceso espera E/S, otro toma la CPU. Memoria dividida en áreas, asignadas a diferentes procesos. Mecanismos de protección de memoria.

32 Spooling Las computadoras de la tercera generación tenían almacenamiento secundario, no volátil, basado en: Cintas: acceso secuencial, se agregan datos al final. Discos: acceso aleatorio, se puede modificar un archivo “por la mitad”. Así, siempre que se termina de ejecutar un trabajo, el SO puede cargar uno nuevo del disco y comenzar a ejecutarlo. También esto permite spooling, para el manejo de colas de impresión, y para la salida. Spool=Simultaneous peripheral operation on line.

33 Spooling Si un proceso va a imprimir, no manda directamente a la impresora sino a un archivo. Luego se imprime desde dicho archivo. Si varios procesos producen salidas a impresora, entonces todos sacan su salida a disco, y luego de ahí a la impresora. Aparece la cola de impresión. Así, se comienza a aprovechar mejor un recurso caro como lo es la CPU, al liberarlo de atender dispositivos lentos.

34 Tiempo compartido Aún no se trabajaba de la forma más eficiente.
Los programas entregaban las tarjetas al operador, si había errores de compilación, había que cambiar algunas tarjetas y reiniciar el proceso. Surgen las máquinas de tiempo compartido (time sharing). Varios usuarios utilizan al mismo tiempo la computadora, en principio compitiendo (más que compartiendo) por sus recursos. Así, los sistemas operativos podían atender a varios usuarios interactivos, que se comunican con el computador a través de terminales en línea.

35 Tiempo compartido Un gran número de usuarios pueden trabajar simultáneamente en forma interactiva. De alguna forma, se ofrece a cada usuario la ilusión de que dispone de el sistema para él. Los sistemas de tiempo compartido de los años 60, trabajaban también en modo de proceso por lotes y con aplicaciones de tiempo real. Los sistemas de tiempo real dan respuestas en tiempos mínimos preestablecidos. Ejemplo: sensores de estabilidad en un avión. En general son usados por debajo de su capacidad, a fin de asegurar esos tiempos mínimos, y eso explica su alto costo. En los sistemas de tiempo real, la multiprogramación debe ser controlada de acuerdo a restricciones de tiempo y prioridades.

36 Tiempo compartido En 1961 aparece el CTSS, sistema operativo time sharing, desarrollado por el MIT. También el TSS de IBM. TSS=Time Shared System. Otros sistemas de tiempo compartido: Multics del MIT, sucesor de CTSS, antecedente de Unix. Primer SO que intentó escribirse en un LP de alto nivel (PL/I). CP/CMS, antecesor del VM de IBM. Todos estos eran sistemas de tiempo compartido, permitían compartir programas y datos, y mostraron el valor de la computación interactiva en los ambientes de desarrollo de programas. El tiempo de retorno (tiempo entre introducción de una tarea y recepción de su resultado) bajó a segundos.

37 Tiempo compartido El usuario podía introducir programas, compilarlos, corregir errores (sintácticos), recompilar hasta librarlo de errores, ejecutarlo, depurarlo (errores semánticos) hasta producir la versión final. Esta modalidad de proceso de desarrollo es muy similar a la actual. Notar como se llega a la misma gracias a los progresos en los sistemas operativos. Los sistemas operativos comienzan a ser vistos como ambientes de trabajo.

38 Multiprogramación Estos sistemas permitían trabajar con varios procesos simultáneos en ejecución. El procesador va turnando la ejecución de partes de cada uno. El cambio de un proceso a otro se logra gracias a las interrupciones. Aparecen los mecanismos de protección de memoria de modo de que coexistan varios procesos en ejecución.

39 Memoria virtual El concepto de memoria virtual ya estaba presente en TSS, Multics y CP/CMS. Así, los programas pueden usar más memoria de la que físicamente el sistema proporciona. Esto se logra combinando memoria RAM y disco. Así, los programadores dejaron de preocuparse por los procedimientos y trucos para que un programa entrara completamente en memoria, concentrándose en el problema en sí.

40 Ingeniería de software
Los programas en general, y los sistemas operativos en particular, comenzaron a resolver situaciones cada vez más complejas. Así, crecieron en tamaño y complejidad. Comenzaron a aparecer versiones que corregían errores de otras versiones, y en ellas aparecían nuevos. La necesidad de producir software confiable, fácil de mantener, comprensible, etc. dieron origen a la ingeniería de software. Con esta disciplina se reconoce que todo software es producto de un proceso de desarrollo.

41 Proceso de desarrollo de software
Controlando la calidad en el proceso de desarrollo, se logra dar calidad al producto del mismo. Aparecen técnicas de project management aplicadas a los proyectos de desarrollo de software. En general, se agregan herramientas para lograr un PDS estructurado, predecible, disciplinado. De alguna manera se sentaron bases firmes para el desarrollo de programas grandes, y en particular, sistemas operativos más complejos.

42 Origen de Unix En 1969, fracasa el proyecto Multics de Bell y General Electric. Multics = Miltiplexed Information Computer Service. Se trataba de un ambicioso proyecto de sistema operativo grande, multitarea y multiusuario. Primera vez que se intentó usar un LP de alto nivel en la codificación de un SO (PL/I). En Bell, Thompson y Ritchie escribieron, sobre una PDP-7 un juego llamado Space Travel. Para éste, Thompson escribió un ambiente de trabajo para esa computadora, llamado Unics (U por Uniplexed).

43 Origen de Unix Luego, se pasó a una versión de 16 Kb. sobre un PDP-11.
Luego se desarrollaron el lenguaje B (Thompson) y el lenguaje C (Ritchie). Luego se reescribió gran parte del Unix en C. Con un fuente abierto, y adoptado primero en ambientes académicos y luego también comerciales, Unix inició su expansión.

44 Los años 70 Predominaron los sistemas de tiempo compartido con múltiples modos de operación: procesamiento por lotes, tiempo compartido y tiempo real. Los computadores personales estaban en la etapa inicial de su desarrollo, que vendría de la mano del desarrollo de los microprocesadores. Ya habían productos comerciales sólidos. Entonces, surgió el problema de comunicar sistemas. Aparecieron protocolos estándares de comunicación: TCP/IP (Depto. de Defensa de USA), Ethernet (Xerox). Comenzaron a surgir los primeros problemas de seguridad. Aparece la criptografía, etc. Todo esto se traduce en nuevas necesidades para los sistemas operativos.

45 Cuarta generación: 1980-90 y actualidad
En hardware, se logra la integración de transistores en alta y gran escala. Aparecen los PCs. Son similares a los minicomputadores en estructura y conceptos, pero más pequeños y más baratos. fines 60’s – Apple con CP/M. (CP = Control Program). Diskettes. 80-81: IBM lanza el primer PC. Procesador Intel Sistema operativo DOS de Microsoft. DOS = Disk Operating System. 1970 – Xerox. Antecedentes de manejo a través de íconos. Luego Mac OS (Apple), OS/2 (IBM) y Windows (Microsoft).

46 Redes Idea: Compartir recursos.
Una red es un conjunto de computadoras autónomas interconectadas. Se lograron redes cuya potencia de cómputo es comparable a las de los mainframes que predominaron en los años 1970s. Ventajas frente a los mainframes: Ambos comparten recursos. En la red no se compite por los recursos críticos CPU y memoria. Permiten administración centralizada. La red implica una inversión escalable. Sistemas operativos distribuidos: trabajan sobre una red, pero ocultan al usuario la presencia de la misma. Para el usuario es transparente en qué sistema de la red se ejecutan sus órdenes, eso lo resuelve el sistema operativo.

47 Redes Con las redes aparecieron nuevas herramientas de comunicación.
Aparecen redes de área local y de área extensa, resultantes de la interconexión de las primeras. Aparece la red Internet (70’s). Crecen los requerimientos de los sistemas operativos en cuanto a dar soporte a múltiples usuarios, permitir el uso de redes y permitir los niveles de seguridad y auditoría necesarios.

48 Redes Con el desarrollo de las redes aparecen nuevas posibilidades y problemas: Publicación de bases de datos. Distribución de bases de datos. Protección de accesos. Auditoría de accesos. Ataques (hackers). Aplicaciones de red. Herramientas de publicación y de comunicación. Aplicaciones cliente/servidor. Transmisión de datos en tiempo real (imágenes, etc.) Comunicación entre distintas plataformas.

49 Los desafíos en arquitectura y sistemas operativos
Conectividad Sistemas abiertos. Paralelismo. Sistemas distribuidos. Mejoramiento de la interfaz con el usuario.

50 Sistemas operativos de los últimos años
La familia Microsoft: MS-DOS Windows 3.X Windows 95/98/ME Windows NT / 2000 / XP La familia Unix: Unix SVR4, Unix BSD, Solaris, AIX, SCO Unix, HP Ux, Irix, Linux. Otros: OS/2, Mac, VM, etc.

51 Clasificaciones Proceso o tarea: es un programa en ejecución.
Sistema operativo: Monotarea: sólo permite un proceso en ejecución a la vez. Multitarea: permite la ejecución simultánea de varios procesos. Monousuario: no reconoce la existencia de diferentes usuarios. Multiusuario: reconoce la existencia de diferentes usuarios y arbitra el acceso de los mismos a los recursos del sistema.

52 El núcleo o kernel Sus funciones principales: Schedulling de procesos
Manejo de memoria Gestión de file systems

53 Control de lectura A esta altura ya debe haber leído los capítulos 1 y 2 de Deitel o sus equivalentes en los otros textos.

54 Recursos Son los componentes del sistema. El conjunto de recursos constituye la capacidad bruta de cómputo para el sistema. Ejemplos de recursos: (Micro) procesador, memoria, disco, unidad de CD, impresora, scanner, lector de barras, mouse, teclado, etc.

55 Definición de sistema operativo
Un sistema operativo es un conjunto de programas que administran los recursos del sistema, proporcionando y arbitrando el acceso a los mismos por parte de los usuarios del sistema.

56 Definición de SO Desglosando lo anterior, el SO:
Está compuesto por programas. Trata el hardware como un conjunto de recursos. Puede reconocer diferentes usuarios. Administra los recursos. Permite acceso a recursos. Proporciona a usuarios una interfaz para interactuar con el sistema y sus recursos. Proporciona a otros programas una interfaz para interactuar con el sistema y sus recursos. Arbitra el acceso a recursos. Proporciona mecanismos de seguridad.

57 Además... El sistema operativo es de alguna forma el nexo entre el hardware y el software. El sistema operativo brinda al usuario un ambiente de trabajo (más cómodo que tener que resolver cada vez los problemas de bajo nivel, etc.). El sistema operativo asigna (y por lo tanto arbitra) los recursos del sistema.

58 Analogía Hardware = automóvil. Sistema operativo = conductor.
El automóvil no funciona sin el conductor. Distintos conductores logran funcionamientos diferentes para el mismo auto. El auto consta de un conjunto de recursos que constituyen su capacidad bruta de funcionamiento. El motor, la dirección, el sistema de frenos, el sistema eléctrico, etc., son los recursos.

59 Primer esquema de capas
Programas Sistema Operativo Hardware = Recursos USUARIO

60 Evolución de los SO 1822 – Charles Babbage idea una máquina diferencial mecánica que calculaba polinomios de grado <= 6 sobre Z. Totalmente diseñada, no se pudo construir. 1830 – Charles Babbage diseña una máquina analítica mecánica. No se pudo construir por la complejidad de sus piezas. Aparece conceptos de: almacenamiento en tarjetas, almacenamiento en variables (memoria), almacenamiento de un conjunto de operaciones (programa). 1896 – Primera computadora real. Censo USA, tarjetas perforadas, primer sistema de codificación. Horelitz, que luego fundaría IBM.

61 Primera generación Décadas de 1940 y 1950.
A válvula (necesidad de refrigeración), muy lentas, cuartos enteros. Los programas se introducían bit a bit con interruptores mecánicos, luego pasaban a la computadora vía tarjetas perforadas. Los resultados se expresaban a través de leds. ENIAC – Cálculo trayectorias balísticas, 1800 válvulas de vacío, 32 bits de memoria, una suma en 0,2 ms.

62 Primera generación 1951 – ENIAC I, primera computadora para uso comercial. Programas perforados en tarjetas, pero aún no habían nada parecido a un sistema operativo. 1953 – Aparece el primer sistema operativo. Escrito por General Motors para la IBM 701. La necesidad original era de un programa que gestionara la E/S. Además, este SO, cuando un programa finalizaba, una rutina saltaba el flujo de ejecución al programa siguiente. Era monotarea. Denominados sistemas de procesamiento por lotes de secuencia única.

63 Segunda generación: Hardware: sustitución de válvulas por transistores. Primeras máquinas fabricadas en serie. El que fabrica la computadora ya no es el usuario. Muy grandes, cuartos especiales, temperatura. Job sequencing: Al finalizar un trabajo se lanza otro en forma automática, sin necesidad de monitoreo ni intervención del operador. Se gana en eficiencia de uso del sistema al aparecer los sistemas de procesamiento por lotes (batch).

64 Sistemas de proceso por lotes (batch).
Antes, la forma de utilizar los sistemas era: Se escribe el programa en papel. Se perfora el programa en tarjetas, con una máquina especial. Se ponen todas las tarjetas en la computadora para la ejecución. Por ejemplo, si se precisa el compilador Fortran, o alguna biblioteca, se incluyen también esas tarjetas.

65 Sistemas de proceso por lotes
Con los sistemas batch: Se pasan varios programas de tarjeta a una cinta (con una computadora que haga eso eficientemente). La cinta resultado es la entrada de otra computadora (que realiza cálculos eficientemente), que es donde corren los programas. La salida de esa ejecución se envía a una cinta, y otra máquina manda la salida a la impresora. Un sistema operativo de esta época era, por ejemplo, el Fortran Monitor System. Los usuarios no están en el centro de cómputos mientras se ejecutan sus programas. Los programas debían esperar, y si ocurrían errores (incluso sintácticos), había que repetir todo este proceso tan lento.

66 Sistemas de proceso por lotes
Aparece el concepto de buffering: consiste en solapar las operaciones de entrada/salida con la computación del proceso. Así, se aprovecha mejor la CPU. En hardware, la innovación que posibilitó el buffering fue que los procesadores tienen registros e instrucciones propios para la comunicación entre CPU y canales controladores de entrada/salida. El proceso en ejecución solicita una operación de E/S (que es lenta). El controlador la hace, y mientras ese proceso sigue, hasta que, vía una interrupción, el controlador avisa que terminó. Esta es una primera forma de multitarea.

67 Sistemas de proceso por lotes
Estos dispositivos periféricos (algunos realizan la E/S por interrupciones): Lectoras de tarjetas. Perforadoras de tarjetas. Impresoras. Unidades de cinta. Unidades de disco. El desafío era usar estos recursos eficientemente, y en particular el recurso procesador al interactuar con ellos. En definitiva es importante no tener procesador ocioso.

68 Multiprogramación Cuando una tarea utilizaba el procesador, otras podían usar los dispositivos de E/S. La mejor forma de usar el tiempo de CPU, es que, en un momento dado, el sistema ejecute no una tarea, sino un conjunto de tareas. En esto se basa el concepto de multiprogramación: varias tareas se encuentran simultáneamente en memoria principal, y el procesador se conmuta de una tarea a otra buscando su avance a medida que requieren uso de los dispositivos periféricos.

69 Tercera generación: Innovación en hardware: aparecen circuitos integrados (a baja escala). Aparece la primer minicomputadora: PDP-8 (antecesoras de las Digital VAX). Aparece la familia de computadoras de IBM, System/360 (1964). 16 Kb. RAM, ops./seg. Primera serie que busca unificar máquinas científicas y comerciales. Costo del orden del millón de dólares. La siguió la serie 370 y luego 4300 y 30X0. Hardware compatible dentro y entre las series IBM (no así en las PDP por ejemplo).

70 OS/360 El IBM 360, tiene un sistema operativo, OS/360.
Sistema operativo muy grande, millones de instrucciones Assembler, muchos bugs. Se arreglaban algunos bugs y surgían otros. Aparecen algunas ideas de ingeniería de software, al tratarse lo relativo al desarrollo de programas grandes. Multiprogramación: Mientras un proceso espera E/S, otro toma la CPU. Memoria dividida en áreas, asignadas a diferentes procesos. Mecanismos de protección de memoria.

71 Spooling Las computadoras de la tercera generación tenían almacenamiento secundario, no volátil, basado en: Cintas: acceso secuencial, se agregan datos al final. Discos: acceso aleatorio, se puede modificar un archivo “por la mitad”. Así, siempre que se termina de ejecutar un trabajo, el SO puede cargar uno nuevo del disco y comenzar a ejecutarlo. También esto permite spooling, para el manejo de colas de impresión, y para la salida. Spool=Simultaneous peripheral operation on line.

72 Spooling Si un proceso va a imprimir, no manda directamente a la impresora sino a un archivo. Luego se imprime desde dicho archivo. Si varios procesos producen salidas a impresora, entonces todos sacan su salida a disco, y luego de ahí a la impresora. Aparece la cola de impresión. Así, se comienza a aprovechar mejor un recurso caro como lo es la CPU, al liberarlo de atender dispositivos lentos.

73 Tiempo compartido Aún no se trabajaba de la forma más eficiente.
Los programas entregaban las tarjetas al operador, si había errores de compilación, había que cambiar algunas tarjetas y reiniciar el proceso. Surgen las máquinas de tiempo compartido (time sharing). Varios usuarios utilizan al mismo tiempo la computadora, en principio compitiendo (más que compartiendo) por sus recursos. Así, los sistemas operativos podían atender a varios usuarios interactivos, que se comunican con el computador a través de terminales en línea.

74 Tiempo compartido Un gran número de usuarios pueden trabajar simultáneamente en forma interactiva. De alguna forma, se ofrece a cada usuario la ilusión de que dispone de el sistema para él. Los sistemas de tiempo compartido de los años 60, trabajaban también en modo de proceso por lotes y con aplicaciones de tiempo real. Los sistemas de tiempo real dan respuestas en tiempos mínimos preestablecidos. Ejemplo: sensores de estabilidad en un avión. En general son usados por debajo de su capacidad, a fin de asegurar esos tiempos mínimos, y eso explica su alto costo. En los sistemas de tiempo real, la multiprogramación debe ser controlada de acuerdo a restricciones de tiempo y prioridades.

75 Tiempo compartido En 1961 aparece el CTSS, sistema operativo time sharing, desarrollado por el MIT. También el TSS de IBM. TSS=Time Shared System. Otros sistemas de tiempo compartido: Multics del MIT, sucesor de CTSS, antecedente de Unix. Primer SO que intentó escribirse en un LP de alto nivel (PL/I). CP/CMS, antecesor del VM de IBM. Todos estos eran sistemas de tiempo compartido, permitían compartir programas y datos, y mostraron el valor de la computación interactiva en los ambientes de desarrollo de programas. El tiempo de retorno (tiempo entre introducción de una tarea y recepción de su resultado) bajó a segundos.

76 Tiempo compartido El usuario podía introducir programas, compilarlos, corregir errores (sintácticos), recompilar hasta librarlo de errores, ejecutarlo, depurarlo (errores semánticos) hasta producir la versión final. Esta modalidad de proceso de desarrollo es muy similar a la actual. Notar como se llega a la misma gracias a los progresos en los sistemas operativos. Los sistemas operativos comienzan a ser vistos como ambientes de trabajo.

77 Multiprogramación Estos sistemas permitían trabajar con varios procesos simultáneos en ejecución. El procesador va turnando la ejecución de partes de cada uno. El cambio de un proceso a otro se logra gracias a las interrupciones. Aparecen los mecanismos de protección de memoria de modo de que coexistan varios procesos en ejecución.

78 Memoria virtual El concepto de memoria virtual ya estaba presente en TSS, Multics y CP/CMS. Así, los programas pueden usar más memoria de la que físicamente el sistema proporciona. Esto se logra combinando memoria RAM y disco. Así, los programadores dejaron de preocuparse por los procedimientos y trucos para que un programa entrara completamente en memoria, concentrándose en el problema en sí.

79 Ingeniería de software
Los programas en general, y los sistemas operativos en particular, comenzaron a resolver situaciones cada vez más complejas. Así, crecieron en tamaño y complejidad. Comenzaron a aparecer versiones que corregían errores de otras versiones, y en ellas aparecían nuevos. La necesidad de producir software confiable, fácil de mantener, comprensible, etc. dieron origen a la ingeniería de software. Con esta disciplina se reconoce que todo software es producto de un proceso de desarrollo.

80 Proceso de desarrollo de software
Controlando la calidad en el proceso de desarrollo, se logra dar calidad al producto del mismo. Aparecen técnicas de project management aplicadas a los proyectos de desarrollo de software. En general, se agregan herramientas para lograr un PDS estructurado, predecible, disciplinado. De alguna manera se sentaron bases firmes para el desarrollo de programas grandes, y en particular, sistemas operativos más complejos.

81 Origen de Unix En 1969, fracasa el proyecto Multics de Bell y General Electric. Multics = Miltiplexed Information Computer Service. Se trataba de un ambicioso proyecto de sistema operativo grande, multitarea y multiusuario. Primera vez que se intentó usar un LP de alto nivel en la codificación de un SO (PL/I). En Bell, Thompson y Ritchie escribieron, sobre una PDP-7 un juego llamado Space Travel. Para éste, Thompson escribió un ambiente de trabajo para esa computadora, llamado Unics (U por Uniplexed).

82 Origen de Unix Luego, se pasó a una versión de 16 Kb. sobre un PDP-11.
Luego se desarrollaron el lenguaje B (Thompson) y el lenguaje C (Ritchie). Luego se reescribió gran parte del Unix en C. Con un fuente abierto, y adoptado primero en ambientes académicos y luego también comerciales, Unix inició su expansión.

83 Los años 70 Predominaron los sistemas de tiempo compartido con múltiples modos de operación: procesamiento por lotes, tiempo compartido y tiempo real. Los computadores personales estaban en la etapa inicial de su desarrollo, que vendría de la mano del desarrollo de los microprocesadores. Ya habían productos comerciales sólidos. Entonces, surgió el problema de comunicar sistemas. Aparecieron protocolos estándares de comunicación: TCP/IP (Depto. de Defensa de USA), Ethernet (Xerox). Comenzaron a surgir los primeros problemas de seguridad. Aparece la criptografía, etc. Todo esto se traduce en nuevas necesidades para los sistemas operativos.

84 Cuarta generación: 1980-90 y actualidad
En hardware, se logra la integración de transistores en alta y gran escala. Aparecen los PCs. Son similares a los minicomputadores en estructura y conceptos, pero más pequeños y más baratos. fines 60’s – Apple con CP/M. (CP = Control Program). Diskettes. 80-81: IBM lanza el primer PC. Procesador Intel Sistema operativo DOS de Microsoft. DOS = Disk Operating System. 1970 – Xerox. Antecedentes de manejo a través de íconos. Luego Mac OS (Apple), OS/2 (IBM) y Windows (Microsoft).

85 Redes Idea: Compartir recursos.
Una red es un conjunto de computadoras autónomas interconectadas. Se lograron redes cuya potencia de cómputo es comparable a las de los mainframes que predominaron en los años 1970s. Ventajas frente a los mainframes: Ambos comparten recursos. En la red no se compite por los recursos críticos CPU y memoria. Permiten administración centralizada. La red implica una inversión escalable. Sistemas operativos distribuidos: trabajan sobre una red, pero ocultan al usuario la presencia de la misma. Para el usuario es transparente en qué sistema de la red se ejecutan sus órdenes, eso lo resuelve el sistema operativo.

86 Redes Con las redes aparecieron nuevas herramientas de comunicación.
Aparecen redes de área local y de área extensa, resultantes de la interconexión de las primeras. Aparece la red Internet (70’s). Crecen los requerimientos de los sistemas operativos en cuanto a dar soporte a múltiples usuarios, permitir el uso de redes y permitir los niveles de seguridad y auditoría necesarios.

87 Redes Con el desarrollo de las redes aparecen nuevas posibilidades y problemas: Publicación de bases de datos. Distribución de bases de datos. Protección de accesos. Auditoría de accesos. Ataques (hackers). Aplicaciones de red. Herramientas de publicación y de comunicación. Aplicaciones cliente/servidor. Transmisión de datos en tiempo real (imágenes, etc.) Comunicación entre distintas plataformas.

88 Los desafíos en arquitectura y sistemas operativos
Conectividad Sistemas abiertos. Paralelismo. Sistemas distribuidos. Mejoramiento de la interfaz con el usuario.

89 Sistemas operativos de los últimos años
La familia Microsoft: MS-DOS Windows 3.X Windows 95/98/ME Windows NT / 2000 / XP La familia Unix: Unix SVR4, Unix BSD, Solaris, AIX, SCO Unix, HP Ux, Irix, Linux. Otros: OS/2, Mac, VM, etc.

90 Clasificaciones Proceso o tarea: es un programa en ejecución.
Sistema operativo: Monotarea: sólo permite un proceso en ejecución a la vez. Multitarea: permite la ejecución simultánea de varios procesos. Monousuario: no reconoce la existencia de diferentes usuarios. Multiusuario: reconoce la existencia de diferentes usuarios y arbitra el acceso de los mismos a los recursos del sistema.

91 El núcleo o kernel Sus funciones principales: Schedulling de procesos
Manejo de memoria Gestión de file systems

92 Control de lectura A esta altura ya debe haber leído los capítulos 1 y 2 de Deitel o sus equivalentes en los otros textos.


Descargar ppt "Diseño de Sistemas Operativos Ing. Ángel Caffa"

Presentaciones similares


Anuncios Google