РАЗРАБОТКИ МОСКОВСКОЙ ШКОЛЫ ОПЕРАЦИОННЫХ СИСТЕМ ЭВМ
В.П.Иванников, Л.Н. Королев, Э.З. Любимский, А.Н. Томилин
Москва, Россия
Появление ко второй половине 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, а затем перенести на БЭСМ-6 в среду ОС ИПМ, что избавило разработчиков трансляторов и операционной среды от многих излишних взаимных претензий. Этот перенос состоялся в 1969 г. Достаточно устойчивая производственная версия ОС ИПМ начала функционировать в 1970 г.
Мониторная система “Дубна”
Первый транслятор с языка Фортран для БЭСМ-6 был разработан в 1969 году Н.Н. Говоруном, В.П. Шириковым и другими в Объединенном институте ядерных исследований (ОИЯИ) в Дубне. Этот транслятор затем был включен в Мониторную систему “Дубна”.
Многоязыковая Мониторная система “Дубна” для БЭСМ-6 (1970) обеспечивала управление заданиями, создание и использование многоуровневых библиотек программ. В систему входила библиотека программ общего назначения, совместимая с библиотекой Европейского центра ядерных исследований CERN. Мониторная система “Дубна” использовалась как с собственной операционной системой “Дубна” (с эффективными алгоритмами замещения страниц оперативной памяти, динамической сменой приоритетов задач, развитым аппаратом служебных задач и нерезидентных блоков), так и с другими ОС БЭСМ-6.
В Мониторную систему “Дубна” входили следующие компоненты:
- транслятор (ассемблер) с автокода Мадлен на язык загрузки;
- транслятор с языка Фортран на язык загрузки;
- статический и динамический загрузчики;
- библиотекарь и общие библиотеки стандартных программ;
- редактор текстовой информации;
- системные программы ввода-вывода.
В дальнейшем в состав Мониторной системы были включены другие трансляторы и системы, в частности:
- Алгол-ГДР;
- Фортран-ГДР;
- Форекс — оптимизирующий транслятор с языка, близкого к Фортрану 77;
- транслятор с языка Паскаль;
- Графор — пакет графических программ;
- Поплан — транслятор с языка POP-2.
Мониторная система “Дубна” была создана коллективом сотрудников ОИЯИ с участием специалистов из Института атомной энергии им. И.В.Курчатова и стран-участниц ОИЯИ (ГДР, ВНР, КНДР). В дальнейшем развитии системы приняли участие также сотрудники ИК АН УССР, ИАПУ ДВНЦ АН СССР, ИФВЭ и других организаций. Определяющий вклад в разработку системы внесли руководитель разработки Н.Н. Говорун, ведущие разработчики: И.Н. Силин, В.П. Шириков, А.И. Волков, Р.Н. Федорова.
Проводились также исследования и разработки диалоговых систем, связанных, главным образом, с машиной БЭСМ-6 (системы Пульт, Димон, Мультидоступ и другие предоставляли пользователям возможности редактирования текстов программ и запуска задач в пакетную обработку).
В 70-х годах под руководством Л.Н. Королева и В.П.Иванникова (основные участники разработки — И.Б. Бурдонов, А.Ю. Бяков, А.С. Косачев, С.Д. Кузнецов, В.И. Максаков, А.Н. Томилин) впервые была создана распределенная ОС многомашинного комплекса, обеспечивающая сетевое взаимодействие вычислительных процессов в ЭВМ комплекса, а также с процессами в глобальных сетях ЭВМ и использование внешних устройств всех ЭВМ в любых вычислительных процессах, выполняющихся в комплексе. Была фактически обеспечена работа “конвейера ЭВМ”, обеспечившего обработку в реальном времени больших потоков информации о полетах космических аппаратов.
**********
Все эти разработки, в особенности для ЭВМ БЭСМ-6*, которая более десяти лет оставалась самой высокопроизводительной машиной в стране, и для многомашинного вычислительного комплекса реального времени АС-6, обеспечившего развитую обработку информации в центрах управления космическими полетами, во многом определили дальнейшие направления и характер работ в отечественном системном программировании. За время эксплуатации нескольких сотен БЭСМ-6 была накоплена уникальная библиотека программ, которая стала беспрецедентным интеллектуальным богатством страны.
На представительных Всесоюзных конференциях по программированию, состоявшиеся в 1968 году в Киеве и в 1970 году в Новосибирске широко обсуждались теоретические и практические достижения в области разработки и использования отечественных операционных систем наряду с другими аспектами системного и прикладного программирования.
В ряде московских вузов с 60-х годов развивалась активная подготовка кадров по специальности “Прикладная математика”, включавшей и область программирования. Большое значение имело создание в 1970 году факультета вычислительной математики и кибернетики МГУ, которым руководил академик Андрей Николаевич Тихонов. Специализированными в области системного программирования кафедрами руководили Л.Н. Королев, Н.П. Трифонов, М.Р. Шура-Бура.
Был создан журнал “Программирование” (Главными редакторами журнала были Н.П. Бусленко, Н.Н. Говорун; в настоящее время им является В.П. Иванников).
Московскими учеными написан ряд книг по ЭВМ, программированию, математическому и программному обеспечению ЭВМ и вычислительных комплексов, где отражены вопросы организации операционных систем ЭВМ (“Структуры ЭВМ и их математическое обеспечение” Л.Н. Королева, учебник “Программирование” Э.З. Любимского, Н.П. Трифонова и В.В.Мартынюка, и др.).
* БЭСМ-6
Машина БЭСМ-6, разработанная к 1967 году коллективом ИТМ и ВТ под руководством С.А. Лебедева, занимает особенно важное место в развитии и использовании вычислительной техники в СССР. Она явилась первой в СССР суперЭВМ с производительностью 1 миллион оп/сек. Новые принципы, заложенные в архитектуру, структурную организацию машины и ее математическое обеспечение, повлияли на создание многих ЭВМ и вычислительных комплексов следующих поколений.
БЭСМ-6 была построена на элементной базе транзисторных переключателей тока и диодно-резисторной комбинаторной логики и ферритовой памяти (в 80-х годах в ИТМ и ВТ были разработаны машины на интегральных схемах, совместимые с БЭСМ-6). Была использована высокочастотная система элементов (впервые в СССР была достигнута тактовая частота 10 МГц) и компактная конструкция с короткими связями между блоками (использовался внутренний монтаж в стойке с двусторонним расположением блоков).
Конвейерный принцип организации управления (“водопроводный”, как называл его С.А. Лебедев) позволял совмещать выполнение до 14 машинных команд, находящихся на разных стадиях выполнения. При этом работа модулей оперативной памяти, устройства управления и арифметико-логического устройства осуществлялась параллельно и асинхронно, благодаря наличию буферных устройств промежуточного хранения команд и данных. Для ускорения конвейерного выполнения команд в устройстве управления были предусмотрены отдельная регистровая память хранения индексов, отдельный модуль адресной арифметики.
Ассоциативная память на быстрых регистрах (типа cache) позволяла автоматически сохранять в ней наиболее часто используемые операнды и тем самым сократить число обращений к оперативной памяти. “Расслоение” оперативной памяти обеспечивало возможность одновременного обращения к разным ее модулям из разных устройств машины.
В арифметико-логическом устройстве были реализованы ускоренные алгоритмы умножения и деления (умножение на 4 цифры множителя, вычисление 4-х цифр частного за один такт синхронизации), а также сумматор без цепей сквозного переноса, представляющий результат операции в виде двухрядного кода (поразрядных сумм и переносов) и оперирующий с входным трехрядным кодом (новый операнд и двухрядный результат предыдущей операции).
В БЭСМ-6 были предусмотрены развитая система прерываний, страничная организация памяти с аппаратным преобразованием математических (виртуальных) адресов в физические адреса (механизм “приписки”), аппаратные механизмы защиты памяти, что обеспечивало возможность организации мультипрограммного режима работы, динамического распределения памяти в процессе вычислений средствами операционной системы, параллельной с выполнением вычислений во всех задачах работы многих устройств внешней памяти и ввода-вывода.
Основные участники разработки БЭСМ-6: С.А. Лебедев (главный конструктор), В.А. Мельников, Л.Н. Королев (заместители главного конструктора), Л.А. Зак, В.Н. Лаут, В.И. Смирнов, А.А. Соколов, А.Н. Томилин, М.В. Тяпкин. Большой вкдад в создание машины внесли А.В. Аваев, В.Я. Алексеев, О.А. Большаков, В.Ф. Жиров, В.А. Жуковский, Ю.Н. Знаменский, В.Л. Ли, Ю.И. Митропольский, В.С. Чехлов, А.С. Федоров, О.К. Щербаков и др.
Ведущими разработчиками программного обеспечения БЭСМ-6 являлись Л.Н. Королев, В.П. Иванников, А.Н. Томилин, Э.З. Любимский, Н.Н. Говорун, В.П. Шириков, И.Н. Силин, В.М. Курочкин, Д.Б. Подшивалов, М.Г. Чайковский, В.С. Штаркман, Ю.М. Баяковский, В.Ф. Тюрин.
Разработка БЭСМ-6 являлась ярким примером свойственного школе С.А. Лебедева творческого подхода к созданию ЭВМ, учитывающего все возможности, предоставляемые технической базой, математическим моделированием структурных решений, возможности производства для достижения наилучших характеристик машины.
При создании БЭСМ-6 были заложены основные принципы системы автоматизации проектирования ЭВМ (САПР). Компактная запись схем машины формулами булевой алгебры явилась основой ее эксплуатационной и наладочной документации. Документация для монтажа выдавалась на завод в виде таблиц, полученных на инструментальной ЭВМ.
Разработка БЭСМ-6 явилась также примером успешной совместной работы инженеров и математиков по созданию вычислительных систем.
БЭСМ-6 серийно выпускалась Московским заводом САМ с 1967 г. в течение 17 лет, ею были оснащены основные вычислительные центры СССР.
За время более чем 25-летнего активного использования БЭСМ-6 и ее преемников накоплено огромное по составу, чрезвычайно важное по значимости математическое обеспечение.
В 1971-73 гг. с использованием БЭСМ-6 была создана многомашинная система с переменной структурой АС-6 для задач управления космическими полетами в СССР.