Multitarea cooperativa
From Wikipedia, the free encyclopedia
La multitarea cooperativa, también conocida como multitarea no apropiativa, 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 su lugar, los procesos ceden voluntariamente el control periódicamente o cuando están inactivos o bloqueados lógicamente para permitir la ejecución simultánea de múltiples aplicaciones. Este tipo de multitarea se llama "cooperativo" porque todos los programas deben cooperar para que todo el esquema de programación funcione. En este esquema, el programador de procesos de un sistema operativo se conoce como un programador cooperativo, cuya función se reduce a iniciar los procesos y les permite devolver el control de forma voluntaria.[1][2]
Aunque rara vez se usa en sistemas modernos más grandes, se usa ampliamente en sistemas embebidos con limitaciones 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 empleadas por Microsoft Windows antes de Windows 95 y Windows NT (como Windows 3.1x ), y por el Mac OS clásico. Windows 9x utilizó multitarea no preferente para aplicaciones heredadas de 16 bits y las versiones PowerPC de Mac OS X antes de Leopard lo usaba para aplicaciones 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 aguardar en lenguajes con un bucle de eventos de un solo hilo en su tiempo de ejecución, como JavaScript o Python.