Мультипрограммная система
Разработчик | Эйндховенский технологический университет (Eindhoven University of Technology); Эдсгер Дейкстра и др. |
---|---|
Написано в | Electrologica X8 Язык ассемблера |
Рабочее состояние | Снято с производства |
Первоначальный выпуск | 1965 год |
Финальный выпуск | Финал / 1968 |
Маркетинговая цель | Исследовать |
Доступно в | Английский |
Обновить метод | Скомпилировать из исходного кода |
Платформы | Электрологика X8 |
ядра Тип | Многослойный |
По умолчанию пользовательский интерфейс | Бумажная лента |
или Мультипрограммная система THE ОС — компьютерная операционная система, разработанная командой под руководством Эдсгера В. Дейкстры и описанная в монографиях в 1965-66 годах. [1] и опубликовано в 1968 г. [2] Дейкстра никогда не называл систему; «THE» — это просто аббревиатура от «Technische Hogeschool Eindhoven», затем названия (на голландском языке ) Эйндховенского технологического университета в Нидерландах . Система THE была в первую очередь пакетной системой. [3] поддерживающий многозадачность ; она не была разработана как многопользовательская операционная система. Это было очень похоже на SDS 940 , но «набор процессов в системе THE был статическим». [3]
Система THE, по-видимому, представила первые формы программной страничной виртуальной памяти ( Electrologica X8 не поддерживала аппаратное управление памятью ), [3] освобождение программ от принудительного использования физических мест в барабанной памяти . Это было сделано с помощью модифицированного АЛГОЛА компилятора (единственного языка программирования, поддерживаемого системой Дейкстры) для «автоматического создания вызовов системных подпрограмм , которые гарантировали, что запрошенная информация находилась в памяти, при необходимости заменяя ее ». [3] Выгружаемая виртуальная память также использовалась для буферизации данных устройств ввода-вывода (I/O), а также для значительной части кода операционной системы и почти всего компилятора ALGOL 60 . В этой системе семафоры были впервые использованы как программная конструкция.
Дизайн
[ редактировать ]Конструкция мультипрограммной системы THE важна тем, что в ней используется многоуровневая структура , в которой «более высокие» уровни зависят только от «нижних» уровней:
- Уровень 0 отвечал за мультипрограммные аспекты операционной системы. Он решал, какой процесс будет выделен центральному процессору (ЦП), и учитывал процессы, заблокированные на семафорах . Он имел дело с прерываниями и выполнял переключение контекста , когда требовалось изменение процесса. Это самый низкий уровень. Говоря современным языком, это был планировщик .
- Уровень 1 занимался распределением памяти процессам. Говоря современным языком, это был пейджер.
- Уровень 2 занимался связью между операционной системой и системной консолью .
- Уровень 3 управлял всем вводом-выводом между устройствами, подключенными к компьютеру. Это включало буферизацию информации с различных устройств.
- Уровень 4 состоял из пользовательских программ . Всего было 5 процессов: в общей сложности они занимались компиляцией , выполнением и печатью пользовательских программ. По завершении они передавали управление обратно очереди расписания , которая основывалась на приоритетах и отдавала предпочтение недавно запущенным процессам и тем, которые были заблокированы из-за ввода-вывода.
- Уровень 5 был пользователем; как отмечает Дейкстра, «не реализовано нами».
Ограничение, заключающееся в том, что более высокие уровни могут зависеть только от нижних уровней, было введено разработчиками для того, чтобы сделать рассуждения о системе (с использованием квазиформальных методов ) более понятными, а также для облегчения постепенного построения и тестирования системы. Уровни были реализованы по порядку: сначала уровень 0, с тщательным тестированием абстракций, предоставляемых каждым уровнем по очереди. Это разделение ядра на слои было в некотором смысле похоже на Multics более позднюю модель кольцевой сегментации . Несколько последующих операционных систем в некоторой степени использовали многоуровневость, включая Windows NT и macOS , хотя обычно с меньшим количеством слоев.
Код системы был написан на языке ассемблера для голландского компьютера Electrologica X8 . Этот компьютер имел размер слова 27 бит и 48 килослов оперативной памяти . [3] 512 килослов барабанной памяти обеспечивают резервное хранилище для алгоритма кэша LRU , устройств считывания бумажной ленты, перфораторов бумажной ленты, плоттеров и принтеров.
См. также
[ редактировать ]- Мультипрограммная система RC 4000
- Кольцо (компьютерная безопасность)
- Хронология операционных систем
- Исходный код доступен по адресу http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-1-pdf/k-1-C1063.6-source-THE-os.pdf .
Ссылки
[ редактировать ]- ^ Дейкстра, Эдсгер В. Структура мультипрограммной системы «THE» (EWD-196) (PDF) . Архив Э. В. Дейкстры. Центр американской истории Техасского университета в Остине . ( транскрипция ) (14 июня 1965 г.)
- ^ Дейкстра, EW (1968), «Структура мультипрограммной системы THE», Communications of the ACM , 11 (5): 341–346, doi : 10.1145/363095.363143 , S2CID 2021311
- ^ Перейти обратно: а б с д и Зильбершац, Авраам; Петерсон, Джеймс Л. (май 1988 г.), «13: Историческая перспектива», Концепции операционной системы , стр. 512