THE (операционная система)


THE (сокр. от нидерл. Technische Hogeschool Eindhoven) — компьютерная операционная система, разработанная командой под руководством Эдсгера В. Дейкстры, описанная в монографиях в 1965—1966 годах и опубликованная в 1968 году.[1] Система была в основном пакетной системой, которая поддерживала многозадачность; она не была разработана как многопользовательская операционная система. Это было похоже на SDS 940 (англ.), но «набор процессов в системе был статическим».

Система представила первые формы программной выгружаемой виртуальной памяти, так как Electrologica X8 (нид.) не поддерживала аппаратное управление памятью, освобождая программистов от необходимости использовать фактические физические местоположения в памяти на магнитном барабане. Это было сделано с помощью модифицированного компилятора (единственный язык программирования, поддерживаемый системой Дейкстры), чтобы автоматически генерировать вызовы системных подпрограмм, которые убедились, что запрошенная информация находится в памяти, при необходимости меняя местами.[2] Выгружаемая виртуальная память также использовалась для буферизации данных устройств ввода-вывода и значительной части кода операционной системы, а также почти всего компилятора ALGOL 60. В самой этой системе семафоры впервые использовались в качестве программной конструкции.

Конструкция операционной системы важна для её использования уровневой структуры, в которой «высшие» уровни зависят только от «нижних» уровней:

Ограничение, что более высокие уровни могут зависеть только от более низких уровней, было наложено проектировщиками, чтобы сделать рассуждения о системе более простыми (легко доступными), а также облегчить построение и тестирование системы постепенно. Уровни были реализованы по порядку, сначала Уровень 0, с тщательным тестированием абстракций, предоставляемых каждым уровнем по очереди. Это разделение ядра на слои было в некотором роде похоже на модель ОС Multics. Несколько последующих операционных систем в некоторой степени использовали уровни, включая Windows NT и macOS, хотя и с меньшим количеством уровней.

Код системы был написан на ассемблере для голландского компьютера Electrologica X8. Этот компьютер имел размер 27 битов, 32 000 слов, памяти сердечника, 512 000 слов памяти барабана, обеспечивая резервное хранилище для алгоритма кэширования.