Introducción

No siempre han sido los sistemas operativos como hoy los conocemos. Su objetivo no ha variado, que es hacer un trabajo de forma sistemática y veloz que el usuario le solicita. Ese trabajo es lo que llamamos proceso. Y para realizarlo, necesita recursos (RAM, tiempo de proceso...). El SO es el responsable de garantizar los recursos a los procesos que se vayan a ejecutar.

Siempre ha habido un lastre en el intento de ganar velocidad de procesamiento: Las distintas velocidades a las que va cada componente del ordenador; La CPU va muy rápida, la RAM no tanto y a kilómetros están los dispositivos I/O, fundamentales para comunicarse con el usuario.

Al principio había que conformarse; un programa se ejecutaba rápido hasta que tenía que acceder al disco, impresora... lo que fuese. Entonces todo se paraba, el procesador se quedaba ocioso, hasta que se terminaba ese acceso y el dispositivo I/O indicaba que había terminado al proceso; luego la CPU seguía trabajando.

Se buscaron formas de evitar eso; la idea era aprovechar el tiempo que un proceso estaba haciendo una operación I/O para que el procesador siguiese trabajando. Así se creó la programación concurrente; cuando un proceso va a tardar mucho en una operación I/O, se quita de la CPU y se mete otro proceso.

Los retos para hacer posible ese intercambio es lo que veremos en esta sección

Última actualización