Segunda Generación

Esta generación se desarrolla a mediados de los 60 con la aparición de la multiprogramación, el tiempo compartido y el procesamiento en tiempo real.

Multiprogramación

En la multiprogramación, la memoria principal da acceso a más de un programa del usuario.

La CPU ejecuta instrucciones de un programa (p1), y cuando el programa en ejecución realiza una operación de E/S, da órdenes al controlador para que espere; pero en lugar de esperar a que termine la operación de E/S comprobando el bit de ocupación, ejecuta otro programa (p2).

Si este nuevo programa realiza, a su vez, otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutar otro programa (p3).

Esto permite que varios dispositivos trabajen simultáneamente, además, en la CPU no se tienen que ejecutar ciclos de comprobación del estado de los dispositivos.

Tiempo Compartido

El tiempo compartido funciona de manera similar a la multiprogramación sólo que en este caso, cuando un programa lleva cierto tiempo de ejecución el sistema operativo lo detiene con el fin de que se ejecute otro.

Esto persigue que el CPU tenga una repartición en tiempo igual para todos los programas para y por ejecutarse.

De esta manera los usuarios no sienten un proceso de sus programas demasiado lento y aparentemente llevan a cabo una ejecución concurrente.

Procesamiento en Tiempo Real

Estos sistemas tienen como objetivo proporcionar tiempos breves y sumamente rápidos de respuesta, generalmente se utilizan en las telecomunicaciones.

Fuente: Apuntes de Soporte técnico la FCA de la UNAM