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

Перейти к навигации Перейти к поиску
THE (операционная система)
Разработчик Технический университет Эйндховена, Дейкстра, Эдсгер Вибе
Первый выпуск 1968
Поддерживаемые платформы Electrologica X8
Состояние Разработка прекращена
Логотип Викисклада Медиафайлы на Викискладе

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

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

Конструкция

[править | править код]

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

  • Уровень 0 — отвечал за многопрограммные аспекты операционной системы. Он решал, какой процесс будет выделен центральному процессору (CPU), и учитывал процессы, которые были заблокированы на семафоре. Также он мог прервать или переключить фон, когда требовалось изменение процесса. В современном мире это называется планировщик.
  • Уровень 1 — был связан с выделением памяти процессам.
  • Уровень 2 — отвечал за связь между операционной системой и консолью.
  • Уровень 3 — управлял всеми вводами — выводами между устройствами, подключенными к компьютеру. Это включало и буферизацию информации с различных устройств.
  • Уровень 4 — состоял из пользовательских программ. Было 5 процессов: в общей сложности они выполняли сборку, выполнение и вывод пользовательских программ. По завершении они передавали управление обратно в очередь расписания, которая была основана на приоритете, в пользу недавно запущенных процессов.
  • Уровень 5 — был пользователем (как отмечает Дейкстра, «не реализован нами»).

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

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

Примечания

[править | править код]
  1. Архивированная копия. Дата обращения: 5 апреля 2019. Архивировано 4 апреля 2019 года.
  2. Архивированная копия. Дата обращения: 5 апреля 2019. Архивировано 19 мая 2018 года.