Sistemas Operativos multiprogramados o multitarea Los sistemas operativos multiprogramados se caracterizan porque son capaces de atender más de un trabajo “a la vez”. La palabra a la vez aparece entre comillas por el hecho de que un sistema operativo multiprogramado no tiene que residir sobre un sistema de cómputo con varios procesadores, obsérvese que un sistema operativo de multiprocesamiento es también multiprogramado debido a que en cada procesador pueden estar ejecutándose distintos procesos y en ese caso la palabra a la vez no tiene que ir entre comillas debido a que la expresión puede que sea literal. Los sistemas operativos multiprogramados se caracterizan por compartir, de alguna forma, el tiempo del procesador y entre sus virtudes se pueden señalar las siguientes: • mejoran la productividad del sistema y la utilización de recursos, • multiplexa recursos entre varios procesos, • generalmente soportan múltiples usuarios (multiusuarios), • proporcionan facilidades para mantener el entorno de usuarios individuales, • en general se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos, Los sistemas operativos multiprogramados pueden ser: • de tiempo compartido. Comparten el procesador de manera equitativa, por ejemplo Linux y Windows XP. Su idea básica es la siguiente: 1. el SO asigna el procesador por un tiempo, conocido por quantum, 2. cuando el quantum expira el SO desaloja al proceso que estaba activo sin tomar en cuenta si había terminado o no, y lo envía a la cola de procesos listos para competir de nuevo por el procesador, 3. una vez desalojado el proceso que estaba activo se escoge uno nuevo (de la cola de listo) para usar la CPU y se le asigna por un quantum, 4. Los pasos 1 a 3 se repiten. • cooperativos. En los sistemas operativos multiprogramados cooperativos no existe el desalojo, los procesos abandonan la CPU de forma voluntaria cuando tienen necesidad de hacer algún evento externo, por ejemplo leer o almacenar información desde o hacia un disco. En ese instante el SO asigna el procesador a otro proceso, cuando el proceso que abandonó la CPU termina el evento por el cual la dejó, el SO lo sitúa en la cola de listo para competir por el procesador. Un ejemplo de este tipo de sistema lo era el SO Windows 95.