multitarea

Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un procesador o sobre varios. Quienes hayan experimentado con sistemas ms-dos durante la década del 80 recordarán su incapacidad para realizar este tipo de actividades, algo que fue superado con los primeros Windows de Microsoft, aunque la multitarea era común en otros sistemas operativos muchos años antes, tal es el caso de Unix y derivados.



Las multitareas se dividen en nulas, cooperativas, preferentes y reales. En el caso de las nulas, estamos hablando de un sistema operativo que, a pesar de carecer de esta característica, puede imitar del alguna forma el comportamiento en espacio de usuario o utilizando algunos trucos. Tal como mencionamos MS-DOS es un ejemplo típico en este sentido.


En el caso de las multitareas de tipo cooperativo, los procesos que corren en el espacio de usuario van cediendo el procesador al sistema operativo en intervalos regulares, siendo un esquema complicado y un tanto arcaico porque si uno de los procesos quedaría congelado sin ceder el procesador al sistema, todo el sistema operativo quedaría congelado también. Encontraremos ejemplos de multitareas cooperativas en los sistemas Microsoft Windows desde su inicio hasta la versión 95.


Las multitareas de tipo preferente se comportan de otra manera: en este caso es el sistema operativo mismo el que administra el procesador o los procesadores, mientras los procesos están esperando ejecutarse, repartiendo para cada uno un tiempo de utilización. Siendo el resultado final prácticamente igual al que se obtendría si estuviesen realmente corriendo al mismo tiempo, sin embargo cada proceso utiliza el procesador durante períodos cortos de tiempo. Como ejemplos podemos citar los sistemas de tipo Unix: GNU/Linux, FreeBSD, VMS, Amigaos, y también Windows NT.


Si el hardware posee más de un procesador, entonces puede existir multitarea de tipo real, con cada proceso corriendo al mismo tiempo en cada CPU.