jueves, 17 de abril de 2008

Multi-tarea

Desde pequeño recuerdo haber incorporado en mi dialecto la palabra “multi-tarea”, que surge en mi por el hecho de utiluzar computadora desde temprana edad. Como sabemos, el dichoso Sistema Operativo Windows posterior a su version 3.11, si mal no recuerdo, se introdujo al mercado como Sistema Operativo Multi-tarea.

La multi-tarea es un proceso por el cual se pueden ejecutar mas de una tarea al mismo tiempo, compartiendo uno o más procesadores (núcleos).

Asique a modo de desmitificación me gustaría dar cuenta que Windows nunca pudo haber trabajado como Sis. Op. Multi-tarea ya que hasta hace poco, todos los procesadores existentes en el mercado eran mononúcleo. Sólo el hecho de trabajar a grandes velocidades y alternar el enfoque en milesimas de segundos sobre las diferentes tareas nos daban el falso testimonio de un proceso multi-tarea.

Asique para su verdadero conocimiento de los procesos de Multi-tarea, paso a detallar brevemente la siguiente clasificación.

Tipos de multitarea:

Nula: El sistema operativo es monotarea. El ejemplo típico es MS-DOS. Aún asi puede lograrse a veces algo parecido a una multitarea implementandola en espacio de usuario, o usando trucos como los TSR de MS-DOS.

Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemática, puesto que si el proceso de usuario se cuelga y no cede la CPU al sistema operativo, todo el sistema quedará entonces colgado. Da lugar también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo seria Windows, hasta la version 3.11.

Preemptiva: El sistema operativo es el encargado de administrar el/los procesador/es, repartiendo el tiempo de uso de este entre los procesos que estén esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos periodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutandose al mismo tiempo. Ejemplos de sistemas de este tipo serian Unix y clones (FreeBSD, Linux, etc.), VMS y derivados, AmigaOS, etc.

Real: Solo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser también preemptiva. Ejemplos de sistemas operativos con esa capacidad: Linux y OS X

Bibliografía:
http://enciclopedia.us.es/index.php/Multitarea

No hay comentarios: