Las computadoras actuales son capaces de realizar varias actividades a la vez. Mientras se ejecuta una tarea de un usuario, el sistema puede estar leyendo una unidad de disco o escribiendo en una impresora, gracias a las posibilidades que ofrecen los circuitos de acceso directo a memoria (DMA) y las interrupciones generadas por los órganos de L/E (Lectura/Escritura). Además, siempre que existan esas interrupciones, se pueden ejecutar varios procesos de usuario de forma alternada, solapándose con las operaciones de L/E.
Así, en el método de multiprogramación conocido como Foreground/Background, un proceso delantero o prioritario, el proceso Foreground (FG), se ejecuta con preferencia sobre los demás. Cuando este preoceso solicita una opreación de L/E, y mientras ésta se realiza el sistema operativo puede aprovechar el tiempo del procesador haciendo que se ejecute el primer proceso trasero o Background (BG 1); si éste a su vez llega a una detención por L/E, se pasa a ejecutar el siguiente (BG 2), y así sucesivamente. Cuando termina la operación de L/E de un proceso más delantero que el que se está ejecutando, el sistema operativo en cuestión congela la ejecución de éste, y reanuda la de aquel. De este modo, en la multiprogramación FG/BG los procesos traseros utilizan el procesador mientras están inactivos los delanteros, mejorando así el aprovechamiento del procesador.
Igualmente, si el ordenador tiene un reloj que genere interrupciones periódicas, se puede usar para forzar el cambio de un proceso a otro; con esta actuación, el tiempo del procesador se distribuye más equitativamente entre los procesos, llegando así al tiempo compartido.
Referencias | Wikipedia.org Referencias | Universidad Nacional del Nordeste