En esta entrada se ofrecerá una visión general a lo largo de la historia de los distintos tipos de SO asociados a sus respectivos tipos de máquina.
- Primeros sistemas
- Sistemas por lotes
- Mejoras en la gestión de la E/S.
- Sistemas por lote multiprogramados.
- Sistemas de tiempo compartido.
- Ordenadores personales.
- Sistemas paralelos:multiprocesadores.
- Sistemas distribuidos.
- Sistemas de tiempo real.
Primeros Sistemas
Se caracterizan por:
- Gran tamaño
- Apenas soporte lógico (tableros enchufables, tarjetas perforadas....).
- Necesidad de ser un usuario experto para manejarlo.
- Un solo usuario en cada momento (lista de reserva para poder utilizarlo).
El modo de trabajo hacía que la máquina estuviera parada mucho tiempo y el equipo era muy caro.
Sistemas por lotes
Su objetivo sacar más provecho a la máquina gracias a una mejor organización del trabajo. Los operadores agrupaban los trabajos por lotes, que eran trabajos con necesidades similares y que eran ejecutados en la computadora como un grupo de tareas. A medida que la computadora quedaba libre, se ejecutaba un lote.
Aparece el operador especialista, donde el programador no manipula directamente el equipo, sino que entrega su trabajo (job) al primero y éste somete la tarea al sistema y entrega los resultados al programador, el cual corrige sus errores mientras el operador sigue ejecutando otras tareas. Como resultado de este proceso, hubo un aumento considerable de la productividad.
Las tareas se agrupaban en lotes que se procesaban de manera automática. El operador se encargaba de preparar lotes con trabajos que requieran una misma operación y se ejecutaban sin más intervención.
Fue en esta etapa cuando se pensó que podría ser mejor dar las órdenes directamente al computador y no a un operador. Así nació el primer SO.
Para ello era necesario que el computador tuviera un pequeño monitor residente (controlador) para realizar acciones de manera automática distinguiendo tarjetas de instrucciones de programas de usuarios y tarjetas de control.
¿Qué elementos tenía un Sistema por Lotes?
- Lenguaje de control de tareas (JLC, job control language)
- Monitor residente
- Programa fijo en memoria con rutina imprescindible para que el sistema por lotes funcione: intérprete del JLC, cargador de programas, rutinas de E/S...
- automatiza tareas del antiguo operador.
- Es el primer sistema operativo auténtico.
Primeros problemas
La E/S era muy lenta en comparación con la CPU. Ello provocaba que ésta quedara ociosa mucho tiempo esperando la finalización de operaciones de E/S. Para tratar el problema se usaron algunas técnicas:
- Operación fuera de línea (offline):
El computador central dialoga directamente sólo con dispositivos rápidos (cintas magnéticas). Un pequeño computador (satélite o canal) se encarga de las transferencias con dispositivos lentos (tarjetas, impresora). Como resultado hubo un mejor aprovechamiento del procesador central y una ejecución paralela de cálculos y operaciones de E/S. Se comprobó que se pudo aumentar la velocidad utilizando varios satélites.
Para trabajar con offline no hacía falta recompilar los programas antiguos. Los trabajos seguían usando los mismos servicios para la E/S, lo que cambiaba era su implementación en el SO: Independencia del dispositivo.
La operación de E/S se realiza sólo cuando el dispositivo está preparado.
El uso de búferes no resuelve totalmente el problema de la lentitud de los equipos E/S. Su eficacia depende fundamentalmente de la velocidad de los equipos de E/S y del tipo de tareas en ejecucción.
- Spooling. (Simultaneous Peripheral Operation On-line)
Se utiliza el disco como un enorme búfer. El proceso lee/escribe sobre el disco en lugar del dipositivo E/S.
Mientras se ejecuta un trabajo, el SO lee los datos del siguiente trabajo de la cinta/tarjetas del disco e imprime la salida del anterior trabajo del disco a la impresora.
Permite solapar la E/S de un proceso ya terminado con las operaciones en CPU de otro proceso.
Multiprogramación.
El modo de operación offline y el spoolig aumentan el rendimiento de la CPU pero tienen sus limitaciones. En algún momento, la CPU queda ociosa esperando por alguna operación de E/S.
En multiprogramación, la CPU y la E/S trabajan a la misma vez por lo que se terminan más trabajos en menos tiempo.
Tiempo compartido
Soportan el uso “interactivo” del sistema: Cada usuario tiene la ilusión de disponer de la máquina completa. debido a la optimización del tiempo de respuesta.
Se basa en asignar fracciones de tiempo - se reparte el tiempo de CPU de forma equitativa entre los procesos.
Permite la participación activa de los usuarios en la edición, depuración de programas, y ejecución de los procesos.
Ordenadores personales.
La aparición de microprocesador permitió fabricar computadores baratos, asequibles par el consumo de masas alrededor de los años 80. Se le dió mucha importancia a la facilidad de uso aunque tenían bajos tiempos de respuestas. Se usaban tecnología de los grandes SO pero prescindían de ciertos servicios (protección, multiprogramación, etc...).
Sistemas paralelos-multiprocesadores.
Son sistemas con más de un procesador. Pueden ejecutar varias instrucciones simultáneamente en paralelo. Son sistemas estrechamente acoplados puesto que los procesadores comparten una memoria común.
Ventajas: Aumento de la velocidad de procesamiento con bajo coste y cierta tolerancia a fallos.
Inconvenientes: Necesidad de sincronización entre procesos.
Sistemas distribuidos.
Múltiples procesadores conectados mediante una red.
Sistemas debilmente acoplados: los procesadores no comparten memoria ni reloj.
Ventajas:
- Compartición de recursos dispersos.
- Ayuda al trabajo cooperativo de equipos humanos.
- Aumento de la velocidad.
- Fiabilidad (tolerancia a fallos, alta disponibilidad).
Inconvenientes
- No comparten memoria: la comunicación es más compleja y no se puede tener un estado global visible por todos los nodos al instante.
- red de comunicación no fiable.
- heterogeneidad de los nodos.
Sistemas de tiempo real.
Para poder ejecutar satisfactoriamente tareas que han de completarse en un plazo prefijado (ej. sistemas de control industrial, sistemas multimedia).
Dos tipo:
- s.t.r crítico: para tareas que siempre deben cumplir los plazos de terminación. Adecuados para la industria. Muy simples, incompatible con tiempo compartido, memoria virtual, etc.
- s.t.r. no crítico: intentan cumplir los plazos, pero no los garantizarán al 100%. Adecuados para multimedia, etc.