На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

4
Ожидается:
09 Декабря 2024

Системное программное обеспечение основной машины ВС

Статья опубликована в выпуске журнала № 1 за 1992 год.
Аннотация:
Abstract:
Авторы: Томилин А.Н. () - , Гайсарян С.С () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 11171
Версия для печати

Размер шрифта:       Шрифт:

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

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

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

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

Основные особенности архитектуры высокопроизводительных век торн о-конвейерных ЭВМ

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

В состав системного программного обеспечения основной машины вычислительной системы "Электроника ССБИС" входят следующие компоненты:

-    операционная система;

-    базовая система программирования;

-    система программирования на языке ФОРТРАН-77;

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

-    система программирования на языке Паскаль;

-    имитационный комплекс основной машины, предназначенный для разработки и отладки ее программного обеспечения на инструмен тальных ЭВМ ("Эльбрус 1KB", IBM PC/AT).

Операционная система основной машины

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

ОС осуществляет передачу сообщений и управления задачами.

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

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

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

Центральной задачей ОС является "Инициатор-терминатор", выполняющий следующие функции:

-    образование новых пользовательских задач и системных нерезидентных задач ОС;

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

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

-    планирование выполнения введенных заданий и шагов заданий;

-    разрешение конфликтных ситуаций при не хватке ресурсов и тупиках в системе;

-    управление "контрольными точками".

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

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

При выполнении шагов задания выводные данные заносятся в выводные файлы задания. Инициатор-терминатор передает системной задаче-вывода эти файлы. После завершения задания системная задача вывода передает их на ВМ.

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

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

Последовательность шагов задания описывается на языке управления заданиями (ЯУЗ). Выполняемые программы хранятся в одной из следующих форм: в виде текста, объектных модулей либо в виде двоичного кода.

ЯУЗ - командный язык программирования, обеспечивающий связь задания с ОС ОМ, на котором описываются задания, с организацией вычисления как с использованием нескольких шагов задания, так и с использованием нескольких операций, допускаемых одним шагом задания. Шаг задания — это специальным образом подготовленная "загрузчиком" многовходо-вая программа, которая исполняется на ОМ. ЯУЗ имеет средства для обмена данными между шагами заданий пользователя и управляющей программой через входные и выходные параметры шагов заданий, а также средства для обработки этих данных.

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

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

типы кластеров. Совокупность кластеров задает операционную среду выполнения программы.

Кластер порождается на этапе загрузки (компоновки программы из объектных модулей).

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

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

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

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

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

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

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

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

Функции файловой системы: • именование объектов • распределение внешней памяти • хранение объектов на внешней памяти и перемещение объектов между уровнями внешней памяти (массовой и дисковой) * защита объектов от несанкционированного доступа • синхронизация доступа к объектам • сохранность объектов при авариях внешней памяти и отказах системы • реализация различных методов доступа к файлам • поддержка контрольных точек.

Файловая система ОС ОМ состоит из системной задачи "Архив", псевдозадачи "Обмен", кластеров методов доступа к файлам, выполняющихся в адресных пространствах задач пользователя.

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

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

Совокупность объектов файловой системы на внешней памяти является деревом. Узлы дерева представляют справочники, листья — файлы или пустые справочники, корень - корневой справочник файловой системы. Каждый элемент дерева имеет имя, которое уникально относительно предыдущего узла. Любой объект дерева однозначно именуется полным составным именем относительно корня.

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

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

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

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

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

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

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

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

Уникальной особенностью файловой системы является использование программируемого процессора массовой памяти.

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

Система предусматривает защиту справочников и файлов от несанкционированного доступа.

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

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

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

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

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

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

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

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

Характер взаимодействия между компонентами относится к типу удаленный вызов процедур. То есть, из пары взаимодействующих по соединению компонентов один является активной стороной, и инициатива в посылке сообщений принадлежит ему. Он посылает запросы, которые пассивный компонент обрабатывает и отвечает на них. Архитектура сетевого обеспечения локальной сети ВС с прямым подключением внешних ЭВМ, то есть с подключением каждой внешней ЭВМ через отдельный канал к основной машине, соответствует нижним уровням архитектуры эталонной модели открытых соединений МОС. Сетевой уровень как уровень маршрутизации отсутствует. Часть функций канального уровня выполняется аппаратурой. Транспортировка информации между ОМ и ВМ происходит при помощи высокоскоростного канала. В связи с тем, что надежность работы какала велика, принята схема работы без подтверждений ка нижнем уровне о приеме сообщений. В случае сбоя последствия устраняются за счет верхнего уровня. Цена восстановления при такой схеме- выше, чем при схеме с подтверждениями на нижнем уровне, но при нормальной работе (то есть при отсутствии сбоев) экономится по одному прерыванию ОМ на каждое сообщение.

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

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

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

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

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

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

Базовая система программирования ОМ

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

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

Макроассемблер ОМ. Язык макроассемблера позволяет программисту выражать в символьной форме все функции центрального процессора ОМ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Символьный интерактивный отладчик ОМ обеспечивает выполнение следующих требований:

•        наличие двух режимов работы отладчика, обеспечивающих единообразный интерфейс с пользователем: распределенный и сосредо точенный;

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

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

•        возможность задавать условия прерывания, связанные с обращениями не только к памяти, но и к регистрам, так как многочисленные ре гистры ВК ЭВМ могут использоваться для дли тельного хранения переменных;

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

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

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

-    планирование сеанса;

-    управление выполнением программы;

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

-    управление выдачей информации об отлежи ваемой программе;

-    изменение значений регистров н переменных;

-    задание трассировок;

-    замеры времени выполнения отдельных учас тков программы;

-    определение процедур отладки и нестандарт ных действий;

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

-    рабйта с архивом.

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

Сиситема программирования на языке ФОРТРАН-77

Основными компонентамами, поддерживающими программирование в этой системе являются компилятор программ с языка ФОРТРАН-77 и административная система управления операциями ввода/вывода.

Компилятор с языка ФОРТРАН-77 для ОМ является прямым. Это позволяет эксплуатировать его как на основной машкне, так и в рамках имитационного комплекса.

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

Пользователи, использующие различные диалекты языка ФОРТРАН, могут сравнительно легко адаптировать программы для работы с компилятором. Это обеспечивается тем, что компилятор реализует стандарт языка ФОРТРАН-77.

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

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

Система программирования на языке Си

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

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

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

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

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

Система программирования на языке Паскаль

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

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

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

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

Имитационный комплекс основной машины

Имитационный комплекс (ИК) ОМ предоставляет пользователю средства программирования ОМ путем использования инструментальной машины "Эльбрус 1КБ" или IBM PC/AT.

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

Директивы И К обеспечивают:

-    создание архива;

-    печать справочника архива;

-    создание, ликвидацию, печать файла в архиве;

-    копирование файла;

-    создание, обновление, печать пакета модулей;

-    создание и модификацию библиотеки модулей;

-    загрузку модулей из библиотеки в пакет;

-    печать справочника библиотеки;

-    перенос пакета модулей из памяти в архив и обратно;

-    трансляцию с языка ассемблера;

-    загрузку пакета модулей;

-    интерпретацию.

Список литературы

1.      Программное обеспечение высокопроизводительной сис темы // Вопросы кибернетики. - М., 1986. Вып. 127.

2.      Системы программирования векторно-конвейерной ЭВМ // Вопросы кибернетики. - М-, 1990. Вып. 162.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=1436
Версия для печати
Статья опубликована в выпуске журнала № 1 за 1992 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: