Мультипрограммная система RC 4000
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( январь 2019 г. ) |
Разработчик | Центр дождя |
---|---|
Рабочее состояние | Снято с производства |
Первоначальный выпуск | 1969 год |
Маркетинговая цель | Исследовать |
Доступно в | Английский |
Обновить метод | Скомпилировать из исходного кода |
Платформы | РЦ 4000 |
ядра Тип | Микроядро |
Мультипрограммная система RC 4000 (также называемая Monitor или RC 4000 в зависимости от ссылки) — это снятая с производства операционная система, RC-4000 разработанная для миникомпьютера в 1969 году. [1] Для ясности в этой статье чаще всего используется термин «Монитор».
Обзор
[ редактировать ]Мультипрограммная система RC 4000 исторически примечательна тем, что стала первой попыткой разбить операционную систему на группу взаимодействующих программ, взаимодействующих через передачи сообщений ядро . RC 4000 не получил широкого распространения, но оказал большое влияние, положив начало концепции микроядра , которая доминировала в исследованиях операционных систем в 1970-х и 1980-х годах.
Монитор был создан в основном одним программистом, Пером Бринчом Хансеном , который работал в Regnecentralen , где разрабатывался RC 4000. Лейф Свальгаард участвовал во внедрении и тестировании Monitor. Бринч Хансен обнаружил, что ни одна существующая операционная система не подходит для новой машины, и ему надоело адаптировать существующие системы. Он чувствовал, что лучшим решением было бы построить базовое ядро, которое он называл ядром , которое можно было бы использовать для создания операционной системы из взаимодействующих программ. Unix , например, использует небольшие взаимодействующие программы для многих задач, передавая данные через систему, называемую конвейерами или каналами . Однако в ядро интегрировано большое количество фундаментального кода, особенно таких, как файловые системы и управление программами. Monitor также перенесет такой код, превратив почти всю систему в набор взаимодействующих программ, сводя ядро (ядро) только к системе связи и поддержки.
(IPC) Monitor использовал конвейерную систему общей памяти В качестве основы межпроцессного взаимодействия . Данные, которые должны были быть отправлены из одного процесса в другой, копировались в пустой буфер данных памяти , а когда принимающая программа была готова, снова возвращались обратно. Затем буфер был возвращен в пул. Программы имели очень простой интерфейс прикладного программирования ( API ) для передачи данных с использованием асинхронного набора из четырех методов. Клиентские приложения отправляют данные с помощью send message
и при желании может заблокировать использование wait answer
. Серверы использовали зеркальный набор вызовов, wait message
и send answer
. Обратите внимание, что сообщения имели неявный «обратный путь» для каждого отправленного сообщения, что делало семантику больше похожей на удаленный вызов процедуры , чем на систему Маха, полностью основанную на вводе/выводе (I/O).
Monitor разделил пространство приложений на две части: внутренние процессы выполняли традиционные программы, запускаемые по запросу, а внешние процессы фактически представляли собой драйверы устройств. Внешние процессы обрабатывались ядром вне пользовательского пространства, хотя их можно было запускать и останавливать, как и любую другую программу. Внутренние процессы запускались в контексте родителя, который их запустил, поэтому каждый пользователь мог эффективно создавать свою собственную операционную систему, запуская и останавливая программы в своем собственном контексте.
Планирование было полностью оставлено программам, если оно вообще требовалось (в 1960-х годах многозадачность компьютера была особенностью спорной ценности). Один пользователь может запустить сеанс в среде с вытесняющей многозадачностью , а другой может начать в однопользовательском режиме для запуска пакетной обработки на более высокой скорости. Планирование в реальном времени может поддерживаться путем отправки сообщений процессу таймера, который будет возвращаться только в подходящее время.
Эти две области претерпели наибольшее развитие с момента выпуска Monitor: в новых разработках использовалось аппаратное обеспечение для поддержки обмена сообщениями, а также поддерживались потоки внутри приложений для сокращения времени запуска. Например, Маха потребовался блок управления памятью для улучшения обмена сообщениями за счет использования протокола копирования при записи и сопоставления (вместо копирования) данных из процесса в процесс. Мах также широко использовал многопоточность, позволяя внешним программам или, говоря более современным языком, серверам легко запускать новые обработчики входящих запросов. Тем не менее, Mach IPC был слишком медленным, чтобы сделать подход микроядра практически полезным. Ситуация изменилась только тогда, когда Йохена Лидтке продемонстрировало микроядро L4 сокращение накладных расходов IPC на порядок.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Ядерная · Конспект лекций для 221» . yutingwang.gitbooks.io . Проверено 10 апреля 2024 г.
- Хансен, Пер Бринч (1970). «Ядро мультипрограммной операционной системы» (PDF) . Коммуникации АКМ . 13 (4). Ассоциация вычислительной техники : 238–250. CiteSeerX 10.1.1.105.4204 . дои : 10.1145/362258.362278 . S2CID 9414037 .
- Программное обеспечение RC 4000: мультипрограммная система
- Справочное руководство RC 4000 на bitsavers.org