Exec es el núcleo de AmigaOS . Es un microkernel multitarea de 13 KB que permitió la multitarea preventiva en tan solo 256 KB de memoria (como se suministra con los primeros Amiga 1000 ). Exec proporcionó funciones para multitarea, administración de memoria y manejo de interrupciones y bibliotecas compartidas dinámicas . [1] [2]
Actúa como un planificador de tareas que se ejecutan en el sistema, proporcionar la multitarea preventiva con prioridad a la programación de todos contra todos . Exec también proporciona acceso a otras bibliotecas y comunicación entre procesos de alto nivel a través del paso de mensajes . Otros microkernels comparables han tenido problemas de rendimiento debido a la necesidad de copiar mensajes entre espacios de direcciones . Dado que Amiga tiene solo un espacio de direcciones, el paso de mensajes de Exec es bastante eficiente. La única dirección de memoria fija en el software Amiga (dirección 4) es un puntero a exec.library
, que luego se puede usar para acceder a otras bibliotecas. Exec fue diseñado e implementado por Carl Sassenrath .
Ejecutiva
A diferencia de los sistemas operativos modernos más nuevos , el kernel exec no se ejecuta "con privilegios". Los sistemas operativos contemporáneos para el 68000 , como Atari TOS y SunOS, usaban instrucciones trampa para invocar funciones del kernel. Esto hizo que las funciones del kernel se ejecutaran en el modo supervisor del 68000 , mientras que el software de usuario se ejecutaba en el modo de usuario sin privilegios . Por el contrario, las llamadas a funciones ejecutivas se realizan con la tabla de salto de la biblioteca y el código del kernel normalmente se ejecuta en modo de usuario. Siempre que se necesita el modo supervisor, ya sea por el kernel o los programas de usuario, la biblioteca funciona Supervisor()
o SuperState()
se utiliza.
Un límite del kernel de Exec era que un programa que no cooperaba podía deshabilitar la multitarea durante un tiempo prolongado, o indefinidamente, invocando las llamadas de Exec Forbid()
o Disable()
, sin la invocación posterior de correspondiente Permit()
o Enable()
, haciendo que el entorno se ejecutara como una sola tarea. La multitarea también podría ser deshabilitada por programas que, por error o intención del software, modifiquen las estructuras de datos de Exec o el código almacenado en la memoria de acceso aleatorio (RAM), posiblemente debido a la falta de compatibilidad con la unidad de administración de memoria (MMU).
Incluso con tales límites, Exec satisface la definición de algoritmo de programación preventiva, utilizando una rutina de programación preventiva y basando sus intervalos de interrupción en un reloj. [3]
El desarrollador del kernel de Linux Linus Torvalds describió una vez el diseño de Amiga como cooperativo, [4] a pesar de que utiliza una política de programación preventiva. La razón de eso, argumentó, era porque la falta de protección [de la memoria] entre las tareas significaba que una tarea podía impedir que el sistema funcionara de forma preventiva. Como las tareas tendrían que optar por no detener el mecanismo preventivo, esto se reduciría a una especie de sistema cooperativo invertido. Este tipo de combinación entre la protección y la política del programador no es estándar.
ExecSG
ExecSG (segunda generación) es el kernel utilizado por AmigaOS 4 . Este núcleo fue licenciado por Hyperion Entertainment de Thomas Frieden y Hans-Jörg Frieden. [5] Expone las mismas funciones y estructuras que el kernel Commodore Amiga Exec pero se ejecuta solo en CPUs PowerPC . El origen último de ExecSG no está especificado.
Referencias
- ^ Sassenrath, Carl (1986). Amiga ROM Kernel Reference Manual . Exec.
- ^ Holloway, Tim (enero de 1991). "El Amiga Exec Orientado a Objetos: El diseño del núcleo del sistema operativo Amiga sigue las reglas de la programación orientada a objetos". Byte (enero de 1991). McGraw-Hill . págs. 329–332, 234. ISSN 0360-5280 .
- ^ Stallings, William (2009). Sistemas operativos - Principios internos y de diseño (6ª ed.). Upper Saddle River, Nueva Jersey: Pearson Prentice Hall . ISBN 9788120336292.
- ^ Linus Torvalds (17 de octubre de 1996). "Jalleen mahtava uusi keksinto m $ oftilta" [Una vez más, un gran invento nuevo de M $] (en finlandés). Grupo de noticias : sfnet.atk.sodat . Usenet: [email protected] . Consultado el 25 de febrero de 2011 .
El Amiga es una multitarea "pseudo-preventiva", que la gente de Amiga llama preventiva, pero en realidad no lo es. WinNT en este sentido, está a años luz de distancia. ... debido a la falta de protección de la memoria. Cualquier programa puede tomar posesión de la máquina por completo y evitar así la multitarea. La multitarea en Amiga es cooperativa porque requiere la aprobación y la ayuda de la ejecución de aplicaciones [... muistinsuojauksen puutteen vuoksi. Mikä tahansa ohjelma voi ottaa koneen haltuunsa täysin ja estää siten moniajo. Eli Amigan moniajo sobre kooperatiivinen, koska se vaatii sen että ajettavat ohjelmat hyväksyvät sen moniajon ja auttavat sitä]
- ^ "Justia: Hyperion Entertainment vs. Amiga Inc" .
enlaces externos
- Amiga Exec