Multitarea

Con multitarea (en italiano multiprocessuality ), en informática , indicamos la capacidad de un software para ejecutar varios programas al mismo tiempo: por ejemplo, si se le pide al sistema que ejecute dos procesos A y B al mismo tiempo, la CPU ejecutará el proceso por unos instantes del tiempo A, luego por unos instantes después del proceso B, luego volverá a ejecutar el proceso A y así sucesivamente; la transición del proceso A al proceso B y viceversa se denomina " cambio de contexto " .

Las decisiones relativas a la ejecución de un cambio de contexto entre dos programas las toma un componente de software del sistema operativo , el programador , que enviará sus decisiones dadas principalmente por el Niza a otro módulo del sistema operativo, el despachador , que en realidad ejecutará el cambio de contexto: dependiendo de qué estrategia de servicio ( algoritmo de programación ) se siga, el programador controla la asignación de tiempo de CPU entre todos los procesos activos. Existen dos técnicas principales para controlar el término y la pausa de la multitarea: la antigua sin preferencia ( cooperativa ) y la nueva con preferencia ( preemptive ), pero hoy en día el verdadero poder de la multitarea radica solo en el algoritmo de programación utilizado.

Descripción

Existen principalmente dos tipos de multiprogramación:

El grado de multiprogramación indica la capacidad de un sistema para poder ejecutar múltiples procesos en la memoria .

Multitarea sin preferencia ( cooperativas )

También conocida como multitarea cooperativa , en este caso los programas ceden voluntariamente el control al sistema operativo una vez finalizada la operación en curso: es el caso de macOS hasta la versión 9 , o de Windows 3.0 y 3.1 . La principal ventaja de este método es que no necesita soporte de hardware y puede implementarse en cualquier tipo de arquitectura. El inconveniente grave es que un solo programa que se niega a ceder el control, o se detiene por algún error, puede bloquear toda la computadora, ya que el sistema operativo no tiene forma de recuperar el control por sí mismo. Más precisamente, el programador sin prioridad implementa un cambio de contexto solo en circunstancias como:

Multitarea preferencia editar

Preemption (o liberación anticipada ) es el acto de interrumpir un programa independientemente de la voluntad del programa mismo, esto sucede gracias a estructuras de hardware particulares integradas en el microprocesador que automatizan el cambio de contexto ( context switch ): en este caso no solo el El planificador interviene en las circunstancias previstas por un planificador sin preferencia, pero también en casos como:

Por tanto, una multitarea preventiva no puede implementarse si la plataforma hardware no proporciona las herramientas necesarias, pero por otro lado, gracias al hardware, el cambio de contexto es mucho más eficiente, favoreciendo la adopción de tiempos regulares y más. ejecución "fluida" de los diversos procesos. La mayoría de los sistemas operativos modernos han adoptado la multitarea preventiva completa.

Punto histórico sobre los sistemas operativos multitarea preventivos

Los primeros sistemas operativos para computadoras personales y domésticas , que salieron al mercado, que presentaban multitarea preventiva, fueron: Minix , Xenix , OS-9 (los tres derivados de Unix ) y el Sinclair QDOS (que equipaba la máquina Sinclair QL ) .

El Sinclair QL (de Quantum Leap , salto cuántico ) era un ordenador personal/doméstico basado en 68008 de 8 bits . Su sistema operativo, llamado QDOS, era multitarea y multihilo e integraba un potente intérprete básico, utilidades y programas de productividad y una primitiva GUI con ventanas ; sin embargo, inicialmente fue estropeado por varios errores, ya que se colocó en el mercado demasiado rápido en un intento de contrarrestar el lanzamiento tan publicitado de Apple Macintosh . Incluso el Sinclair QL fue presentado oficialmente al público sin que el sistema operativo estuviera listo, debido a las dificultades encontradas en la programación y pruebas. Posteriormente se solucionaron los problemas, pero Sinclair ya había vendido la división informática a Amstrad , que prefirió abandonar el producto.

La QL tuvo poco éxito y la desgracia de ser la última computadora semiprofesional de 8 bits en salir al mercado casi al mismo tiempo que se introdujeron nuevos sistemas de 16 bits como la PC IBM y los primeros sistemas híbridos de 16 bits. / Macintosh de 32 bits , Atari ST y Amiga .

Esta última computadora en particular fue la primera computadora ampliamente utilizada en el mercado en adoptar la multitarea preventiva con su AmigaOS , en 1985 , cuando Unix aún era prerrogativa de universidades y grandes centros de computación.

AmigaOS ha demostrado al gran público la validez de una arquitectura multitarea preventiva, potenciada tanto por la incorporación de un conjunto de coprocesadores dedicados a gráficos, sonido y sobre todo al control del BUS de memoria, como por la disponibilidad de tarjetas adicionales con Direct Acceso a la memoria .

A estos coprocesadores se les delegaron los cálculos adicionales y el control directo de los periféricos, permitiendo obtener excelentes rendimientos incluso con procesadores con bajo número de relojes, por lo que podían estar totalmente disponibles para los programas de gestión y productividad y para las necesidades de los comandos del sistema.

De este modo, el mecanismo de multitarea preventiva en Amiga podía ser inmediatamente percibido por el usuario, en primer lugar debido a la relativa velocidad con la que se manejaba el sistema, y ​​en segundo lugar porque el usuario podía ver por sí mismo los diferentes programas ejecutándose en concomitancia, gracias también a la particular gestión de múltiples pantallas de Amiga. Esta última característica, única en la época, permitía al usuario tener en un mismo monitor varias pantallas independientes y superpuestas (incluso con distintas resoluciones de video), que se podían subir y bajar con el mouse, para poder ver más programas. en la pantalla actualización completa de sus propias pantallas gráficas en paralelo.

En la década de 1990 , la multitarea preventiva se generalizó en las computadoras personales con sistemas operativos Windows desde Windows 95 en adelante, OS/2 , BeOS y varios sistemas Unix y similares, incluidos GNU/Linux y macOS .

Otros significados

En el campo psicológico , la multitarea , o mente de saltamontes , significa el uso espasmódico de múltiples dispositivos al mismo tiempo.

Artículos relacionados

Enlaces externos