WikiDer > Мультипрограммная система RC 4000

RC 4000 multiprogramming system
Мультипрограммная система RC 4000
РазработчикRegnecentralen
Рабочее состояниеСнято с производства
изначальный выпуск1969; 51 год назад (1969)
ПлатформыRC 4000
Ядро типМикроядро

В Мультипрограммная система RC 4000 прекращено Операционная система разработан для RC 4000 миникомпьютер в 1969 г.

Обзор

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

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

Монитор использовал конвейерную систему разделяемой памяти как основу своей межпроцессное взаимодействие. Данные, которые должны были быть отправлены из одного процесса в другой, были скопированы в пустой буфер памяти, а когда принимающая программа была готова, снова вернулись обратно. Затем буфер был возвращен в пул. Программы имели очень простой API для передачи данных, используя асинхронный набор из четырех методов. Клиентские приложения отправляют данные с Отправить сообщение и может при желании заблокировать использование ждать ответа. Серверы использовали зеркальный набор вызовов, подождите сообщение и отправить ответ. Обратите внимание, что сообщения имеют неявный «путь возврата» для каждого отправленного сообщения, что делает семантику более похожей на удаленный вызов процедур чем Махполностью основанная на вводе-выводе.

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

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

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

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

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

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