evolución histórica so · 2019-04-12 · sistemas de tiempo compartido también apareció el...
TRANSCRIPT
EVOLUCIÓN HISTÓRICA SO
1
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.
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.
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
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
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
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
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
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
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
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
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
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
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)
Altamente integrado15
Poco integrado16
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
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.
Sistemas Operativos – W. Stallings – pág.: 58 a
67
Información extra
19
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
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.
Arquitectura de Von Neuman22
Las líneas
punteadas son
el flujo de
control, las no
punteadas el
flujo de
instrucciones y
los datos
Arquitectura de Von Neuman23
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.
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.
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.
Primeras computadoras Von Neuman27
Primeras computadoras basadas en
la arquitectura propuesta por Von
Neuman
EDVAC
IAS