De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

La multitarea cooperativa , también conocida como multitarea no preventiva , es un estilo de multitarea de computadora en el que el sistema operativo nunca inicia un cambio de contexto de un proceso en ejecución a otro proceso. En cambio, para ejecutar múltiples aplicaciones al mismo tiempo, los procesos ceden voluntariamente el control periódicamente o cuando están inactivos o bloqueados lógicamente . Este tipo de multitarea se llama cooperativa porque todos los programas deben cooperar para que funcione el esquema de programación.

En este esquema, el programador de procesos de un sistema operativo se conoce como programador cooperativo , y su función se reduce a iniciar los procesos y dejar que le devuelvan el control de forma voluntaria. [1] [2]

Uso [ editar ]

Aunque rara vez se usa en sistemas modernos más grandes, se usa ampliamente en sistemas embebidos con restricción de memoria y también, en aplicaciones específicas como CICS o el subsistema JES2 . La multitarea cooperativa fue el esquema de programación principal para aplicaciones de 16 bits empleado por Microsoft Windows antes de Windows 95 y Windows NT (como Windows 3.1x ), y por el Mac OS clásico . Windows 9x usaba multitarea no preventiva para aplicaciones heredadas de 16 bits, y las versiones PowerPC de Mac OS X antes de Leopard lo usaban paraaplicaciones clásicas . [1] NetWare , que es un sistema operativo orientado a la red, utilizó la multitarea cooperativa hasta NetWare 6.5. La multitarea cooperativa todavía se usa en sistemas RISC OS . [3]

La multitarea cooperativa se usa con await en lenguajes con un bucle de eventos de un solo subproceso en su tiempo de ejecución, como JavaScript o Python.

Problemas [ editar ]

Como un sistema cooperativo multitarea se basa en que cada proceso cede tiempo regularmente a otros procesos del sistema, un programa mal diseñado puede consumir todo el tiempo de la CPU para sí mismo, ya sea realizando cálculos extensos o esperando ocupada ; ambos harían que todo el sistema se bloqueara . En un entorno de servidor , este es un peligro que hace que todo el entorno sea inaceptablemente frágil. [1] Sin embargo, la multitarea cooperativa permite una implementación mucho más simple de aplicaciones porque su ejecución nunca es interrumpida inesperadamente por el planificador de procesos; por ejemplo, varias funciones dentro de la aplicación no necesitan ser reentradas . [2]

Por el contrario, la multitarea preventiva interrumpe las aplicaciones y da control a otros procesos fuera del control de la aplicación.

Ver también [ editar ]

Referencias [ editar ]

  1. ^ a b c "Definición de multitarea no preventiva" . pcmag.com . Consultado el 15 de agosto de 2015 .
  2. ↑ a b Joe Bartel (5 de noviembre de 2011). "Multitarea no preventiva" (PDF) . classiccmp.org . Consultado el 15 de agosto de 2015 .
  3. ^ "Multitarea preventiva" . riscos.info . 2 de noviembre de 2009 . Consultado el 15 de agosto de 2015 .