jueves, 26 de diciembre de 2019

CUANDO APPLE Y MICROSOFT ENVIDIABAN A UNA EMPRESA "MENOR" COMO COMMODORE: EL AMIGA REVOLUCIONÓ CON SU MULTITAREA APROPIATIVA


En 1985 Commodore se apuntaba al futuro. Dejaba relativamente atrás la exitosa era de los 8 bits en la que triunfó con el Commodore 64 y daba el salto a los 16 bits con un ordenador muy especial: el Amiga 1000.
Aquel proyecto estuvo rodeado de ideas espectaculares, pero una en especial, la multitarea apropiativa o preventiva, convirtió al Amiga 1000 y al resto de futuros modelos del Amiga en ordenadores envidiados hasta por los gigantes de la época. 


Apple y Microsoft triunfaban, pero no en todo

Apple ya había asombrado el mundo años antes con Lisa -que fracasó en ventas- y sobre todo con el Macintosh que se lanzó en 1984 y que lo cambió todo al popularizar el uso de la interfaz gráfica de usuario. El ratón, los menús y las ventanas habían llegado para quedarse. 
Macintosh
Algunos tardaron mucho en comprender que aquello era el futuro, y de hecho Microsoft siguió anclado en un MS-DOS que fue dando tímidos pasos a la hora de integrar una interfaz de usuario con las primeras versiones de Windows. 

Aún así los sistemas operativos de Microsoft se convirtieron en la norma en el mercado de los PCs que comenzaron a conquistar sobre todo al usuario empresarial pero poco a poco también al usuario doméstico. 
El sistema operativo de los Macintosh -nos referiremos a él como Mac OS, aunque fue cambiando de nombre con el tiempo- siguió mostrando el camino en el ámbito visual durante años, pero curiosamente carecía de una característica que solo el Amiga logró ofrecer a un nicho de usuarios bastante amplio: la multitarea real, llamada apropiativa o preventiva(preemptive multitasking) era una opción asombrosa para la época.

Multitarea cooperativa frente a multitarea apropiativa

Apple y Microsoft triunfaban con sus propias propuestas, pero sus sistemas operativos no gozaban de multitarea total, y en lugar de eso hicieron uso de multitarea cooperativa frente a la multitarea apropiativa que el Amiga popularizó. 
Las diferencias entre una y otra son importantes, porque aunque ambas permitían que varias aplicaciones pudieran ejecutarse de forma concurrente (o al menos, esa era la percepción del usuario), lo hacían de modos muy distintos: 
  1. Multitarea cooperativa: usada tanto en Windows 3.x como en versiones anteriores, y también en Mac OS a partir de System 5 (1987), se usó este tipo de multitarea en la que el planificador de procesos no dicta qué hilo es el que se ejecuta: es cada hilo (o cada proceso, si no hay soporte de hilos) el que decide cuánto se "apropia" de la CPU, y es ese proceso el que (voluntariamente) avisa al siguiente (diciendo algo así como "ya he acabado"). Si un proceso/hilo no comparte la CPU con otros procesos/hilos se puede dar una situación conocida como inanición. 
  2. Multitarea apropiativa: en este tipo de multitarea los procesos o hilos no tienen el control de cuánto tiempo tienen de CPU: es el planificador el que lo decide cuándo se ejecuta cada proceso, durante cuánto tiempo, y cuándo pasa a "dormir". Es cierto que el proceso o hilo también puede ceder esos recursos voluntariamente como en la multitarea cooperativa (por ejemplo, si ya ha finalizado lo que tenía que hacer). En un sistema operativo de este tipo hay dos formas de que se retome el control del procesador: si el tiempo de CPU asignado al proceso o tarea se acaba, o si una tarea con mayor prioridad está preparada para comenzar a ejecutarse. 
El impacto de tener una u otra multitarea podía no ser importante según qué escenarios, pero desde luego en otros muchos condenaba y lastraba la experiencia de usuario. Un ejemplo clásico es el que ocurrir al imprimir algo de Microsoft Word en Windows 2.0: no había forma de hacer otra cosa en el ordenador nunca cedía el procesador a tareas que estuviesen en segundo plano. 
Win31
De hecho incluso en Windows 3.1 se daba el hecho de que algunos programas que se colgaban acababan colgando todo el sistema por esa razón: como el proceso afectado no cedía nunca la CPU al estar colgado, el sistema general acababa colgándose también.

Las cosas no solían ser tan graves, pero a menudo los usuarios se encontraban en situaciones en las que debían esperar a que un programa terminase de hacer una cosa para poder hacer otra. Y no siempre terminaban todo lo rápido que el usuario esperaba, lo que hacía que esa multitarea cooperativa acabara siendo útil, pero también estaba muy lejos de ser perfecta. 
Osx
Con Amiga OS eso no ocurría, aunque desde luego no fue el primer sistema operativo en ofrecer dicha capacidad. La multitarea preventiva ya fue implementada en la década de 1960 en sistemas operativos como MULTICS, OS/360 MFT o Unix. 

Acabaría siendo pues parte de sistemas operativos derivados de Unix y por tanto muy orientados a ámbitos académicos y empresariales, pero no apareció en plataformas orientadas al usuario final hasta que llegó el Amiga. 
Amigaos41
Antes el Singlair QL de 1984 lo implantó a través del sistema operativo Sinclair QDOS, pero aquel ordenador tuvo muy poco éxito, y fue el Amiga 1000 y sobre todo sus sucesores, el Amiga 500 o el Amiga 1200, los que convirtieron a aquella plataforma en todo un ejemplo para lo que luego acabaríamos viendo primero en Windows NT 3.1, luego en Windows 95 y por fin en Mac OS X, el primer sistema operativo de Apple que apareció con dicha característica. 
Aquel desarrollo de Apple llegó nada menos que en 2001, y el Amiga hacía tiempo que había dejado de ser relevante. Se había convertido en una plataforma casi desaparecida salvo por una pequeña legión de fans que siguieron manteniendo el espíritu vivo junto a algunas pequeñas empresas. Amiga OS sigue hoy vivo de forma limitada a través de diversos esfuerzos, pero su éxito comercial se apagó finalmente a principios de los años 1990.

No hay comentarios:

Publicar un comentario