Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el...

27
EVOLUCIÓN HISTÓRICA SO 1

Transcript of Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el...

Page 1: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

EVOLUCIÓN HISTÓRICA SO

1

Page 2: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Introducción2

Con los primeros computadores (‘40 hasta ‘50): el programador interaccionaba directamente con el hardware del computador

No existía ningún sistema operativo.

Estas máquinas eran utilizadas desde una consola que contenía luces, interruptores, algún dispositivo de entrada y una impresora.

Los programas en código máquina se cargaban a través del dispositivo de entrada (por ejemplo, un lector de tarjetas).

Si un error provocaba la parada del programa, las luces indicaban la condición de error. Si el programa terminaba de forma normal, la salida aparecía en la impresora.

Page 3: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Problemas de los primeros sistemas sin SO

3

Planificación.

Planilla para reservar tiempo en la máquina. Un usuario podría pedir una hora y terminar en 45 mts. La máquina estaba parada 15 mts. hasta el próximo usuario.

Malgasto del tiempo de procesamiento del computador.

Por otro lado, el usuario podía tener problemas, si no finalizaba en el tiempo asignado y era forzado a terminar antes de resolver el problema.

Page 4: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Problemas de los primeros sistemas sin SO

4

Tiempo de configuración

Un único programa, denominado trabajo, podía implicar

la carga en memoria del compilador y del programa en

lenguaje de alto nivel (programa en código fuente).

Cada uno de estos pasos podían suponer montar y

desmontar cintas o configurar tarjetas.

Si ocurría un error, el usuario normalmente tenía que

volver al comienzo de la secuencia de configuración.

Se utilizaba mucho tiempo para configurar el

sistema

Page 5: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas por lotes (batch) (‘60)

En las primeras épocas los sistemas eran grandes y costosos.

Constaban de un entrada de trabajos o cola y una salida impresa.

Prácticamente no había interacción alguna con el usuario.

La función principal era la del cargador (loader) de programas y soporte de entrada/salida (E/S) a dispositivos.

El sistema soportaba un único trabajo a la vez.

Sistema

Operativo

Área de

programación

del usuario

5

Page 6: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas batch (‘60)

Lectora de Entrada -> Proceso -> Salida y resultado

Las tareas relacionadas, se agrupaban en conjuntos de trabajos

o lotes (batches) para su procesamiento más eficiente.

Con el advenimiento de los discos se comenzó a realizar el spool

de los dispositivos haciendo más rápidas las operaciones e

introduciendo por primera vez el solapamiento o concurrencia

de operaciones.

spool = Simultaneous Peripheral Operations On-Line

El spooler es un buffer donde se guardan datos a la espera de

su procesamiento por un dispositivo más lento

El recurso más caro de la época era el procesador (CPU), que

tenía un bajo porcentaje de utilización.

6

Page 7: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Batch multiprogramado (a partir de

’60)

Fue una mejora a los sistemas batch en los comienzos de la década del 80

El disponer de un Pool de Jobs en memoria secundaria y la implementación de técnicas de multiprogramación permitió desarrollar técnicas de planificación de despacho de jobscheduling así como de multiprogramación.

El sistema debía seleccionar un subconjunto de trabajos o lotes (jobs) que estaban en memoria secundaria para cargar en memoria principal.

El sistema operativo seleccionaba un trabajo para ejecutar. Cuando el trabajo seleccionado debía esperar por alguna tarea (p. ej.: ejecución de una E/S), el sistema elegía otro para utilizar el procesador.

7

Page 8: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Batch multiprogramado

Todo esto implicó el desarrollo de

técnicas incipientes para el manejo

de la memoria, ya que había que

compartirla entre todos los

trabajos.

La multiprogramación incrementa

la utilización del recurso

procesador.

Sistema

Operativo

Trabajo 1

Trabajo 2

Trabajo 3

Trabajo 4

8

Page 9: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas de tiempo compartido (‘60

aprox)

Los sistemas batch multiprogramados no tenían interacción con el

usuario además de un tiempo de retorno (turnaround time) extenso.

Sistemas de tiempo compartido, ejecutan programas en forma

concurrente con una elevada tasa de despacho de procesador

(context switch) de forma tal de permitir que usuarios interactúen

directamente con el sistema como si fueran su único usuario.

Se debe combinar multiprogramación con técnicas de planificación

de CPU (scheduling) para proveer a cada usuario con una porción

adecuada del sistema.

Los sistemas de tiempo compartido (time sharing systems) son una

extensión lógica de los sistemas multiprogramados.

9

Page 10: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas de tiempo compartido

Los usuarios utilizaban terminales para implementar la interacción y

eran atendidos por un interprete de comandos (multiusuarios).

Todos los usuarios creían tener el computador a su disposición.

Si bien un procesador ejecuta un único proceso por vez, un usuario

tenía a disposición la CPU unas 30 o 40 veces por segundo, lo que le

brinda a los usuarios la sensación de que está para su uso exclusivo.

Este intercambio es tan frecuente que el usuario puede interactuar con

su trabajo con total comodidad.

La necesidad de acceder y actualizar datos en forma concurrente,

creó la necesidad de evolucionar el sistema de archivos a uno

multiusuario, incorporando técnicas de protección y serialización

del acceso.

10

Page 11: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas de tiempo compartido

También apareció el problema de que los usuarios

podrían ver la memoria de los procesos de otros usuarios

En estas condiciones, los procesos deben contar con la

memoria y procesador necesarias para su ejecución

eficiente dando forma a los requerimientos de los sistemas

operativos de hoy día.

Comenzó a aparecer la idea de la memoria virtual

Los procesos ven un espacio de memoria virtual que el sistema

operativo se encarga de mapear a la memoria física

Permite que varios procesos corran juntos si en memoria sin

requerir modificaciones

11

Page 12: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Computadoras personales

Con costos de hardware decrecientes fue posible el diseño y uso de computadores personales.

El sistema era diseñando en base a que sería dedicado a un único usuario.

Con en un principio modestos recursos de procesador, el énfasis y desarrollo estuvo por mejorar la interfase con el usuario.

Para ello el sistema operativo debió maximizar la habilidad de interacción con el usuario en vez de uso de CPU, etc..

La interface de comandos habitual y diseñada para técnicos fue sustituida por la interfaz de ventanas que hoy conocemos.

12

Page 13: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Computadoras personales

Se introdujeron nuevos dispositivos que mejoran la

interacción con el usuario (audio, ratón, video,

micrófono, cámara, disquete, etc.).

Finalmente, los PC invadieron el ambiente empresarial

al ser dispuestos en red. Para ello, utilizando sistemas

homogéneos y servidores con habilidades específicas

de impresión, base de datos, sistema de archivo,

seguridad, correo, etc.

Esta es la disposición reciente dónde las aplicaciones se

implementan en modalidad cliente-servidor.

13

Page 14: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas paralelos (‘90)14

Desde comienzos de los 90, acompañando el desarrollo del hardware

Sistemas donde se dispone de más de un procesadorpermiten la ejecución simultánea y sincronizada de más de un proceso.

Se clasifican en:

Sistemas altamente integrados (tightly coupled). Son sistemas en donde los canales de interconexión son de alta velocidad (bus común o memoria compartida [Interno a una computadora]).

Sistemas poco integrados (loosely coupled). Sistemas en donde los canales de interconexión son de baja velocidad relativa. (Varias computadoras conectadas en red)

Page 15: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Altamente integrado15

Page 16: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Poco integrado16

Page 17: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Clasificación de los sistemas paralelos17

Asimétricos: Se designa un solo CPU (master)

para ejecutar el código del núcleo, para no

lidiar con la concurrencia, los demás (slaves)

ejecutaran lo que éste les designe.

Esta solución parcial no generó grandes

cambios en el SO

Page 18: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Clasificación de los sistemas paralelos18

Simétricos: Todos los procesadores son considerados iguales, el código del núcleo se dispone en memoria común y es ejecutado por cualquier procesador.

Debido a la complejidad de gestionar 2 procesadores, se requirió una reestructura completa del SO.

Clasificación sistemas multiprocesadores

UMA (Uniform Memory Access): Cada CPU accede a cualquier lugar de la memoria en el mismo tiempo.

NUMA (Non-Uniform Memory Access): Los CPU tienen áreas de memoria a las que acceden más rápido que el resto.

Page 19: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Sistemas Operativos – W. Stallings – pág.: 58 a

67

Información extra

19

Page 20: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman

Modelo que fue propuesto por John

von Neumann en 1949.

Para realizar el proceso de los datos,

la computadora consta de: CPU,

memoria y dispositivos de

Entrada/Salida.

20

Page 21: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman21

5 elementos básicos:

Dispositivos de entrada

Memoria

Unidad de control (CU)

Unidad aritmético lógica (ALU)

Dispositivos de salida.

Page 22: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman22

Las líneas

punteadas son

el flujo de

control, las no

punteadas el

flujo de

instrucciones y

los datos

Page 23: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman23

Page 24: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman24

Se emplea un dispositivo de entrada

(ej. teclado) para ingresar en

memoria un programa que incluye

las instrucciones, y los datos.

La memoria almacena este

programa.

La CU decodifica o traduce cada

instrucción en forma secuencial.

Page 25: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman25

La ALU se encarga de realizar las

operaciones aritméticas y lógicas como ADD,

SUBSTRACT, OR, AND, etc…

Según la operación a realizar, la CU genera

las señales necesarias para que la ALU y otros

elementos del sistema realicen la tarea. Para

la presentación de los resultados es necesario

el dispositivo de salida, como por ejemplo un

monitor.

Page 26: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Arquitectura de Von Neuman26

Para la ejecución de un programa:

La CU lee la instrucción de memoria y la

decodifica.

Si es lógica o aritmética, la CU genera las

señales necesarias a la ALU, para que esta

las ejecute.

Si son de Entrada/Salida, la CU genera las

señales para que los dispositivos de E/S

reciban o envíen datos desde o hacia los

dispositivos externos.

Page 27: Evolución histórica SO · 2019-04-12 · Sistemas de tiempo compartido También apareció el problema de que los usuarios podrían ver la memoria de los procesos de otros usuarios

Primeras computadoras Von Neuman27

Primeras computadoras basadas en

la arquitectura propuesta por Von

Neuman

EDVAC

IAS