THE
# THE

El sistema de multiprogramación THE fue un sistema operativo diseñado por un equipo liderado por Edsger W. Dijkstra, descrito en monografías entre 1965 y 1966 y publicado en 1968. Dijkstra nunca le dio el nombre "THE", sino que esto fue solamente una abreviatura de “Technische Hogeschool Eindhoven”, el nombre neerlandés de la Escuela Técnica Superior de Eindhoven (actualmente, Universidad Técnica de Eindhoven; en neerlandés: Technische Universiteit Eindhoven). El sistema operativo THE fue principalmente un sistema batch que soportaba multitarea, aunque no fue diseñado como tal.

THE introdujo las primeras formas de segmentación de memoria por software, liberando a los programadores de tener que direccionar sobre la memoria física. Esto se logró utilizando una versión modificada del compilador ALGOL (el único lenguaje de programación soportado por el sistema de Dijkstra) para generar llamadas automáticas a las rutinas de sistema, asegurando que la información requerida estuviese en memoria, intercambiándose de ser necesario.

## Estructura en capas

El sistema tenía 6 estratos o capas, estructuradas de tal forma que capas superiores dependían únicamente de capas inferiores:

* Capa 0: Distribución del procesador y multiprogramación;
* Capa 1: Administración de la memoria y el tambor magnético;
* Capa 2: Comunicación entre el operador y el proceso;
* Capa 3: Administración de Entrada/Salida;
* Capa 4: Programas del usuario;
* Capa 5: Operador de THE.

El estrato 0 trabajaba con la distribución del procesador, cambiando entre procesos cuando se producían interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos secuenciales, cada uno de los cuales podía programarse sin tener que preocuparse por el hecho de que múltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el estrato 0 ofrecía la multiprogramación básica de la CPU.

El estrato 1 realizaba el manejo de memoria. Este distribuía espacio para procesos contenidos en la memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos (páginas) para las cuales no había espacio en la memoria central. Sobre el estrato 1, los procesos no tenía que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se hacía cargo de asegurar que las páginas se trajeran a la memoria siempre que se necesitaran.

El estrato 2 manejaba la comunicación entre cada proceso y la consola de operador.

El estrato 3 se hacía cargo de manejar los dispositivos de E/S y de separar la información en flujo que entraba y salí de ellos. Sobre el estrato 3 cada proceso podía trabajar con dispositivos de E/S abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades

El estrato 4 era donde se encontraban los programas de los usuarios. No tenían que preocuparse por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en el estrato 5.

* Datos: Q2629686
* Multimedia: THE multiprogramming system / Q2629686
