El sistema de multiprogramación LA o el sistema operativo era una computadora sistema operativo diseñado por un equipo dirigido por Edsger Dijkstra , que se describe en las monografías en 1965-1966 [1] y publicado en 1968. [2] Dijkstra nunca se nombra el sistema; "THE" es simplemente la abreviatura de "Technische Hogeschool Eindhoven", luego el nombre (en holandés ) de la Universidad Tecnológica de Eindhoven de los Países Bajos . El sistema THE era principalmente un sistema por lotes [3] que soportaba la multitarea ; no fue diseñado como multiusuariosistema operativo. Se parecía mucho al SDS 940 , pero "el conjunto de procesos del sistema THE era estático". [3]
Desarrollador | Technische Hogeschool Eindhoven / Edsger Dijkstra ( et al. ) |
---|---|
Escrito en | Lenguaje ensamblador de Electrologica X8 |
Estado de trabajo | Interrumpido |
Versión inicial | 1968 |
Plataformas | Electrologica X8 |
El sistema THE aparentemente introdujo las primeras formas de memoria virtual paginada basada en software (el Electrologica X8 no admitía la gestión de memoria basada en hardware ), [3] liberando a los programadores de verse obligados a utilizar ubicaciones físicas reales en la memoria del tambor . Lo hizo utilizando un compilador ALGOL modificado (el único lenguaje de programación compatible con el sistema de Dijkstra) para "generar automáticamente llamadas a las rutinas del sistema , lo que aseguraba que la información solicitada estuviera en la memoria, intercambiándola si era necesario". [3] La memoria virtual paginada también se utilizó para almacenar en búfer los datos del dispositivo de E / S y para una parte significativa del código del sistema operativo, así como para casi todo el compilador ALGOL 60 . En este sistema en sí, los semáforos se utilizaron como construcción de programación por primera vez.
Diseño
El diseño del sistema de multiprogramación THE es significativo por el uso de una estructura en capas , en la que las capas "superiores" solo dependen de las capas "inferiores":
- Layer 0 era responsable de los aspectos de multiprogramación del sistema operativo. Decidió qué proceso se asignó a la CPU y tuvo en cuenta los procesos que estaban bloqueados en semáforos . Se ocupaba de las interrupciones y realizaba los cambios de contexto cuando se requería un cambio de proceso. Este es el nivel más bajo. En términos modernos, este era el planificador .
- La capa 1 estaba relacionada con la asignación de memoria a los procesos. En términos modernos, este era el buscapersonas.
- La capa 2 se ocupaba de la comunicación entre el sistema operativo y la consola.
- La capa 3 gestionaba todas las E / S entre los dispositivos conectados a la computadora. Esto incluyó la información de almacenamiento en búfer de los diversos dispositivos.
- La capa 4 constaba de programas de usuario . Fueron 5 procesos: en total, se encargaron de la compilación , ejecución e impresión de los programas de los usuarios. Cuando haya terminado, que pasaron el control de nuevo a la programación de la cola , que era prioridad basados , favoreciendo los procesos y los recientemente iniciados que bloquearon a causa de E / S .
- La capa 5 era el usuario (como señala Dijkstra, "no implementado por nosotros").
Los diseñadores impusieron la restricción de que las capas superiores solo pueden depender de las inferiores para hacer que el razonamiento sobre el sistema (utilizando métodos cuasi formales ) sea más manejable y también para facilitar la construcción y prueba del sistema de forma incremental. Las capas se implementaron en orden, la capa 0 primero, con pruebas exhaustivas de las abstracciones proporcionadas por cada capa a su vez. Esta división del kernel en capas fue similar en algunos aspectos al modelo posterior de segmentación de anillos de Multics . Varios sistemas operativos posteriores han utilizado capas hasta cierto punto, incluidos Windows NT y macOS , aunque generalmente con menos capas.
El código del sistema fue escrito en lenguaje ensamblador para la computadora Dutch Electrologica X8 . Esta computadora tenía un tamaño de palabra de 27 bits, 32 kilovatios de memoria central , [3] 512 kilovatios de memoria de tambor que proporcionaban almacenamiento de respaldo para el algoritmo de caché LRU , lectores de cinta de papel, perforadoras de cinta de papel, trazadores e impresoras.
Ver también
- Sistema de multiprogramación RC 4000
- Ring (seguridad informática)
- Cronología de los sistemas operativos
Referencias
- ^ Dijkstra, Edsger W. La estructura del sistema de multiprogramación "EL" (EWD-196) (PDF) . Archivo EW Dijkstra. Centro de Historia Estadounidense, Universidad de Texas en Austin . ( transcripción ) (14 de junio de 1965)
- ^ Dijkstra, EW (1968), "The structure of the 'THE'-multiprogramming system", Communications of the ACM , 11 (5): 341–346, doi : 10.1145 / 363095.363143
- ^ a b c d e Silberschatz, Abraham; Peterson, James L. (mayo de 1988), "13: Perspectiva histórica", Conceptos del sistema operativo , p. 512