9 Ventajas y desventajas de la multitarea cooperativa

La multitarea cooperativa proporciona una técnica en la que más de 2 programas de software pueden compartir los recursos y el tiempo de un procesador host común. Dentro de esta técnica, la cola debe poder asignar igualmente los recursos del procesador dentro de los programas. Eso significa que las tareas deben liberar la CPU, lo que permite que se ejecute la siguiente tarea.

A veces se lo denomina “multitarea no preventiva”.

Cuando se utiliza esta estructura, el sistema operativo no inicia un cambio de contexto de ejecutar un proceso a ejecutar otro proceso. En cambio, los procesos cederán voluntariamente el control del procesador en ocasiones, cuando estén inactivos o si se bloquean para permitir que se ejecuten otras aplicaciones.

La mayoría de los sistemas se han alejado de la multitarea cooperativa en la actualidad. Los sistemas operativos populares en el pasado, cuando usaban aplicaciones de 16 bits, usaban este proceso. Hoy en día, se encuentra típicamente en sistemas integrados con restricciones de memoria y en aplicaciones o subsistemas específicos.

Lista de las ventajas de la multitarea cooperativa

1. Es muy fácil de implementar.

La multitarea cooperativa es la mejor opción para usuarios individuales que tienen algunas tareas que deben completarse. No necesita preocuparse por la presencia de código de suspensión porque cada hilo es responsable de cuándo abandona su tiempo de codificación. Eso hace que los procesos de codificación sean mucho más fáciles para el programador individual, aunque la habilidad del codificador determinará la efectividad del sistema.

2. Facilita el intercambio de datos.

Con este tipo de sistema operativo, diferentes personas pueden compartir la misma vista, incluso si no están en el mismo proyecto al mismo tiempo. Los procesos involucrados son predecibles, lo que permite realizar pruebas y perfiles individualizados, incluso si los incidentes ocurren en momentos diferentes. Esto permite una mejor eficiencia dentro de los procesos mientras se mantiene una sola CPU.

3. Ofrece un marco de tiempo específico para su consideración.

La codificación puede incluir temporizadores que configuran eventos y bucles que buscan subprocesos cooperativos a medida que se implementan los procesos. Eso significa que deberá asegurarse de que cada subproceso acceda al procesador para maximizar sus beneficios sin demorar demasiado en acceder al recurso. Si un hilo o programa tarda demasiado, perderá oportunidades para progresar.

Para ser justos, este proceso exacto es menos un microkernel cooperativo multitarea y más una implementación de ciclo / temporizador, aunque todavía se clasifica como un proceso dentro de este tipo de estructura.

4. Maximiza lo que la CPU puede proporcionar.

Debido a que la multitarea cooperativa requiere procesos o subprocesos individuales en momentos específicos, la CPU puede dedicar sus recursos al elemento específico que se está ejecutando en ese momento. En otras formas de multitarea, puede haber varios subprocesos o programas ejecutándose simultáneamente, lo que reduce los efectos de la potencia de procesamiento que está disponible para cada uno. Cuando se codifica de manera efectiva, la multitarea cooperativa maximiza la potencia de procesamiento porque tiene un gran enfoque en la individualidad.

5. Proporciona menos problemas de reingreso.

Cuando se implementa la multitarea cooperativa con un solo núcleo de CPU, generalmente se encuentran menos problemas de reentrada. Esto se debe a que los subprocesos, programas o tareas que se están ejecutando no pueden ser interrumpidos arbitrariamente por otras tareas. Las únicas interrupciones que ocurren en este tipo de sistema son en posiciones que están en las llamadas del kernel, que son permitidas por el codificador.

Esta ventaja no se aplica a los núcleos multiprocesador. Solo se aplica con un kernel de un solo procesador.

6. Permite conservar completamente las respuestas en tiempo real.

Aunque la multitarea cooperativa impide las respuestas a nivel de tarea, conserva completamente esas respuestas en un controlador de interrupciones. Estos controladores continúan usando buzones de correo y semáforos dentro del sistema multitarea, lo que permite que los módulos se ejecuten independientemente de los algoritmos que están actualmente activos.

Lista de las desventajas de la multitarea cooperativa

1. Es difícil detener una tarea una vez que ha comenzado.

No hay forma de suspender el subproceso que está funcionando actualmente cuando se usa la multitarea cooperativa. Eso significa que el hilo que toma los recursos de la CPU seguirá exigiendo atención hasta que se complete el hilo. Si ocurre un error dentro del subproceso o programa, o no ocurre una ejecución, entonces la CPU puede verse forzada a una posición en la que el usuario debe detener manualmente las operaciones para restaurar sus capacidades.

2. No garantiza que todas las tareas puedan acceder al procesador.

Debido a que los subprocesos operan de forma independiente entre sí, no hay garantía de que cada subproceso o programa pueda obtener el tiempo con la CPU que requiere. Si los procesos de programación no se calculan correctamente, es muy posible que algunos recursos nunca accedan al procesador sin una intervención manual. En tal circunstancia, los proyectos tardan más en completarse porque el desempeño cooperativo de múltiples tareas debe revisarse continuamente.

3. No funciona bien para determinados tiempos de respuesta.

La multitarea cooperativa se utiliza mejor cuando los programas no requieren un tiempo de respuesta del orden de milisegundos o microsegundos en el nivel de la tarea. Si esos plazos son necesarios, se recomienda encarecidamente una estructura diferente.

Las ventajas y desventajas de la multitarea cooperativa se utilizan normalmente cuando un solo usuario, con un puñado de subprocesos o programas, necesita maximizar los recursos locales. Debido a sus limitaciones naturales, las situaciones grupales no suelen beneficiarse de este tipo de proceso. Siempre hay excepciones a la regla, por supuesto, así que asegúrese de examinar todas sus opciones antes de decidirse por el tipo de multitarea que va a emplear.