автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Базис алгоритмического программирования и его реализация в классе векторных многопроцессорных супер-ЭВМ

доктора физико-математических наук
Баяков, Александр Юрьевич
город
Москва
год
1992
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Базис алгоритмического программирования и его реализация в классе векторных многопроцессорных супер-ЭВМ»

Автореферат диссертации по теме "Базис алгоритмического программирования и его реализация в классе векторных многопроцессорных супер-ЭВМ"

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. М.В.ЛОМОНОСОВА

На правах рукописи

БЯКОВ АЛЕКСАНДР ЮРЬЕВИЧ

БАЗИС АЛГОРИТМИЧЕСКОГО ПРОГРАММИРОВАНИЯ И ЕГО РЕАЛИЗАЦИЯ В КЛАССЕ ВЕКТОРНЫХ МНОГОПРОЦЕССОРНЫХ СУПЕР-ЭВМ

Специальность 05.13.11

- Математическое и программное обеспечение вычислительных машин,комплексов, систем и сетей

Автореферат

диссертации на соискание ученой степени доктора физико-математических наук

Москва - 1992

Рабата выполнен^, в Институте точной механики и вычислительной техники им. С.А.Лебедева РАН.

Официальные оппоненты:

Доктор физико-математических наук,

Пр°феССОр М.Р.Шура-Бура

Доктор физико-математических наук,

профессор » ,т т-

^ г А.Н.Томилин

Доктор физико-математических наук,

профессор В.Б.Бетелин

Ведущая организация - НИЦЭВТ

Защита состоится ' /2 " 199.7 г.

в // час. на заседании Специализированного совета Д.053.05.38 по математике при МГУ им. М.В.Ломоносова по адресу: 119899, Москва, ГСП-3, Ленинские' горы, МГУ, Факультет вычислительной математики и кибернетики, ауд.685.

С диссертацией можно ознакомиться в библиотеке факультета вычислительной математики и кибернетики МГУ.

Автореферат разослан *_* _199_г.

Ученый секретарь совета,

профессор Н.П.Трифонов

трудовые беспорядки и действия этнических групп (социальные науки).

Французская фирма Peugeot на CRAY Х-MP и CRAY Y-MP моделирует столкновение автомобилей с препятствиями, решает задачи САПР (автомобилестроение).

Германская фирма HLRZ Juluch на CRAY Y-MP разрабатывает модель для сверхпроводников высокой температуры (физика).

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

Передовые зарубежные фирмы по разработке супер-ЭВМ в настоящее время работают над созданием ЭВМ с производительностью в десятки и сотни миллиардов операций в секунду.

В нашей стране работа по созданию супер-ЭВМ ведется с начала 80-х годов. ИТМиВТ им. С. А. Лебедева практически включился в эту деятельность с середины 80-х годов. В соответствии с решениями правительства страны и других директивных органов была начата разработка универсальной вычислительной супер-системы "Эльбрус 3-1" на базе модульных конвейерных процессоров (МКП) с производительностью в многопроцессорной комплектации (до 8-ми МКП) в несколько миллиардов операций в секунду над вещественными числами 64-х разрядного формата.

Одним из условий разработки ВС "Эльбрус 3-1" было использование отечественной элементной и конструктивной базы и внедрение разработки в производство на отечественных заводах. Это условие потребовало разработки всех уровней технологического цикла производства супер-ЭВМ и повлекло за собой необходимость разработки новой архитектуры ЭВМ и, как следствие, нового базового системного программного обеспечения. Тем самым при разработке супер-системы действовали два фактора: с одной стороны, необходимо было обеспечить возможность ее эффективного использования при современных методах и технологиях программирования, а с другой стороны, необходимо было обеспе-

- 2 -

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

В вычислительном центре (ВЦ) штата Северная Каролина (США) на CRAY Y-MP 8/432 и CONVEX С220 решаются задачи немедленной визуализации осевой томографии (медицина), проводится региональное моделирование осаждения кислоты и выбросов метеорологических загрязняющих веществ (экология).

В ВЦ города Сан-Диего (шт. Калифорния, США) на CRAY Х-МР/48 моделируется связь между структурой и биологической функцией молекулы (биохимия), разработана улучшенная климатическая модель (атмосферные исследования), рассчитываются конфигурации ускорителей элементарных частиц (физика).

В ВЦ штата Огайо (США) на CRAY Y-MP/864 ведется автоматизированный расчет состава лекарств (медицина).

В ВЦ университета города Калгари (Канада) с помощью CYBER 205 ведутся фундаментальные исследования молекулярных структур (химия), проводится оценка волоконно-оптических линий связи (электронная техника), прогнозируются районы нефтеносных песков (нефтедобыча), моделируется динамика эволюции галактик (астрофизика).

В теоретическом центре науки и техники Корнельского университета (США) на IBM 3090-600, дополненных процессорами фирмы FPS, ведется моделирование поведения релятивистских скоплений звезд и массированных нейтрино (космология) , изучают сложную динамику аналитических уравнений (математика), моделируют взаимодействие атомов в материалах (материаловедение), моделируют миграции населения,

- I -

чить возможность ее технологической реализации в отечественной промышленности.

Учитывая современные достижения в области промышленной технологии, а также достижения в области программирования для супер-ЭВМ с архитектурой различных типов, в качестве основополагающих структурных принципов получения супер-производительности для ВС "Эльбрус 3-1" были выбраны принцип многопроцессорности вычислительной системы с относительно малым числом процессоров (крупно структурированная М1МЛ система) и принцип векторно-конвейерной обработки в центральных процессорах. Вследствие этого разработка ВС "Эльбрус 3-1" и ее центральных процессоров -МКП была проведена в классе векторных многопроцессорных супер-ЭВМ.

Перечисленные обстоятельства явились условиями постановки задачи " настоящей диссертационной работы. Поскольку существовала объективная необходимость помимо множества сложнейших проблем, связанных с разработкой аппаратных средств ВС "Эльбрус 3-1" (структурные, схемотехнические и конструктивные решения, разработка элементной базы, подсистем, электропитания и охландения, технологии производства многослойных печатных плат и т. д.), решить и проблемы разработки нобой архитектуры (под архитектурой ЭВМ понимается спецификация ее аппаратуры, используемая при программировании) и базового системного программного обеспечения, потребовалось создание теоретической основы, позволяющей из общих теоретических положений получать практические решения по крайней мере в классе векторных многопроцессорных супер-ЭВМ при разработке новых архитектур и системных программных средств.

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

- 3 -

системе ЭВМ и его поддержки в других системных программных компонентах.

В связи с этим тема настоящей диссертационной работы является актуальной как в теоретическом, так и в практическом плане.

В подмножество языков программирования, семантика которых подвергалась при выполнении данной работы наиболее тщательному анализу, вошли языки семейства Алгол (Алгол 60, 68), семейства Фортран (Фортран 66, IV, 77, 90), ПЛ-1, семейства Паскаль (Паскаль, Турбо-Паскаль 5.0, 5.5, 6.0), семейства Си (Си, Турбо Си, С++, Турбо Си++), Ада, Модула-2, Смолток 80, Оккам.

Дополнительно учитывались особенности языков логического, функционального и концептуального программирования.

В качестве основных технологий программирования рассматривались технологии модульного программирования, объектно-ориентированного программирования, параллельного программирования и надежного программирования, взятые шире, чем они представлены в языках программирования.

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

Одним из критериев правильности получаемых практических результатов была эффективность программирования различных численных методов, особенно из области математической физики, общих методов компиляции и методов адаптации алгоритмов и программ к особенностям архитектуры супер-ЭВМ.

Следствием одного из предварительных условий выполнения данной работы, а именно, ориентации МКП на векторную обработку, явился поиск архитектурных решений для него в классе CISC архитектур (отметим, что RISC архитектуры ориентированы на скалярную обработку, a VLIW архитек-

- 4 -

гуры - на супер-скалярную обработку). Это обстоятельство позволило повысить семантический уровень аппаратно реализуемых средств базиса алгоритмического программирования без нарушения общих принципов построения CISC архитектуры и снижения эффективности ее аппаратной реализации.

Для более полного понимания обстоятельств выполнения данной работы следует подчеркнуть положительный теоретический и практический опыт автора (и многих других разработчиков МКП и ВС "Эльбрус 3-1") по созданию, внедрению, сопровождению и развитию многомашинного вычислительного комплекса АС-б, использовавшегося в ряде центров страны, обеспечивающих управление космическими полетами. Многие принципы построения комплекса АС-6 и его системного программного обеспечения явились отправным пунктом для данной работы. Важную роль сыграл также опыт, полученный автором при постановке на АС-6 промышленных программ вычислительного характера и больших программных комплексов управления, работающих в распределенной многомашинной среде в режиме реального времени.

Таким образом в работе развивается научное направление: разработка архитектуры и системного программного обеспечения векторных многопроцессорных. супер-ЭВМ на основе концепции базиса алгоритмического программирования, а также решается в&таая практическая задача разработки архитектуры и базового системного программного обеспечения МКП и ВС "Эльбрус 3-1".

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

- разработка концепции базиса алгоритмического программирования, определение состава и семантики базисных средств, необходимых и достаточных для эффективного выражения семантики алгоритмических языков и основных технологий программирования;

- выделение аппаратно реализуемого в классе CISC архитектур для векторных многопроцессорных супер-ЭВМ подмножества базиса алгоритмического программирования;

- разработка принципов, методов, спецификаций и основных алгоритмов реализации базиса алгоритмического программирования в архитектуре, операционной системе и других компонентах системного программного обеспечения МКП и ВС "Эльбрус 3-1";

- практическое использование полученных решений в разработке ВС "Эльбрус 3-1" и ее базового системного программного обеспечения как на этапах проектирования и программирования (изготовления), так и на этапах отладки и практического освоения пользователями.

Новизна научных результатов

1. В диссертационной работе исследовано новое научное направление: разработка архитектуры и системного программного обеспечения векторных многопроцессорных супер-ЭВМ на основе концепции базиса алгоритмического программирования.

2. Предложен новый базисный уровень выражения семантики программ и основных технологий программирования. Определен состав и семантика базисных средств.

3. Разработана и специфицирована новая архитектура для отечественной векторной многопроцессорной супер-ЭВМ миллиардного диапазона производительности (ВС "Эльбрус 3-1" на базе МКП), с семантикой выделенного подмножества базиса алгоритмического программирования.

4. Разработаны новые спецификации с семантикой базисных средств для операционной системы универсального применения и других системных средств организации вычислительного процесса на супер-ЭВМ.

5. Разработан новый машинно-ориентированный язык программирования с основными свойствами языков высокого уровня и эффективностью реализации языков ассемблерного типа-, построенный по принципам языкового выражения базисных возможностей.

6. Предложен новый подход к организации объект-

- 6 - .

но-ориентированного программирования с пассивными и активными объектами на основе базисных средств в среде ОС МКП.

7. Предложена новая методика и алгоритмы реализации основных базисных средств в архитектуре и ОС МКП, основанные на учете особенностей области применения супер-ЭВМ на базе МКП и семантической целостности базиса алгоритмического программирования.

Методы исследования и разработки. разных этапах теоретических исследований, принятия решений и практической разработки архитектуры и программного обеспечения МКП и ВС "Эльбрус 3-1" применялись следующие методы:

- анализа области применения супер-ЭВМ, в частности, анализа промышленных задач в ряде ведущих научных центров страны (прикладной "математики и механики, физических исследований, управления космическими полетами);

- анализа методов разработки супер-ЭВМ на примере супер-ЭВМ производства США и Японии и отечественных разработок;

- моделирования структуры ЭВМ;

- интерпретации и моделирования архитектуры ЭВМ;

- структурного проектирования и программирования;

- модульного программирования;

- объектно-ориентированного программирования;

- параллельного программирования;

- синхронизации, предупреждения и разрушения тупиков;

- надежного программирования;

- управления вычислительными ресурсами различных типов (процессорами, оперативной памятью, каналами ввода-вывода, внешней памятью, устройствами и т. д.);

- управления структурированными данными;

- синтаксического анализа и семантического разбора;

- дискретной математики;

- математической логики;

- теоретической кибернетики.

- 7 -

Практическая ценность работы. Теоретические результаты работы были использованы при практической разработке МКП и ВС "Эльбрус 3-1". Основные архитектурные решения МКП и ВС "Эльбрус 3-1" соответствуют выводам настоящей работы. Структура, функциональные возможности и спецификации системного программного обеспечения и его компонентов, а также используемая методика программирования в полной мере отражают результаты и выводы диссертационной работы.

Внедрение результатов. Результаты работы внедрены в ИТМиВТ им. С. А. Лебедева в разработку МКП и ВС "Эльбрус 3-1", в НФ ИТМиВТ, ВНИИЭФ, ЦНИИМАШ и НИВЦ МГУ им. ЕВ. Ломоносова в разработку системного и прикладного программного обеспечения. Имеются соответствующие акты о внедрении. Кроме того, имеется акт о внедрении результатов работы в педагогическую практику на факультете ВМиК МГУ им. М. В. Ломоносова.

Личный вклад автора. Основные теоретические результаты работы получены лично автором. Отработка архитектурных решений проводилась совместно с коллективом специалистов по разработке аппаратных средств. Разработка программного обеспечения МКП и ВС "Эльбрус 3-1" проводилась под руководством и при непосредственном участии автора. Основной вклад автором был внесен в проектирование всех программных подсистем базового системного программного обеспечения МКП и ВС "Эльбрус 3-1" и в разработку спецификаций этих подсистем и составляющих их модулей, в программирование и сопровождение программных модулей ОС МКП, ответственных за реализацию основных базовых механизмов языков программирования (процедурного, исключительных ситуаций, адресации, виртуальной памяти, контекстной защиты, динамического знакомства, внутренних и внешних прерываний и некоторых других). в методику и организацию автономной и комплексной отладки отдельных программных подсистем, базового системного программного обеспечения в целом и первых прикладных задач, а также в разработку

- 8 -

программной документации.

Автор является первым заместителем главного конструктора МКП и руководителем работ по программному обеспечению МКП и ВС "Эльбрус 3-1".

В 70-е и начале 80-х годов автор занимался проблемами создания, внедрения, сопровождения и развития многомашинного вычислительного комплекса АС-б и его системного программного обеспечения , многие принципы организации и реализации которого послужили первоначальной основой для настоящих исследований. За работы по комплексу АС-б автор был удостоен в 1982 году звания лауреата Государственной премии СССР в области вычислительной техники.

Апробация работы. Основные результаты диссертации докладывались на всесоюзной конференции-выставке "Проблемы развития высокопроизводительных вычислительных систем" (Непецино, 1991), международной конференции "Высокопроизводительные вычислительные системы в управлении и научных исследованиях"(Алма-Ата, 1991), всесоюзной конференции по методам численного решения многомерных нестационарных задач математической физики (Арзамас-16, 1991), всесоюзном семинаре "Проектирование и создание многомашинных и многопроцессорных систем реального времени" (Москва, 1990), всесоюзной конференции "Высокопроизводительные вычислительные системы для комплектации центров математического моделирования" (Новосибирск, 1989), всесоюзной школе "Автоматизация и эффективность научных исследований" (Протвино, 1988), всесоюзной школе по супер-ЭВМ (Абрау-Дюрсо, 1988), I всесоюзной конференции "Проблемы создания супер-ЭВМ, супер-систем и эффективность их применения" (Минск, 1987), двенадцатом всесоюзном семинаре по вычислительным сетям (Одесса, 1987), рабочей группе по программному обеспечению банков данных (Алма-Ата, 1977), научно-техническом совещании "Вопросы проектирования электрической части электростанций" (Москва, 1974), всесоюзной конференции "Разработка математического обеспечения ОАСУ" (Кишинев, 1973), научно-технических конференциях по вычислительной технике (Москва, ИТМиВТ,

- 9 -

1973, 1974, 1981, 1983, 1985,1989).

Использование научных результатов в педагогической

практике. Основные результаты работы входят в программу спецкурса "Программное обеспечение супер-ЭВМ и технологии программирования", который автор читает последние годы в МГУ им. М. В. Ломоносова по кафедре АСВК факультета ВМиК. Под руководством автора было выполнено и защищено 3 кандидатских диссертации, в которых были развиты и детализированы отдельные положения данной работы. В настоящее время под руководством автора выполняют работу 5 аспирантов в аспирантуре ИТМиВТ им. А. С. Лебедева и аспирантуре ВМиК МГУ им. М. К Ломоносова, темы диссертаций которых связаны с развитием программного обеспечения МКП и ВС "Эльбрус 3-1".

Автор является заведующим филиалом кафедры АСВК ВМиК МГУ им. Е В. Ломоносова при ИТМиВТ им. С. А. Лебедева РАЕ Тематика научной и педагогической деятельности филиала во многом определяется проблемами, рассмотренными в настоящей диссертационной работе.

Публикации. По теме диссертации опубликовано 80 научных работ. Из них 48 печатных работ и 32 работы на правей рукописи (отчеты, проекты и т. п.). По основной тематике работы можно условно разделить следующим образом: операционные системы - 20, управление данными на внешней памяти - 10, языки и системы программирования - 8, организация программного обеспечения - 7, архитектура ЭВМ -6, интерпретация и моделирование ЭВМ - 7, тестирование и отладка - 5, технология программирования - 5, распределенные программные системы - 4, применение ЭВМ - 8. Одной из последних работ автора является двухтомная монография "Модульный конвейерный процессор". В список литературы из них включено 20 работ, представляющих результаты исследований в наиболее завершенном виде. Полный список научных работ прилагается отдельно.

чающих собственно МКП, модули массовой оперативной памяти (МОП), различные фронтальные ЭВМ и периферийные подсистемы. Даны принципы объединения этих компонентов в единую вычислительную систему специально разработанными модульными средствами коммутации и передачи данных, названными системным каналом.

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

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

Приведен состав базового программного обеспечения и отмечены перспективы его развития.

Вторая глава в целом посвящена построению базисных средств обработки данных и методам их реализации в ВС

- 12 -

Объем и структура работы. Диссертация состоит из введения, пяти глав, заключения и списка литературы (86 наименований). Работа содержит 228 страниц, из которых 5 страниц составляет титульный лист и оглавление, 215 страниц составляет основной текст диссертации и 8 страниц -список литературы.

СОДЕРЖАНИЕ РАБОТЫ

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

Кроме того, во введении приводятся данные об апробации основных результатов работы, их использовании в педагогической практике, о публикациях по теме диссертации и структуре работы. Дается краткое содержание ее разделов.

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

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

Приведен перечень основных компонентов ВС МКП, вклю-- II -

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

Определено понятие вектора кейс линейно параметризованного одномерного подмножества базисного массива и понятие семейства векторов как линейно параметризованного подмножества базисного массива. Доказывается, что компоненты вектора размещаются в оперативной памяти с постоянным шагом адреса и что семейство векторов представляется множествами векторов с одним и тем же шагом адреса их компонентов для всего множества

Показана достаточность понятий вектора и семейства векторов для выражения семантики вырезок массивов и параметризованных подмассивов, используемых в расширениях языков программирования, ориентированных на супер-ЭВМ.

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

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

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

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

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

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

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

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

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

На основе анализа семантики программного модуля по- 15 -

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

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

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

Определены дополнительные требования к базису со стороны механизма раздельной подчиненной компиляции. Показана целесообразность использования на уровне базиса дескриптора набора элементов модуля для реализации динамического доступа к статическим объектам модуля.

Предложена классификация подходов к реализации объектно-ориентированного программирования. Основными классами названы подходы с использованием пассивных оперативных объектов, пассивных долгоживущих объектов, активных оперативных объектов и активных долгоживущих объектов. На основе анализа положений общей концепции объек-

- 16 -

тно-ориентированного программирования и места различных языков программирования в предложенной классификации показано, что поддержка концепции ООП в языках типа С++, Turbo Pascal 5.5 (6.0) и Smalltalk не требует введения в базис алгоритмического программирования дополнительных средств.

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

Предло;.-.эна организация модуля загрузки ОС МКП, обладающая всеми свойствами базисного библиотечного модуля. Предложены семантические расширения модуля загрузки на случай объектно-ориентированного программирования, названные настраиваемыми модулями. Предложены семантические расширения модуля загрузки на случай параллельного и распределенного программирования в терминах процессов, выполняющихся в общей и раздельных виртуальных памятях. Введено понятие образца библиотечного модуля и предложено использование образцов модулей для библиотечного описания типов данных, процессных и задачных типов и некоторых других типов.

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

- 17 -

из разных подсистем.

Предложен подход и .средства ОС МКП к организации объектно-ориентированного программирования с пассивными и активными объектами на основе использования настраиваемых модулей и образцов процессов и задач.

Для пассивных и активных объектов разработаны правила описания типов объектов и самих объектов в библиотеках программных модулей, правила описания объектов в программных модулях и порядок предвыполнения этих описаний, правила организации выполнения операций над объектами. Выделены особенности работы с объектами предопределенных в ОС МКП типов. Описаны возможности работы с общими для разных прикладных программ пассивными и активными объектами. Отмечена возможность использования комбинированных технологий объектно-ориентированного программирования за счет сочетания технологий работы с"пассивными и активными объектами.

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

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

Предложен алгоритм выполнения оператора возбуждения исключения, реализующий семантику этого оператора и согласованный с процедурным механизмом и модульной организацией программ. Определены дополнительные требования к базису для реализации механизма исключительных ситуаций в полном объеме. Предложены архитектурные решения и средства поддержки в ОС МКП для реализации механизма исключительных ситуаций в МКП.

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

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

- 19 -

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

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

Предложены средства в ОС ..МКП для организации ввода-вывода, удовлетворяющие всем требованиям к базисным средствам ввода-вывода и обеспечивающие гибкие возможности по статическому и динамическому определению контекста ввода-вывода программ.

В качестве реальных объектов ввода-вывода с интерфейсами последовательного файла ОС МКП обеспечивает архивные файлы, вводные и выводные файлы подсистемы пакетной обработки, локальные диалоговые терминалы и принтеры, удаленные диалоговые терминалы, принтеры и файлы, объекты, реализованные самим пользователем, и пустые объекты.

В качестве реальных объектов ввода-вывода с интерфейсами файла прямого доступа ОС МКП обеспечивает архивные файлы, области внешней памяти и области МОП, а также объекты, реализованные самим пользователем.

Доступ к объектам ввода-вывода возможен либо средствами прямого управления, либо через управление стандартными потоками ввода-вывода, определяемыми в контексте каждого процесса. На примере управления объектами ввода-вывода проиллюстриррвано использование объектно-ориентированного программирования в среде ОС МКП.

Четвертая глава целиком посвящена построению ба; зисных средств параллельного программирования.

В частности, в ней выделены ресурсы базиса, необходимые для поддержания статических и динамических про- 20 -

цессов, в том числе ресурсы стека активаций, ресурсы входов в процесс и ресурсы по- учету его активности. Определены операции управления ресурсами процесса. Определено начальное состояние стека активаций для статического и динамического процесса и порядок их корректного запуска при предвыполнении их описаний, согласованные с правилами статической видимости и динамического доступа языков программирования.

Для статических процессов (уровня библиотечного модуля) определение начального состояния включает в себя, в основном, формирование в стеке активаций исходного состояния активации тела этого процесса, фи этом начальное состояние включает в себя дескриптор элементов объемлющего библиотечного модуля и дескриптор точки входа в тело процесса Начальным состоянием всех стеков статических уровней такого процесса является пустое состояние.

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

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

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

Введено понятие главного процесса программы и определены его семантические отношения со статическими и динамическими процессами этой программы. На основе этого

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

Уточнены правила взаимной видимости процессов и предложено обобщение механизма дескрипторов на случай процессов.

На основе анализа свойств различных компонентов программы ,в частности, данных, подпрограмм, входов в процессы, исключений и наборов объектов предложены базисные средства поддержки их использования в параллельных процессах.

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

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

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

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

- 22 -

входа

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

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

Определены требования к базису для реализации процессного типа, описанного в статическом и динамическом контексте, и ссылочного типа для объектов процессного типа.

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

Проделан анализ эффективности использования параллельных ветвей различной степени удаленности в ВС МКП.

Отмечена комплексная взаимоувязанность средств модульного, объектно-ориентированного и параллельного прог-раммиррвания, преврапщицая эти технологии в грани одной

- 23 -

общей технологии программирования.

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

Семантика динамического процесса ОС МКП полностью соответствует семантике понятия task в языке Ада, описанного в теле подпрограммы, 'программного блока или теле другого task.

Семантика статического процесса ОС МКП полностью соответствует семантике понятия task в языке Ада, описанного на уровне библиотечного модуля (пакета).

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

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

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

- 24 -

Предложены средства для организации обших данных для процессов всех видов. Для процессов, выполняющихся в одной виртуальной памяти, все данные, размещенные в этой виртуальной памяти, являются потенциально общими. Это означает, что через механизмы распространения адресной информации (правила видимости, реализуемые процедурным механизмом, правила видимости для библиотечных модулей, передача параметров подпрограммам и входам в процессы, уже имеющаяся общая память) любые данные могут стать доступными двум и более процессам, выполняющимся в этой виртуальной памяти.

В главе предложены правил-} назначения процессоров для процессов разных видов, согласованные с их семантикой. При библиотечном модуле, содержащем описание глобального процесса-задачи, в библиотек'"- возможно размещение указания конфигурации запуска этого процесса. Конфигурация запуска содержит указание стратегий назначения МКП и может быть задана в физической или виртуальной нумерации МКП. Локальные задачи, статические и динамические процессы запускаются всегда на том же МКП, что и процесс, породивший их.

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

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

В классе квантования процесс, полностью отработавший на процессоре свой текущий квант, получает, как правило, больший квант, но меньший приоритет. А процесс, уступивший сам процессор, недоработав свой квант, получает, как правило, меньший квант, но больший приоритет. Пары квант-приоритет берутся из таблицы класса процесса.

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

Каждый пользователь может приписывать свои процессы к любым классам, описанным в таблице классов процессов ОС МКП и разрешенным для данного пользователя. Создание нового класса с уже реализованной стратегией управления осуществляется вставкой в таблицу классов нового элемента. Реализация новой стратегии требует программирования отдельного модуля с общей для всех таких модулей спецификацией.

'Предложен набор средств синхронизации, реализуемых через общую ' память и обеспечивающих расширенные возможности по реализации соответствующих базисных средств. ОС МКП обеспечивает работу с семафорами нескольких типов ("обычным", "с контролем при открытии", "рекурсивным" и "групповым)", а также с таймерами, предназначенными для организации временных задержек различной длительности (от 10 мкс до нескольких суток). С помощью этих средств легко реализуются наиболее часто встречающиеся схемы синхронизации, такие, как взаимное исключение, событийная синхронизация, синхронизационные захваты ресурсов в различных режимах, синхронизация в рекурсивных подпрограммах.

Таймеры в ОС МКП могут быть одноразовые и периодике -

ческие. Одноразовый таймер после срабатывания не изменяет своего состояния до явной переустановки. Периодический таймер после очередного срабатывания автоматически переустанавливается с тем же временным интервалом.

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

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

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

Предложены дополнительные средства поддержки параллельного программирования, такие, как механизм прерываний

- ¡¿7 -

прикладного уровня и механизм уведомлений об открытии семафоров.

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

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

На уровне базиса должна быть обеспечена возможность для прикладных программ перехвата межпроцессорных прерываний. Базис должен обеспечить возможность динамического образования и разрушения групп процессов из процессов прикладной программы с выделением процессоров сразу под всю группу процессов и освобождением процессоров сразу из-под всей группы.

Предложена методика реализации базисных средств, поддержки микротаскинга в архитектуре и ОС МКП.

Пятая глава в целом посвящена рассмотрению дополнительных условий и требований к реализации базиса алгоритмического программирования, определяемых областью применения супер-ЭВМ и, в частности, ВС МКП и непосредственно не вытекающих из семантики базисных средств.

В этой главе предложены дополнительные средства управления основными ресурсами вычислительной системы (процессорами, оперативной памятью, каналами ввода-вывода). ориентированные на большие программные системы и обеспе-

- 28 -

чивающие динамическое управление, параллельное или псевдопараллельное (мультиплексное) использование, автоматическое и программно управляемое распределение этих ресурсов.

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

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

В качестве явного средства базисной поддержки переиспользования процессора можно рассматривать возможность явного указания текущим процессом необходимости переключения процессора на выполнение указываемого процесса

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

- 29 -

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

Среди явных базисных средств управления переиспользованием оперативной памяти можно выделить уровень управления фрагментами памяти, ориентированный на внутренние потребности системы программирования и на программы низкого уровня. На этом уровне базисом должно обеспечиваться выделение и освобождение фрагментов памяти.

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

Целесообразно допустить возможность включения в состав библиотечного модуля наряду с подпрограммой инициализации также подпрограмму терминации модуля. Такая подпрограмма должна вызываться при разгрузке модуля перед завершением его статических процессов и освобождением ресурсов из-под модуля.

Базисные средства динамического вызова библиотечного модуля могут быть явными и неявными. Явные средства предполагают включение в соответствующую программную единицу операторов обращения к базису. Неявные средства предполагают реализацию в базисе прерывания по использованию дескрипторов внешних по отношению к выполняемому модулю объектов в случае, если межмодульные связи не отредакти-

- 30 -

рованы.

Эффективное неявное динамическое переиспользование каналов ввода-вывода достигается за счет реализации в базисе на уровне управления вводом-выводом дополнительных объектов для буферизации вводной и выводной информации и возможно большего отделения этапа выполнения программы от этапов выполнения операций ввода-вывода в реальных каналах. Динамическое переиспользование каналов ввода-вывода на нижнем уровне управления ими обеспечивается аппаратно или программно реализованной техникой мультиплексирования.

Для явного динамического переиспользования каналов ввода-вывода в базисе должны быть предусмотрены средства динамического управления (запроса, выполнения операций и отказа) физическими ресурсами ввода-вывода в режиме прямого доступа (on line).

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

В главе предложена архитектура подсистемы внешних прерываний и другие базисные средства, ориентированные на работу в "жестком" реальном времени. Подсистема внешних прерываний включает в себя аппаратно реализованные средства передачи-приема так называемых сообщений прерываний (8-128 байтов информации, сопровождаемые сигналом прерывания). В ВС МКП активные абоненты (собственно МКП и адаптеры подключения внешних систем) могут обмениваться между собой сообщениями-прерываниями, которые несут в себе команды управления, информацию о завершении или текущем состоянии обмена, информацию об активизации внешних абонентов и т. п. В МКП приходящие сообщения-прерывания сортируются в соответствии с их приоритетом по восьми аппаратно поддерживаемым буферам. Наличие сообщения в любом

- 31 -

из буферов инициирует прерывание в каждом из потоков команд данного №01 В каждом управлении потоком команд предусмотрена возможность раздельной блокировки прерывания для каждого буфера сообщений прерываний. За счет этого возможна организация обработки внешних потоков сообщений-прерываний, направленных в произвольный буфер как раздельно в любом из потоков команд, так и совместно в двух потоках команд одного МКП. В ВС МКП обеспечиваются программное формирование конфигурации взаимосвязей абонентов ВС МКП и соответствия подканалов их адаптеров буферам сообщений- прерываний МКП. За счет этого обеспечивается возможность реконфигурации ВС МКП на уровне абонентов и на уровне подканалов адаптеров.

В каждом управлении потоком команд МКП аппаратно реализован высокоточный таймер. На базе этих таймеров ОС МКП обеспечивают реализацию программных таймеров и временного контроля в операциях синхронизации с произвольными временными интервалами.

Предложена методика организации программных систем реального времени в среде ОС МКП и выделены дополнительные базисные средства их поддержки.

Предложен для ВС МКП базовый машинно-ориентированный на области ассемблерного программирования язык. Показано, что использование возможностей базиса алгоритмического .программирования позволило наделить базовый язык основными синтаксическими и семантическими свойствами языков высокого уровня и поддержать на уровне языка современные технологии программирования (модульное, объектно-ориентированное, параллельное и надежное) при сохранении ассемблерной эффективности получаемых программ, высокой скорости компиляции и относительной простоты компилятора.

На основе анализа основных режимов использования ВС МКП предложен состав подсистем ОС МКП для динамического управления вычислительным процессом в системе. Среди подсистем динамического управления выделены подсистема разделения времени, подсистема пакетной обработки, подсистема удаленного доступа, подсистема протоколирования работы и сбора статистики и подсистема оператора.

- 32 -

Предложена организация подсистем диалогового обслуживания и пакетной обработки для локальных и удаленных пользователей.

Предложены принципы построения командного языка ОС МКП. Предложена организация подсистемы протоколирования работы и сбора статистики и подсистемы оператора.

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

В заключении диссертационной работы сформулированы ее основные результаты.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ

Основным обобщенным теоретическим и практическим результатом диссертационной работы является исследование подходов и разработка архитектуры и системного программного обеспечения для новой отечественной вычислительной супер-системы "Эльбрус 3-1" миллиардного диапазона производительности на базе модульных конвейерных процессоров.

В теоретической части получены следующие результаты:

1. Разработана концепция базиса алгоритмического программирования. Определена семантика понятий и операций базисного уровня, достаточных для эффективного выражения семантики современных алгоритмических языков и технологий программирования, включая модульное, параллельное и объектно-ориентированное программирование.

2. Разработана конкретизация базиса алгоритмического программирования в термине« CISC архитектуры и спецификаций операционной среды. Разработана действующая модель архитектуры и операционной среды в виде программного инструментального комплекса.

- 33 -

3. Разработан базовый язык программирования с семантикой, адекватной базису алгоритмического программирования. Реализация языка подтвердила эффективность трансляции языковых конструкций в базисные средства.

4. На основе спецификаций средств базисного уровня разработана универсальная операционная система, базовая система программирования, программное обеспечение взаимодействия с фронтальными ЭВМ и ЭВМ - сетевыми шлюзами, сервисные и другие компоненты системного программного обеспечения ВС "Эльбрус 3-1" на базе МКП.

Основные положения диссертации опубликованы в следующих работах:

1. Белов М.А., Бяков А. КХ Решение в структурах системы обобщенных функциональных отношений при трансляции с языка моделирования (Препринт). М.: ИТМиВТ им. С. А. Лебедева, 1985. N 2. 23 с.

2. Белов М. А., Бяков А. Ю., Карабутова ЕЕ. и др. Инструментальная система для разработки и отладки программного обеспечения МКП (Препринт). М.: ИТМиВТ им. С. А. Лебедева, 1991. N 5. 38 с.

3. Бяков А. Ю. Архитектура МКП и организация программирования // Программирование, 1991. N 5. С. 34-56.

4. Бяков А. Ю. Перспектива использования ВС "Эльбрус 3-1" на базе модульных конвейерных процессоров (МКП) // "Терминал" - газета ассоциации пользователей, производителей и разработчиков высокопроизводительных вычислительных систем "Суперкомпьютер" (на базе газеты "Красное знамя"), 18 октября 1991 года, С. 2 (полностью).

5. Бяков А. Ю. Основные возможности ОС МКП (Сборник трудов Пермского государственного университета). Пермь: ПТУ, 1992. 19 с.

6. Бяков А. Ю. , Белов М. А. Система программирования "Автокод" / Описание языка (Общее системное программное обеспечение ВС "Эльбрус 3-1" / УИСФ. 00111-01 35 01). М.: ИТМиВТ им. С. А. Лебедева, 1991. 294 с.

7. Бяков А. Е , Белов М. А. , Маев А. В. , Сазанов И. М. , Скурат Е К. Программное обеспечение модульной конвейерной

- 34 -

¡уперсистемы. (Высокопроизводительные вычислительные ¡истемы для комплексных центров математического моделиро-»ания. Архитектура и общесистемное математическое обеспе-юние / Под редакцией Н. Н. Миренкова). Новосибирск: ВЦ СО 'АН, 1991. С. 55-57.

8. Бяков А. Е , Бурдонов И. Б. , Смирнов Ю. П. Адресация [ управление устройствами (Препринт). М.: ИТМиВТ им. !. А. Лебедева, 1979. N 14, 17 с.

9. Бяков А. Ю., Гонтаренко С. В., Кузнецов С. Д. ластеры операционной системы центрального процессора Препринт). М.: ИТМиВТ им. С. А. Лебедева, 1979. N 17, 13

10. Бяков А. Ю. , Иванников В. Е , Кузнецов С. Д. Архив ентрального процессора (Препринт). М.: ИТМиВТ им.

. А. Лебедева, 1980. N 5, 16 с.

11. Бяков А. К1 , Карабутова Е Е. , Маев А. В. , Родионов . М. , Сазанов И. М. и др. Операционная система / Руко-одство программиста (Общее системное программное обеспе-ение ВС "Эльбрус 3-1" / УИСФ. 00111-01 33 01 в двух астях). М.: ИТМиВТ им. С. А. Лебедева, 1991. 172 с. и 411

12. Бяков А. Ю. , Коликов В. А. , Маев А. В. , Сазанов . М. , Скурат Н. К. , Тягунова М. В. , Расширение возможностей иерационной системы центральных процессоров АС-6 (Преп-днт). М.: ИТМиВТ им. С. А. Лебедева, 1986. N 5. 25 с.

13. Бяков А. Ю. , Кропачев Ю. А. Модульный конвейерный эоцессор (Предварительное описание , В двух книгах / Под 5щей редакцией чл.-корр. РАН Г. Г. Рябова). М.: ИТМиВТ л. С. А. Лебедева, 1990. 276 с. и 142 с.

14. Бяков А. КХ , Маев А. К Параллельное программиро-шие в среде ОС МКП // Программирование, 1992. N 3. С. [-72.

15. Бяков А. КХ , Сазанов И.М. Организация и управле-1е архивными томами в многомашинной оперативной сети 1венадцатый всесоюзный семинар по вычислительным сетям / ють 1). Москва-Одесса: Научный совет АН СССР по комп-¡ксной проблеме "Кибернетика", Институт проблем модели->вания в энергетике АН УССР, 1987. С. 116-121.

- 35 -

16. Бяков А. Ю. , Сазанов И. М. Управление архивом I многопроцессорной ЭВМ с многоуровневой памятью (] всесоюзная конференция " Проблемы создания супер-ЭВМ, супер-систем и эффективность их применения" / Часть 1). Минск: Отделение информатики,вычислительной техники и автоматизации АН СССР, ИПК АН СССР, Минский радиотехнический институт, 1987. С. 115-116.

17. Бяков А. Е , Сазанов И. М. Поддержка объектной программирования в операционной системе модульной конвейерной супер-ЭВМ (Проектирование и создание многомашинньп и многопроцессорных систем реального времени). М : Общество "Знание" РСФСР, Московский дом научно-техническо! пропаганды, 1990. С. 126-128.

18. Гераскин 0. Т. , Бяков А. Ю. , Бякова Л. П. Мето, расчета матриц обобщенных параметров для электрически: сетей сверхсложной конфигурации // Энергетика и транспор1 / Известия АН СССР, 1974. N 5. С. 74-82.

19. Гераскин О. Т. , Бякова Л. Е , Бяков А. Ю. Метод алгоритм расчета коэффициентов потерь мощности в задач оптимизации режимов работы сложных электрических сетей / Энергетика / Известия вузов, 1973. N 9. С. 13-16.

20. Соколов А. А. , Бяков А. Ю. Архитектура модульно конвейерной суперсистемы (Высокопроизводительные вычисли тельные системы для комплексных центров математическог моделирования. Архитектура и общесистемное математическо обеспечение / Под редакцией Е Е Миренкова). Новосибирск ВЦ СО РАН, 1991. С. 51-54.

БЯКОВ АЛЕКСАНДР ЮРЬЕВИЧ

БАЗИС АЛГОРИТМИЧЕСКОГО ПРОГРАММИРОВАНИЯ И ЕГО РЕАЛИЗАЦИЯ В КЛАССЕ ВЕКТОРНЫХ МНОГОПРОЦЕССОРНЫХ СУПЕР-ЭВМ

Отв. за подготовку рукописи к изд. О.И.Миронова

Сдано в набор 10.12.1992 г. Подп. к печати 16.12.1992г.

Формат 60x90/16. Ротапринт.

Усл.печ.л. 2,38. Уч.-изд. 1,46. Тир.100

Зах.1985

ИТМ и ВТ РАН, 117333,Москва,Ленинский пр.,51