Разработки операционных систем для ЭВМ БЭСМ-6
В. П. Иванников, Л. Н. Королев, Э. З. Любимский, А. Н. Томилин
Появление ко второй половине 60-х годов ЭВМ с аппаратной поддержкой многозадачности и управления параллельной работой устройств стимулировали создание для этих ЭВМ операционных (управляющих) программных систем.
Первые операционные системы (ОС) в СССР и в дальнейшем все более совершенные операционные системы для интенсивно развивающихся вычислительных комплексов были созданы в организациях Москвы, имевших высокий научный и конструкторский потенциал, в Институте точной механики и вычислительной техники (ИТМ и ВТ) и Институте прикладной математики (ИПМ) Академии наук СССР. Выдающиеся ученые XX века академики Сергей Алексеевич Лебедев и Мстислав Всеволодович Келдыш, имена которых в настоящее время носят эти институты, активно способствовали развитию работ по созданию ОС для ЭВМ.
В ИТМ и ВТ группу пионеров разработчика ОС возглавил Л. Н. Королев (основные участники В. П. Иванников и А. Н. Томилин), в ИПМ М. Р. Шура-Бура (основные разработчики И. Б. Задыхайло, С. С. Камынин, Э. З. Любимский, В. С. Штаркман, позднее и В. Ф. Тюрин). Существенный вклад в развитие системных программных средств был внесен также группой из лаборатории вычислительной техники и автоматизации Объединенного института ядерных исследований (ОИЯИ) в подмосковной Дубне под руководством Н. Н. Говоруна.
Были созданы многозадачные ОС для больших ЭВМ БЭСМ-6 и "Весна", многоязыковая мониторная система "Дубна" для БЭСМ-6. Эти ОС обеспечивали параллельное выполнение процессов обработки информации и их иерархическую организацию, интерактивный режим работы коллектива пользователей ЭВМ и обработку информации в режиме реального времени.
"Диспетчер-68"
Большое влияние на развитие ОС для ЭВМ оказало создание в 1967 г. в ИТМ и ВТ под руководством Л. Н. Королева первой ОС для ЭВМ БЭСМ-6, названной позднее "Диспетчер-68". Она обеспечивала совместное управление работой устройств ЭВМ, подготовку и решение задач в мультипрограммном режиме. Основные разработчики: Л. Н. Королев, В. П. Иванников и А. Н. Томилин.
Операционная система выполняла:
- мультипрограммное решение задач;
- управление одновременной работой всех каналов связи с внешними запоминающими устройствами и всех устройств ввода-вывода информации;
- совмещение вычислений во всех задачах с параллельной работой внешних запоминающих устройств и устройств ввода-вывода;
- организацию совместного динамического распределения ресурсов двухуровневой памяти (оперативной и внешней), базирующуюся на замещении страниц в оперативной памяти;
- распределение устройств между задачами;
- буферизацию ввода-вывода;
- развитую связь с оператором по управлению прохождением задач и работой устройств;
- возможность многотерминальной работы в диалоговом режиме.
Кроме этих основных функций "Диспетчер-68" обеспечивал вызов трансляторов с языков программирования и автокодов.
"Диспетчер-68" явился предтечей будущих развитых ОС и основой последующих операционных систем для БЭСМ-6 ОС "Дубна" (Н. Н. Говорун, И. Н. Силин) и ОС "Диспак" (В. Ф. Тюрин), дисковой операционной системы, ориентированной на пакетную обработку и эксплуатируемой в дальнейшем на большинстве ЭВМ БЭСМ-6.
Существенное влияние оказал "Диспетчер-68" и на разработку в ИТМ и ВТ операционной системы реального времени для БЭСМ-6 ОС НД-70 ("Новый диспетчер-70") с развитыми средствами организации параллельных вычислений (соподчинение задач, аппарат параллельных процессов), режимом работы в реальном времени и возможностью организации многомашинного вычислительного комплекса. Этой разработкой руководил В. П. Иванников. В центрах управления полетами космических аппаратов на базе ОС НД-70 были созданы и в течение двадцати лет активно использовались для обеспечения управления полетами несколько больших баллистических и телеметрических программных комплексов реального времени. Вслед за НД-70 средства организации параллельных процессов были введены в ОС "Диспак" для ЭВМ БЭСМ-6, что позволило программным комплексам реального времени базироваться и на этой ОС.
На основе возможностей операционной системы БЭСМ-6 усилиями ряда ведущих научно-исследовательских и производственных организаций с привлечением крупных математических сил СССР была создана первая в стране поставляемая промышленностью полная система математического обеспечения ЭВМ (ОС, системы программирования, библиотеки программ).
Операционная система ИПМ
В 1967 г. И. Б. Задыхайло, С. С. Камынин и Э. З. Любимский предложили операционную систему ИПМ АН СССР для машины БЭСМ-6 (ОС ИПМ). Эта система была реализована коллективом программистов из ИПМ и ряда других институтов под руководством Э. З. Любимского.
При разработке ОС ИПМ авторы широко использовали принятые в обществе механизмы взаимодействия для организации взаимосвязи между задачами и процессами. Все задачи рассматривались как члены коллектива (community), которые могут вступать друг с другом в различные отношения от совершенной изоляции до полного разделения всех ресурсов. Каждый ресурс (память, файл, устройство) имел своего хозяина, который мог его отдавать или сдавать в аренду любой другой задаче, оговаривая соответствующие права использования, в том числе и право дальнейшей передачи в аренду. При этом хозяин мог закрывать, а мог и не закрывать от себя арендуемый ресурс, что поддерживалось широким спектром средств синхронизации процессов. Обмен сообщениями между задачами обладал всеми особенностями почтовых отправлений, включая уведомление о вручении.
Каждая задача могла открывать до восьми процессов, в том числе два специальных высокоприоритетных процесса для обработки сообщений и внутренних прерываний (аварийных ситуаций). Для управления процессами использовался аппарат событий, а также прямые команды открытия, закрытия, прерывания и пуска. Одни задачи могли вызывать другие, выстраивая таким образом деревья подчинения произвольной глубины. При вызове подчиненной задачи можно было определить режим управления, при котором главной задаче в любой момент оказывались доступными любые ресурсы подчиненной и управление ее процессами, а если подчиненная задача не справлялась с обработкой своей аварийной ситуации, то главная получала соответствующее сообщение и могла предпринять необходимые действия. Эти возможности использовались при разработке таких задач-посредников, как, например, отладчик в режиме диалога.
ОС ИПМ ограниченно включала в себя систему программирования, что позволило довольно легко обеспечить такие свойства, как шаговая (incremental) трансляция и отладка в терминах языка. Большинство трансляторов были написаны на языке АЛМО (аналог языка Си), и использовали его в качестве выходного языка. Это позволило сначала раскрутить и отладить их на машине М-220, а затем (в 1969 г.) перенести на БЭСМ-6 в среду ОС ИПМ, что избавило разработчиков трансляторов и операционной среды от многих излишних взаимных претензий. Достаточно устойчивая производственная версия ОС ИПМ начала функционировать в 1970 г.
Мониторная система "Дубна"
Первый транслятор с языка Фортран для БЭСМ-6 был разработан в 1969 г. Н. Н. Говоруном, В. П. Шириковым и другими в ОИЯИ в Дубне. Этот транслятор затем был включен в Мониторную систему "Дубна".
Многоязыковая Мониторная система "Дубна" для БЭСМ-6 (1970 г.) обеспечивала управление заданиями, создание и использование многоуровневых библиотек программ. В систему входила библиотека программ общего назначения, совместимая с библиотекой Европейского центра ядерных исследований CERN. Мониторная система "Дубна" использовалась как с собственной ОС "Дубна" (с эффективными алгоритмами замещения страниц оперативной памяти, динамической сменой приоритетов задач, развитым аппаратом служебных задач и нерезидентных блоков), так и с другими ОС для БЭСМ-6.
В Мониторную систему "Дубна" входили следующие компоненты:
- транслятор (ассемблер) с автокода Мадлен на язык загрузки;
- транслятор с языка Фортран на язык загрузки;
- статический и динамический загрузчики;
- библиотекарь и общие библиотеки стандартных программ;
- редактор текстовой информации;
- системные программы ввода-вывода.
В дальнейшем в состав Мониторной системы были включены другие трансляторы и системы, в частности:
- Алгол-ГДР;
- Фортран-ГДР;
- Форекс оптимизирующий транслятор с языка, близкого к Фортрану 77;
- транслятор с языка Паскаль;
- Графор пакет графических программ;
- Поплан транслятор с языка POP-2.
Мониторная система "Дубна" была создана коллективом сотрудников ОИЯИ с участием специалистов из Института атомной энергии им. И. В. Курчатова и стран-участниц ОИЯИ (ГДР, ВНР, КНДР). В дальнейшем развитии системы приняли участие также сотрудники ИК АН УССР, ИАПУ ДВНЦ АН СССР, ИФВЭ и других организаций. Определяющий вклад в разработку системы внесли ее руководитель Н. Н. Говорун и ведущие сотрудники И. Н. Силин, В. П. Шириков, А. И. Волков, Р. Н. Федорова.
Проводились также исследования и разработки диалоговых систем, связанных, главным образом, с машиной БЭСМ-6 (системы Пульт, Димон, Мультидоступ и др. предоставляли пользователям возможности редактирования текстов программ и запуска задач в пакетную обработку).
В 70-х годах под руководством Л. Н. Королева и В. П. Иванникова (основные участники разработки И. Б. Бурдонов, А. Ю. Бяков, А. С. Косачев, С. Д. Кузнецов, В. И. Максаков, А. Н. Томилин) впервые была создана распределенная ОС многомашинного комплекса, обеспечивающая сетевое взаимодействие вычислительных процессов в ЭВМ комплекса, а также с процессами в глобальных сетях ЭВМ и использование внешних устройств всех ЭВМ в любых вычислительных процессах, выполняющихся в комплексе. Была фактически обеспечена работа "конвейера ЭВМ", предназначенного для обработку в режиме реального времени больших потоков информации о полетах космических аппаратов.
Все эти разработки, в особенности для ЭВМ БЭСМ-6, которая более десяти лет оставалась самой высокопроизводительной машиной в стране, и для многомашинного вычислительного комплекса реального времени АС-6, обеспечившего развитую обработку информации в центрах управления космическими полетами, во многом определили дальнейшие направления и характер исследований в отечественном системном программировании. За время эксплуатации нескольких сотен БЭСМ-6 была накоплена уникальная библиотека программ, которая стала беспрецедентным интеллектуальным богатством страны.
На представительных всесоюзных конференциях по программированию, состоявшихся в 1968 г. в Киеве и в 1970 г. в Новосибирске, широко обсуждались теоретические и практические достижения в области создания и использования отечественных ОС наряду с другими аспектами системного и прикладного программирования.
В ряде московских вузов с 60-х годов активно готовились кадры по специальности "Прикладная математика", включавшей и программирование. Большое значение имело открытие в 1970 г. факультета вычислительной математики и кибернетики в МГУ, которым руководил академик Андрей Николаевич Тихонов. Специализированные в области системного программирования кафедры возглавили Л. Н. Королев, Н. П. Трифонов, М. Р. Шура-Бура.
Был создан журнал "Программирование" (главными редакторами его были Н. П. Бусленко, Н. Н. Говорун; в настоящее время им является В. П. Иванников).
Московскими учеными написан ряд книг по ЭВМ, программированию, математическому и программному обеспечению ЭВМ и вычислительных комплексов, в которых отражены вопросы организации ОС ЭВМ ("Структуры ЭВМ и их математическое обеспечение" Л. Н. Королева, учебник "Программирование" Э. З. Любимского, Н. П. Трифонова и В. В. Мартынюка и другие монографии).