Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Дизайн [ править ]

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

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

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

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

См. Также [ править ]

  • Мультипрограммная система RC 4000
  • Кольцо (компьютерная безопасность)
  • Хронология операционных систем

Ссылки [ править ]

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