Generalidades de sistemas operativos

92
1 DISEÑO DE SISTEMAS OPERATIVOS ING. ÁNGEL CAFFA Facultad de Ingeniería Universidad ORT

description

 

Transcript of Generalidades de sistemas operativos

Page 1: Generalidades de sistemas operativos

1

DISEÑO DE SISTEMAS OPERATIVOS

ING. ÁNGEL CAFFA

Facultad de Ingeniería

Universidad ORT

Page 2: Generalidades de sistemas operativos

Temario

MemoriaMemoria

Gestión deGestión deprocesosprocesos

GeneralidadesGeneralidadesde S.O.de S.O.

Generalidades de Sistemas Operativos is a Design Digital Content & Contents mall developed by Guild Design Inc.

Gestión de procesos is a Design Digital Content & ontents mall developed by Guild Design Inc.

Memoria Contents mall developed by Guild Design Inc.

2

Page 3: Generalidades de sistemas operativos

Temario

ConceptosConceptosde Seguridadde Seguridad

DiscoDiscoDisco is a Design Digital Content & Contents mall developed by Guild Design Inc.

Conceptos de SeguridadContents mall developed by Guild Design Inc.

3

Page 4: Generalidades de sistemas operativos

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.

Page 5: Generalidades de sistemas operativos

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.

Page 6: Generalidades de sistemas operativos

6

Horarios

Grupo Matutino Grupo Nocturno Cada semana se ven los mismos temas con

los dos grupos (recuperación).

Page 7: Generalidades de sistemas operativos

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.

Page 8: Generalidades de sistemas operativos

8

El curso dentro de la formación de un informático

Arquitecturade sistemas

Sistemasoperativos Redes Prog.

Administración de sistemas bajo un sistema operativo determinado

Diseño y configuración de Sistemas, servicio técnico

Programación en un lenguaje determinado

Configuración de redes bajo un conjunto determinado de protocolos.

B.D.

...

...

Page 9: Generalidades de sistemas operativos

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.

Page 10: Generalidades de sistemas operativos

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.

Page 11: Generalidades de sistemas operativos

11

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

Enfoque del curso

Page 12: Generalidades de sistemas operativos

12

I - GENERALIDADES DE LOS SISTEMAS OPERATIVOS

Sistemas Operativos

Page 13: Generalidades de sistemas operativos

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.

13

Page 14: Generalidades de sistemas operativos

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

Page 15: Generalidades de sistemas operativos

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.

15

Page 16: Generalidades de sistemas operativos

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.

16

Page 17: Generalidades de sistemas operativos

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.

17

Page 18: Generalidades de sistemas operativos

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.

18

Page 19: Generalidades de sistemas operativos

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.

19

Page 20: Generalidades de sistemas operativos

20

Programas

Sistema

Operativo

Primer esquema de capas

Hardware=

Recursos

US

UA

RIO

Page 21: Generalidades de sistemas operativos

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.

21

Page 22: Generalidades de sistemas operativos

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.

22

Page 23: Generalidades de sistemas operativos

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.

23

Page 24: Generalidades de sistemas operativos

Segunda generación: 1955-65 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).

24

Page 25: Generalidades de sistemas operativos

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.

25

Page 26: Generalidades de sistemas operativos

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.

26

Page 27: Generalidades de sistemas operativos

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.

27

Page 28: Generalidades de sistemas operativos

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.

28

Page 29: Generalidades de sistemas operativos

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.

29

Page 30: Generalidades de sistemas operativos

Tercera generación: 1965-70

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, 300.000 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).

30

Page 31: Generalidades de sistemas operativos

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.

31

Page 32: Generalidades de sistemas operativos

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.

32

Page 33: Generalidades de sistemas operativos

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.

33

Page 34: Generalidades de sistemas operativos

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.

34

Page 35: Generalidades de sistemas operativos

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.

35

Page 36: Generalidades de sistemas operativos

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.

36

Page 37: Generalidades de sistemas operativos

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.

37

Page 38: Generalidades de sistemas operativos

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.

38

Page 39: Generalidades de sistemas operativos

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í.

39

Page 40: Generalidades de sistemas operativos

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.

40

Page 41: Generalidades de sistemas operativos

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.

41

Page 42: Generalidades de sistemas operativos

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).

42

Page 43: Generalidades de sistemas operativos

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.

43

Page 44: Generalidades de sistemas operativos

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.

44

Page 45: Generalidades de sistemas operativos

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 8086. 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).

45

Page 46: Generalidades de sistemas operativos

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.

46

Page 47: Generalidades de sistemas operativos

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.

47

Page 48: Generalidades de sistemas operativos

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.

48

Page 49: Generalidades de sistemas operativos

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

usuario.

49

Page 50: Generalidades de sistemas operativos

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.

50

Page 51: Generalidades de sistemas operativos

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. Sistema operativo:

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.

51

Page 52: Generalidades de sistemas operativos

El núcleo o kernel

Sus funciones principales: Schedulling de procesos Manejo de memoria Gestión de file systems

52

Page 53: Generalidades de sistemas operativos

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.

53

Page 54: Generalidades de sistemas operativos

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.

54

Page 55: Generalidades de sistemas operativos

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.

55

Page 56: Generalidades de sistemas operativos

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.

56

Page 57: Generalidades de sistemas operativos

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.

57

Page 58: Generalidades de sistemas operativos

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.

58

Page 59: Generalidades de sistemas operativos

59

Programas

Sistema

Operativo

Primer esquema de capas

Hardware=

Recursos

US

UA

RIO

Page 60: Generalidades de sistemas operativos

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.

60

Page 61: Generalidades de sistemas operativos

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.

61

Page 62: Generalidades de sistemas operativos

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.

62

Page 63: Generalidades de sistemas operativos

Segunda generación: 1955-65 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).

63

Page 64: Generalidades de sistemas operativos

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.

64

Page 65: Generalidades de sistemas operativos

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.

65

Page 66: Generalidades de sistemas operativos

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.

66

Page 67: Generalidades de sistemas operativos

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.

67

Page 68: Generalidades de sistemas operativos

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.

68

Page 69: Generalidades de sistemas operativos

Tercera generación: 1965-70

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, 300.000 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).

69

Page 70: Generalidades de sistemas operativos

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.

70

Page 71: Generalidades de sistemas operativos

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.

71

Page 72: Generalidades de sistemas operativos

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.

72

Page 73: Generalidades de sistemas operativos

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.

73

Page 74: Generalidades de sistemas operativos

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.

74

Page 75: Generalidades de sistemas operativos

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.

75

Page 76: Generalidades de sistemas operativos

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.

76

Page 77: Generalidades de sistemas operativos

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.

77

Page 78: Generalidades de sistemas operativos

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í.

78

Page 79: Generalidades de sistemas operativos

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.

79

Page 80: Generalidades de sistemas operativos

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.

80

Page 81: Generalidades de sistemas operativos

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).

81

Page 82: Generalidades de sistemas operativos

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.

82

Page 83: Generalidades de sistemas operativos

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.

83

Page 84: Generalidades de sistemas operativos

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 8086. 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).

84

Page 85: Generalidades de sistemas operativos

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.

85

Page 86: Generalidades de sistemas operativos

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.

86

Page 87: Generalidades de sistemas operativos

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.

87

Page 88: Generalidades de sistemas operativos

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

usuario.

88

Page 89: Generalidades de sistemas operativos

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.

89

Page 90: Generalidades de sistemas operativos

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. Sistema operativo:

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.

90

Page 91: Generalidades de sistemas operativos

El núcleo o kernel

Sus funciones principales: Schedulling de procesos Manejo de memoria Gestión de file systems

91

Page 92: Generalidades de sistemas operativos

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.

92