Мультипрограммная система - THE multiprogramming system

Мультипрограммная система
РазработчикTechnische Hogeschool Эйндховен / Эдсгер Дейкстра (и другие.)
Написано вElectrologica X8 язык ассемблера
Рабочее состояниеСнято с производства
изначальный выпуск1968; 52 года назад (1968)
ПлатформыElectrologica X8

В Мультипрограммная система или же ОС был компьютер Операционная система разработан командой во главе с Эдсгер В. Дейкстра, описанные в монографиях 1965-66 гг.[1] и опубликовано в 1968 году.[2]Дийкстра никогда не называл систему; "THE" - это просто аббревиатура от "Technische Hogeschool Eindhoven", затем название (в нидерландский язык ) из Эйндховенский технологический университет из Нидерланды. Система THE была прежде всего пакетная система[3] что поддержало многозадачность; он не был задуман как многопользовательский Операционная система. Это было очень похоже на SDS 940, но "набор процессы в системе ТО было статично ».[3]

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

Дизайн

Дизайн мультипрограммной системы THE важен тем, что в ней используется слоистая структура, в котором «верхние» слои зависят только от «нижних» слоев:

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

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

Код системы был написан на язык ассемблера для голландцев Electrologica X8 компьютер. На этом компьютере был слово размер 27 бит, 32 киловорда основная память,[3] 512 киловорс барабанная память предоставление вспомогательный магазин для Алгоритм кеширования LRU устройства чтения бумажных лент, перфораторы для бумажных лент, плоттеры и принтеры.

Смотрите также

Рекомендации

  1. ^ Дейкстра, Эдсгер В. Структура системы мультипрограммирования THE (EWD-196) (PDF). Архив Э.В. Дейкстры. Центр американской истории, Техасский университет в Остине. (транскрипция ) (14 июня 1965 г.)
  2. ^ Дейкстра, Э. (1968), "Структура системы мультипрограммирования THE", Коммуникации ACM, 11 (5): 341–346, Дои:10.1145/363095.363143
  3. ^ а б c d е Зильбершац, Авраам; Петерсон, Джеймс Л. (май 1988 г.), «13: историческая перспектива», Понятия операционной системы, п. 512