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

Мультипрограммная система RC 4000
Разработчик Regnecentralen
Рабочее состояние Снято с производства
Первый выпуск 1969 ; 52 года назад ( 1969 )
Маркетинговая цель Исследовать
Доступно в английский
Метод обновления Скомпилировать из исходного кода
Платформы RC 4000
Тип ядра Микроядро

4000 Multiprogramming система RC (называемая также монитор или RC 4000 в зависимости от ссылки) является прекращенной операционной системой , разработанной для RC 4000 миникомпьютера в 1969. Для ясности, эта статья в основном использует термин Monitor.

Обзор

Многопрограммная система RC 4000 исторически известна тем, что была первой попыткой разбить операционную систему на группу взаимодействующих программ, взаимодействующих через ядро передачи сообщений . RC 4000 не получил широкого распространения, но оказал большое влияние, положив начало концепции микроядра, которая доминировала в исследованиях операционных систем в 1970-х и 1980-х годах.

Монитор был создан в основном одним программистом Пером Бринчем Хансеном , который работал в Regnecentralen, где разрабатывался RC 4000. Лейф Свальгаард участвовал во внедрении и тестировании Monitor. Бринч Хансен обнаружил, что никакая существующая операционная система не подходит для новой машины, и устал от необходимости адаптировать существующие системы. Он считал, что лучшим решением было создание базового ядра, которое он называл ядром , которое можно было бы использовать для создания операционной системы из взаимодействующих программ. Unix , например, использует небольшие взаимодействующие программы для многих задач, передавая данные через систему, называемую конвейерами или конвейерами . Однако в ядро ​​интегрирован большой объем фундаментального кода, в частности такие вещи, как файловые системы и управление программами. Монитор также переместил бы такой код, сделав почти всю систему набором взаимодействующих программ, уменьшив ядро ​​(ядро) только до системы связи и поддержки.

В качестве основы межпроцессного взаимодействия (IPC) Monitor использовал конвейерную систему разделяемой памяти . Данные, которые должны были быть отправлены от одного процесса к другому, были скопированы в пустой буфер данных памяти , и когда принимающая программа была готова, снова вернулись обратно. Затем буфер был возвращен в пул. У программ был очень простой интерфейс прикладного программирования ( API ) для передачи данных с использованием асинхронного набора из четырех методов. Клиентские приложения отправляют данные с помощью send messageи могут при желании заблокировать использование wait answer. Серверы использовали зеркальный набор вызовов, wait messageи send answer. Обратите внимание, что сообщения имели неявный «путь возврата» для каждого отправленного сообщения, что делало семантику больше похожей на удаленный вызов процедуры, чем на систему Mach, полностью основанную на вводе / выводе (I / O).

Монитор разделил пространство приложения на две части: внутренние процессы были выполнением традиционных программ, запускаемых по запросу, а внешние процессы фактически были драйверами устройств. Внешние процессы обрабатывались ядром вне пользовательского пространства, хотя их можно было запускать и останавливать, как и любую другую программу. Внутренние процессы запускались в контексте родителя, который их запустил, поэтому каждый пользователь мог эффективно создавать свою собственную операционную систему, запуская и останавливая программы в своем собственном контексте.

Планирование полностью оставалось на усмотрение программ, если оно вообще требовалось (в 1960-х годах многозадачность компьютера была особенностью спорной ценности). Один пользователь может начать сеанс в среде с преимущественной многозадачностью , а другой - в однопользовательском режиме, чтобы запустить пакетную обработку на более высокой скорости. Планирование в реальном времени может поддерживаться путем отправки сообщений процессу таймера, который будет возвращаться только в подходящее время.

С момента выпуска Monitor эти две области претерпели большую часть разработок, в результате чего в новых проектах использовалось оборудование для поддержки обмена сообщениями, а также поддерживались потоки в приложениях для сокращения времени запуска. Например, Mach требовался блок управления памятью для улучшения обмена сообщениями за счет использования протокола копирования при записи и сопоставления (вместо копирования) данных от процесса к процессу. Mach также широко использовал потоки, позволяя внешним программам или серверам, говоря более современным языком, легко запускать новые обработчики входящих запросов. Тем не менее, Mach IPC был слишком медленным, чтобы сделать подход микроядра практически полезным. Это только изменилось , когда Йохен Лидтке «s L4 микроядерные продемонстрировал накладные расходы IPC уменьшается на порядок-о-величины.

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

использованная литература

  • Хансен, Пер Бринч (1970). «Ядро многопрограммной операционной системы» (PDF) . Коммуникации ACM . Ассоциация вычислительной техники . 13 (4): 238–250. CiteSeerX  10.1.1.105.4204 . DOI : 10.1145 / 362258.362278 .
  • Программное обеспечение RC 4000: система мультипрограммирования
  • Справочное руководство по RC 4000 на сайте bitsavers.org