Операционные системы супер-ЭВМ

         

Аппаратные особенности основной машины


В состав основной машины (ОМ) входят:

·

процессор (тактовая частота 10 наносекунд);

·         оперативная память (емкость от 8 до 32 мегабайт);

·         устройство обмена;

Через каналы      (пропускная   способность   200   Мгб/сек) подключается массовая интегральная  память емкостью  256  Мгб, темп обмена 0,64 мксек на 64-х разрядное слово. Через канал (пропускная способность 10 Мгб/сек) подсоеди­няется дисковая память, управляемая контроллерами или дисковыми серверами.

Процессор состоит из:

·         трех групп оперативных регистров, а именно - 8 адресных регистров (A-регистры), 8 скалярных регистров (S-регистры) и 8 векторных регистров (V-регистры);

·         промежуточных регистров: 64 адресных (B-регистры) и 64 скалярных (T-регистры);

·         вспомогательных регистров: регистра длины вектора (VL) и регистра векторной маски (VM);

·         16 полностью независимых конвейерных функциональных уст­ройств, которые могут работать параллельно, выполняя операции над данными из оперативных регистров;

·         аппаратуры связи регистров с оперативной памятью, аппа­ратуры управления командами и аппаратуры управления каналами ввода-вывода.

Адресные регистры (A- и B-регистры) содержат 24 разряда, скалярные регистры (S- и T-регистры) - 64 разряда; каждый век­торный регистр состоит из 64 слов по 64 разряда.

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


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

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


Архитектура файловой системы


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



Базовые объекты ОС - задачи являются одновременно и эле­ментами структуризации. Файловая система ОС ОМ состоит из сис­темной задачи АРХИВ, псевдозадач ОБМЕНМД и ОБМЕНМП и программ, реализующих методы доступа к файлам - кластеров, выполняющихся в адресном пространстве задачи пользователя.

Выбор такой структуры ФС объясняется функциональными осо­бенностями ФС, аппаратными особенностями ОМ, стремлением умень­шить накладные расходы по операциям ввода/вывода.

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

Реализация задач ОБМЕНМД и ОБМЕНМП со статусом псевдозада­чи объясняется тем, что для задания обменов по каналам требует­ся привилегированный режим. Задача АРХИВ выполняется в отдельном адресном пространс­тве, поскольку число обращений к задаче АРХИВ по сравнению с числом обращений к задаче ОБМЕН за один сеанс работы с файлом мало и накладные расходы сравнительно невелики.



Атомарные шаги


Работу пользователя с ФС можно представить в виде последо­вательности атомарных шагов. Атомарность шага состоит в том, что видимое другим пользователем состояние ФС меняется только при успешном завершении атомарного шага. Другие варианты окон­чания шага - "мягкие аварии", тупики - не должны менять видимое другим пользователем остояние объектов ФС. Внутри атомарного шага разрешены все операции над объектами ФС: модификация фай­лов, уничтожение файлов, создание новых объектов - файлов и справочников.

Кроме того, пользователь может сам дать команду ВОЗВРАТ, по которой произойдет возврат состояния объектов ФС к началу атомарного шага.

Для поддержки механизма атомарных шагов ФС представляет пользователю дополнительно три команды: НАЧАЛО, КОНЕЦ, ВОЗВРАТ.

Командой НАЧАЛО начинается атомарный шаг, который будет длиться либо до команды КОНЕЦ, либо будет закончен командой ВОЗВРАТ, по которой из объектов ФС будут изъяты все изменения, занесенные с начала атомарного шага.

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

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

Механизм атомарных шагов в ФС ОС ОМ реализуется следующим образом.

При открытии файла на модификацию внутри атомарного шага на диске или через "окно" в массовой памяти ФС выполняет следу­ющие действия:

·         копирует файл на другой диск;

·         устанавливает таблицу отображения файла на диск в задаче ОБМЕНМД на новое место расположения файла;


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

При модификации файла запросы на расширение удовлетворяют­ся посредстовм текущей таблицы распределения и фиксируются в отображении файла в задаче ОБМЕНМД. До закрытия файла работа атомарных шагов ничем не отличается от обычных. Различия начи­нают проявляться с момента закрытия.

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

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

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


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

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

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

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

Создание файлов сводится к модификации файла с пустой исходной таблицей отображения. Более интересно уничтожение.

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

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

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


Базовые объекты ОС


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

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

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

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

Рассмотрим примитивы управления этими объектами.Примитивы реализуются ядром ОС.

Существуют следующие примитивы  обмена  сообщениями:

1. ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ)

где Nз  - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина.

2. ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ) <ИДС>

где Nз - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина. ИДС - идентификатор отправленного сообщения (выходной параметр).

3. ПРИНЯТЬ СООБЩЕНИЕ (Nв1,...,Nвn,СООБЩ) <ИДС,Nвi>

где Nв1,...,Nвn - список входов в задачу,  по которым  разрешен прием сообщений.  СООБЩ - адрес буфера и его длина,  куда будет помещено сообщение.  ИДС - идентификатор  принятого  сообщения, Nвi - идентификатор входа, по которому было получено сообщение.
ИДС и Nвi - выходные параметры.

4. ПОСЛАТЬ ОТВЕТ (ИДС, ОТВЕТ)

где ИДС - идентификатор принятого сообщения, на который посыла­ется ответ. ОТВЕТ - адрес и длина посылаемого ответа.

5. ЖДАТЬ ОТВЕТА (ИДС1,...,ИДСn) <ИДСi>

где ИДС1,...,ИДСn - список идентификаторов отправленных сообще­ний, по которым ожидаются ответы. ИДСi - идентификатор отправ­ленного сообщения, на который получен ответ.

6. ЖДАТЬ ВРЕМЯ (Т)

где Т - интервал времени, истечения которого ожидает выдавшая примитив задача.

Кроме перечисленнных примитивов возможны примитивы, кото­рые составляют комбинации примитивов 3, 5 и 6. Существует разновидность примитива 4 - ПОСЛАТЬ ОТРИЦАТЕЛЬ­НЫЙ ОТВЕТ - в результате выполнения которого будет сгенерирова­на исключительная ситуация в задаче-отправителе. Семантически примитивы 1-5 соответствуют конструкциям: вызов подпрограммы, вход в подпрограмму и возврат из нее.

Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО, отк­ладывается до момента выдачи примитива ПОСЛАТЬ ОТВЕТ ее зада­чей-партнером и переписи ответа в буфер под ответ. Соответс­твенно, задача, давшая примитив ПРИНЯТЬ СООБЩЕНИЕ, либо получа­ет сообщение, если оно есть, либо откладывается до тех пор, пока от одного из ее партнеров не поступит примитив ПОСЛАТЬ СООБЩЕНИЕ и сообщение не перепишется в буфер. Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО, будет продолжать свое выполнение до тех пор, пока не будет выдан явный примитив ожи­дания сообщения, ответа, времени либо их комбинации. Перепись сообщения из адресного пространства задачи - отправителя в адресное пространство задачи-получателя происходит без промежу­точных системных буферов, поэтому для корректной работы повтор­но использовать память, в которой располагается сообщение, можно только  после  получения  соответствующего  ответа на данное сообщение.

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


Уникальные идентификаторы отправленных и полученных сообщений вырабатываются при выполнении примитива ПОСЛАТЬ СООБЩЕНИЕ.

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

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

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

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

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

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

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


Борьба с авариями


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

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

Результат "жестких аварий" - утрата на внешней памяти отдельных объектов или целых поддеревьев. Основным методом борьбы с "жесткими авариями" является архивное копирование фай­ловой системы .

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

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

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

Остановимся подробнее на том, каким образом ФС обеспечива­ет устойчивость к авариям.

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


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

Сосредоточим теперь внимание на обеспечении согласованного состояния таблицы распределения свободной памяти и таблицы отображения объектов ФС на внешнюю память.

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

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

После открытия файла таблица отображения файла на диски находится в таблице активных файлов задачи ОБМЕНМД. При увели­чении размера необходимо расширить таблицу отображения. Задача АРХИВ производит поиск новой области приращений через текущую таблицу распределения памяти. После получения необходимой области таблица отображения в задаче ОБМЕНМД расширяется. До закрытия файла расширение файла может происходить неоднократно по той же схеме: поиск в текущей таблице распределения - нара­щивание таблицы отображения в задаче ОБМЕНМД. Одновременно такая же работа может происходить и с другими файлами для дру­гих задач: все запросы на расширение файлов проходят через текущую таблицу распределения памяти.

Изменения попадают в исходную таблицу, а затем на диск при закрытии файла. Закрытие файлов происходит строго синхронно. Команды закрытия выстраиваются в очередь к задаче АРХИВ в отли­чие от команд открытия, выполняемых параллельно.

Закрытие файла происходит следующим образом. АРХИВ получа­ет таблицу отображения из задачи ОБМЕНМД. Исходную таблицу отображения получаем из элемента справочника, относящегося к модифицируемому файлу.


Сравнивая эти таблицы отображений, полу­ чаем все изменения, какие претерпел данный файл за время его обработки. Эти изменения заносятся в исходную таблицу распреде­ления, и она отображается в таблицу распределения памяти на диск. На диске данная таблица хранится в двух экземплярах. Пос­ледовательные обновления таблицы распределения свободной памяти идут поочередно то в один экземпляр, то в другой. После очеред­ного обновления таблицы распределения сохраняется и предыдущая версия таблицы. Для того, чтобы отследить хронологию, таблицы распределения помечаются уникальным идентификатором(в начале таблицы и в ее конце). Выработка уникальных идентификаторов ведется задачей АРХИВ. Уникальный идентификатор - это счетчик, устанавливающийся в нуль при генерации ФС и увеличивающийся на единицу при каждом запросе следующего идентификатора.

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

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

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

Рассмотрим более подробно те действия, которые осуществля­ет ФС в начале работы (после перевызова ОС).



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

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

·

уникальные идентификаторы всех справочников во всех дуб­лях равны идентификатору таблицы;

·         все идентификаторы в первом дубле равны идентификатору таблицы;

·         не все идентификаторы в первом дубле равны идентификато­ру таблицы;

·         все идентификаторы в первом дубле не равны идентификато­ру таблицы.

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

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

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

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


Файловая система


Функциями файловой системы (ФС) ОС ОМ являются:

·

хранение объектов ФС на внешней памяти и перемещение объектов между уровнями внешней памяти;

·         именование объектов;

·         автоматическое распределение многоуровневой внешней памяти;

·         защита объектов от несанкционированного доступа;

·         синхронизация доступа к объектам;

·         сохранность объектов при сбоях и отказах;

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



Функциональный протокол пересылки заданий


Локальная сеть "Электроника СС БИС" неоднородна. В нее входят одна или несколько основных машин и разнообразные внеш­ние машины. Каждая из внешних машин работает под управлением своей собственной операционной системы. Языки управления зада­ниями в этих операционных системах несовместимы. Поэтому задача построения общесетевой службы управления заданиями с общей оче­редью и общим языком управления не ставилась. В противном слу­чае была бы очень затруднена адаптация внешних машин к условиям работы в локальной сети суперЭВМ.

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

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

Файлы задания имеют свою собственную структуру, состоят из элементов разных типов, но при пересылке заданий структура фай­ла не имеет значения, он передается прозрачно, как набор битов.

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

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



ГЕНИС (НОМГР, ДОПИНФ, ДЛИНА)


Генерация исключительной ситуации.

НОМГР - номер группы исключительной ситуации. Например, если исключительную ситуацию генерирует программа, относящаяся к вводу/выводу, то значением этого параметра будет 2.

ДОПИНФ - дополнительная информация об исключительной ситу­ации.

ДЛИНА - длина дополнительной информации.

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



Инициатор-Терминатор


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

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

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

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

ИТ заканчивает выполнение текущего шага ликвидацией задачи. При возникновении  ошибок  во  время выполнения очередного

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

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

Основными командами, с которыми ИТ обращается к другим компонентам ОС при выполнении пакетного задания, являются зап­рос и освобождение оперативной памяти (к псевдозадаче Управле­ния оперативной памятью ), создание и ликвидация задачи (к псевдозадаче управления задачами).

Удовлетворение запроса на оперативную память может быть отложено до момента освобождения памяти другой задачей. Задача управления памятью ведет очередь неудовлетворенных запросов.

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

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


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

При установке контрольной точки ИТ останавливает задачу обращением "Остановить задачу" к псевдозадаче управления зада­чами. В ответ ИТ получает информацию о состоянии задачи - иден­тификаторы тех задач, ответы от которых ждет данная задача. Задаче с контрольными точками разрешается общаться только с системными задачами АРХИВ, ОБМЕНМД, ОБМЕНМП. ИТ сообщает этим задачам идентификатор задачи пользователя, для которой строится контрольная точка. Задачи ОБМЕНМД и ОБМЕНМП заканчивают обмены, заказанные данной задачей.

Получив ответы от обменнных задач и задачи АРХИВ, ИТ запускает задачу ЖУРНАЛ. ЖУРНАЛ, опрашивая системные задачи, заносит в файл следующие записи: список открытых файлов, уста­новленная среда поиска (информация от задачи АРХИВ), время выполнения, состояние задачи, состояние каналов связи, состоя­ние регистров и оперативной памяти задачи (информация от псев­дозадачи управления задачами), паспортная информация ( от Ини­циатора-Терминатора).

Получив управление от задачи ЖУРНАЛ, ИТ сообщает задаче АРХИВ о построении контрольной точки для данной задачи. АРХИВ приводит в согласованное состояние файл-журнал и модифицирован­ные файлы той задачи, для которой строится контрольная точ­ка(см. 3.3.8). После этого ИТ возобновляет выполнение задачи пользователя - выдает команды "Продолжить задачу" для псевдоза­дачи управления задачами и "Продолжить работу" для задачи АРХИВ.

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

Продолжение выполнения с контрольной точки происходит пос­ле отказов ОМ и ОС, либо после разрешения конфликта по массовой памяти.ИТ запрашивает оперативную память под задачу (ее размер имеется в файле-журнале), создает задачу и запускает задачу ЖУРНАЛ для действий, обратных построению контрольной точки. Журнал сообщает задачам ОБМЕНМД, ОБМЕНМП и АРХИВ информацию, характеризующую задачу пользователя; информирует псевдозадачу управления задачами о состоянии задачи, времени выполнения, состоянии каналов связи; заполняет в соответствии с содержимым файла-журнала память, в которой хранятся копии регистров, и собственно саму оперативную память задачи.

Получив управление от задачи ЖУРНАЛ, ИТ продолжает выпол­нение задачи пользователя - выдает команды: "Продолжить задачу" для псевдозадачи управления задачами и "Продолжить работу" для задач ОБМЕНМД, ОБМЕНМП и АРХИВ.


Используемые средства транспортного уровня


Будем называть задачу на внешней машине, созданную с целью реализации службы ввода заданий в основную машину, задачей вво­да внешней машины (ЗВВМ), задачу в основной машине, созданную с той же целью, - задачей ввода основной машины (ЗВОМ). Задачу в основной машине, созданную с целью вывода результатов выполне­ния задания на основной машине, назовем задачей вывода основной машины (ЗВЫОМ), а аналогичную задачу на внешней машине - зада­чей вывода внешней машины (ЗВЫВМ). Данные задачи взаимодейству­ют между собой, используя транспортный уровень сетевого прог­раммного обеспечения. Формально ЗВВМ и ЗВЫВМ могут быть и не задачами в смысле ОС ВМ, а, например, процессами, но они будут абонентами транспортной службы, поэтому будем называть их зада­чами.

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

ЗВОМ будет образовываться при попытке установить соедине­ние с ее портом.

Для вывода результатов выполнения задания на основной машине устанавливается транспортное соединение между ЗВЫОМ и ЗВЫВМ.
Активной стороной этого транспортного соединения являет­ся ЗВЫОМ. По умолчанию вывод результатов происходит на ту внеш­нюю машину, откуда поступило задание. Направление вывода можно изменить средствами языка управления заданиями основной машины. Число ЗВЫОМ протоколом не определяется, но их не больше одной для каждой внешней машины. Распараллеливать поток вывода на одну внешнюю машину не имеет смысла, так как узким местом этого вывода будет оперативная и внешняя память внешней машины, кото­рые должны будут делить свою производительность между потоками вывода. Поэтому в основной машине будет организована очередь вывода на каждую внешнюю машину.

По установленному транспортному соединению пакеты с зада­ниями (или результатами) передаются как фрагменты сообще­ния-вопроса, сообщения-ответы используются для подтверждения приема пакета или извещения о сбое.

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


Кластеры файловой системы


ФС ОС ОМ состоит из системной задачи АРХИВ, псевдозадачи ОБМЕНМД, псевдозадачи ОБМЕНМП и программ, реализующих методы доступа к файлам, выполняющихся в адресном пространстве задачи пользователя (см. рис.3).

Расположение программ доступа в пространстве пользователя позволяет снизить накладные расходы по доступу к отдельной записи файла. Для реализации программ методов доступа в файловой системе ОС ОМ используется кластерная техника.

При декомпозиции ФС на отдельные замкнутые компоненты элементами структуризации являются задачи ОС - АРХИВ, ОБМЕНМД, ОБМЕНМП, классы методов доступа. Такая декомпозиция позволяет представить ФС в виде многоуровневой иерархии элементов (см. рис.17).

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

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

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

Задачи АРХИВ, ОБМЕНМД и ОБМЕНМП реализуют физический уро­вень работы с файлами, открывающихся в дисковой и массовой памяти. Эти  компоненты  ФС решают вопросы отображения объектов на внешнюю память, обеспечения секретности, синхронизации, сох­ранности, именования, обменов, распределения внешней памяти, хранения атрибутов. Данный уровень выполняет операции открытия, закрытия, создания, уничтожения объектов, записи или чтения группы блоков, расширения пространства в рамках максимального размера, записи или чтения атрибутов.

Уровень базового файла реализуется классом управления базовым файлом прямого доступа с длиной записи в один блок.
Базовый файл реализует соответствующие обращения к задачам АРХИВ, ОБМЕНМД, ОБМЕНМП, управляет наращиванием файла в рамках максимального размера. Класс включает операции открытия, закры­тия, создания, ликвидации, записи, чтения, записи и чтения атрибутов.

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

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

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

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

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

На каждом уровне представления файла в файловой системе файл имеет соответствующие атрибуты. На уровне задач АРХИВ, ОБМЕНМД, ОБМЕНМП такими атрибутами является таблица отображения файла на внешние устройства, права доступа, режим синхрониза­ции.

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

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

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


Кластеры в ОС ОМ


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

Единицей обмена между программой и ФС является экземпляр записи. За одно обращение к ФС можно занести в файл экземпляр записи или извлечь его из файла. Каким образом записи распола­гаются внутри файла, то есть структура файла, определяется методом доступа к записи в файле (или просто методом доступа к файлу).

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

Итак, при реализации методов доступа необходимо обеспе­чить:

1) независимость программ от операционной среды выполне­ния;

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

Для решения поставленных проблем в систему программирова­ния ОМ (СП ОМ) был введен механизм абстракций.

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

объект по отношению к структуре, элементом которой он является,

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

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


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

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

Конкретный объект определяется в момент компоновки прог­раммы из модулей и называется экземпляром кластера или просто кластером. Реализация кластера скрыта от использующей его прог­раммы.

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

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

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

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



Например, программа может содержать следующее описание:

СLАSS     ПФ

ЕNТRУ     ОТК,ЗАК,ЗП,ЧТ

.

.

ОТК LAB

.

.

ЗАК LAB

.

.

ЗП  LAB

.

.

ЧТ  LAB

.

.

ЕND

СLАSS ПФ вводит абстрактное понятие ПФ - последовательный файл. Внутри класса содержатся структуры данных, реализующие последовательный файл (указатели, буфера), а также множество операций над ним: ОТК - открытие файла, ЗАК - закрытие файла, ЗП - запись в файл, ЧТ - чтение.

После того, как описаны такие абстрактные объекты, в прог­рамме можно использовать нововведенное понятие для работы с конкретным объектом - экземпляром кластера. Для этого необходи­мо объявить экземпляр кластера. Для объявления нового экземпля­ра используется конструкция DЕFINЕ.

Например, конструкция ПФ DЕFINЕ Ф1 объявляет экземпляр кластера с именем Ф1. После порождения экземпляра становятся определенными операции над кластером:

/Ф1/ОТК - открытие кластера Ф1

/Ф1/ЗАК - закрытие кластера Ф1

/Ф1/ЗП - запись в кластер Ф1

/Ф1/ЧТ - чтение из кластера Ф1

В программе можно определить произвольное число экземпля­ров некоторого класса. Например:

СLАSS   ПФ   описание класса

.

.

.

ЕND

ПФ  DЕFINЕ  Ф1   объявление двух экземпляров

ПФ  DЕFINЕ  Ф2   Ф1 и Ф2 по классу ПФ.

IDENT   ПРОГ

.

.

R         /Ф1/ОТК  открытие кластера Ф1

R         /Ф2/ОТК  открытие кластера Ф2

.

.

.

R         /Ф1/ЧТ   чтение из файла Ф1

R         /Ф2/ЗП   запись в файл Ф2

.

.

.

R         /Ф1/ЗАК  закрытие файлов

R         /Ф2/ЗАК

.

.

END

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

Раздельность описания, объявления и использования класте­ров, а также существование эквивалентных классов дает макси­мальный эффект использования кластерной техники.



Эквивалентными классами называются такие классы, по кото­рым в результате объявления порождаются экземпляры кластеров с одинаковым набором имен операций и одинаковым набором парамет­ров по соответствующим операциям.

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

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

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

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

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


Контроль прав доступа


Контроль прав доступа предназначен для защиты справочников и файлов от несанкционированного доступа.

При поиске объекта задача АРХИВ контролирует права доступа ко всем справочникам, находящимся на пути к файлу, и к самому файлу. Права доступа задаются при создании файла или справочника и хранятся в элементе справочника, описывающем этот объект. Права доступа к корню хранятся в задаче АРХИВ.

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

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

Режим работы с файлом - чтение или модификация задается параметром при открытии файла. Со справочником работа ведется явными командами создания, уничтожения и т.п.



Обнаружение тупиков


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

Использование дисковой памяти регламентируется бюджетом.

В задаче АРХИВ периодически запускается процедура опреде­ления тупика. Эта процедура анализирует состояние очередей к массовой памяти, файлам, общий объем массовой памяти, которой владеют задачи, и обнаруживает тупик, если он существует.

Тупик может быть полным (конфликт по файлам) или частичным (конфликт из-за нехватки массовой памяти).

Обнаружив тупик и его вид, задача АРХИВ сообщает об этом задаче ИНИЦИАТОР-ТЕРМИНАТОР. Кроме того, в случае частичного тупика сообщается относительная стоимость его разрешения - то есть время, требуемое для выталкивания файлов из массовой памя­ти на диски.

ИНИЦИАТОР-ТЕРМИНАТОР принимает решение о разрешении тупика на основании его вида, стоимости разрешения, приоритетов задач.

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

Разрешением полного тупика может быть только откат к конт­рольной точке.



Обработка исключительных ситуаций в ОС ОМ


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

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

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

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

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

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

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


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

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

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

1) После обработки исключительной ситуации в подпрограмме не продолжать прерванную программу.

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

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

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

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


ОПЕРАЦИОННАЯ СИСТЕМА ОСНОВНОЙ МАШИНЫ


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

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



Особенности программирования


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

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

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



Порт и точка доступа


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

Каждый абонент ТС имеет право работать с произвольным чис­лом портов. Каждому выбранному для работы порту абонент присва­ивает произвольный номер от 0 до 255.

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

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



Примитивы исключительных ситуаций


УСТУР (ШКАЛА, ПОДПРОГРАММА, БУФ) (НОМУР)

Установка уровня реакции на исключительные ситуации. ШКАЛА - шкала реакций на группы исключительных ситуаций состоит из 1-й ячейки. Наличие "1" в разряде шкалы означает, что реакция на соответствующую группу исключительных ситуаций будет установлена. ПОДПРОГРАММА - подпрограмма для обработки ошибочных ситуа­ций в случае, если заказана реакция. БУФЕР - буфер уровня имеет фиксированный размер, равный пяти словам. НОМУР - номер вашего уровня - выходной параметр.

Таблица соответствия.

N разряда в шкале

номер группы

соответствия

0

1

2

3

4

5

6

7-30

31

32-63

0

1

2

3

4

5

6 7-30

31 32-63

аппаратные

(ОС) по передаче сообщений

(ОС) по вводу/выводу

(ОС) по примитивам искл.сит

(ОС) снята задача

(ОС) по транспортной служ.

(ОС) управление ОЗУ

резервные

п/п стандартных функций

пользовательские

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

1.       Номер группы исключительной ситуации

2.       В00 при исключительной ситуации

3.       Счетчик адреса команд при исключительной ситуации

4.       Адрес дополнительной информации

5.       Длина дополнительной информации

СНЯТЬ (НОМУР)

Снятие уровней до указанного. НОМУР - номер вашего уровня. Если необходимо снять уровни до вашего включительно, то нужно воспользоваться номером уровня из ответного параметра при установке уровня. Если необходимо снять уровни, не включая ваш, то надо к вашему уровню прибавить 1.



Примитивы транспортной службы


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

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

Примитивы установления соединения.

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

Пассивные операции могут быть двух типов:

1.

Аналогичные активным (примитив "Только ты!").

2.       Партнер заранее неизвестен  (примитив  "Кто  там?").

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

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

Примитивы переноса данных

Положительный ответ ТС на примитив "Передай фрагмент" означает, что фрагмент вопроса передан. Положительный ответ ТС на примитив "Передай последний фрагмент и прими ответ" означа­ет, что на данный вопрос получен ответ.

Положительный ответ на примитив "Возьми буфер" означает, что буфер принят на учет ТС. Первоначально все буфера для прие­ма фрагментов на пассивной стороне имеются. Положительный ответ на примитив " Жду фрагмента" означает, что в ранее предостав­ленный буфер принят фрагмент вопроса. Примитивов "Жду фрагмен­та" можно одновременно задавать не больше, чем имеется буферов на учете ТС. При выдаче положительного ответа на примитив "Жду фрагмента" буфер снимается с учета ТС. Положительный ответ на примитив "Передай ответ" означает, что ответ отправлен по сое­динению.

Примитив терминации соединения

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



Протокол пересылки файлов


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

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

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

1.

пересылка файла из архива внешней машины в архив основ­ной машины по инициативе задачи, выполняемой на внешней машине;

2.       пересылка файла из архива основной машины в архив внеш­ней машины по инициативе задачи, решаемой на внешней машине;


3.       пересылка файла из архива внешней машины в архив основ­ной машины по инициативе задачи, выполняемой на основной маши­не;

4.       пересылка файла из архива основной машины в архив внеш­ней машины по инициативе задачи, выполняемой на основной маши­не.

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

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

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

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


Протокольные единицы данных пересылки заданий


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

·

пакет,

·         ответ.

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

Протокольная единица данных "Ответ" содержит служебное сообщение о результате пересылки пакета (см. рис.20). "Ответ" состоит из двух полей:

·         код ответа,

·         дополнительная информация.

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



Распределение дисковой памяти


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

При запуске ОС задача АРХИВ переносит карты распределения памяти с дисков в массовую память.

Объекты ФС отображаются на внешнюю память в виде набора областей. Размер файла наращивается динамически в пределах мак­симального размера. Наращивание файла осуществляется по инициа­тиве кластера соответствующего метода доступа. При попытке записи за текущую границу файла, но не за границу максимального размера файла, кластер обращается к задаче АРХИВ с командой расширения файла. АРХИВ ищет соответствующую область на том диске, где находится файл, и наращивает его таблицу отображе­ния.

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

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


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

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

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

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

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


Распределение массовой памяти


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

Объекты ФС отображаются на одну или две области массовой памяти (вторая область - фрагмент приращения). Отображения рас­полагаются в таблице активных файлов задачи ОБМЕНМП.

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

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

Распределение массовой памяти происходит по такому же алгоритму, как и распределение дисковой памяти. Вся память делится на области. Минимальный размер области - блок 512 слов. Последующие размеры областей: 2*512, 4*512, ...

При наступлении фрагментации происходит уплотнение массо­вой памяти с модификацией отображений в таблице активных файлов задачи ОБМЕНМП.

Начальный размер фрагмента приращений равен 25% от размера файла и далее удваивается до размера файла. Для файла в 128 блоков приращения будут увеличиваться таким ступенями: 32, 64,

128.  На любом этапе увеличения фрагмента приращений коэфициент использования внешней памяти будет не хуже 75%.

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



Реализация методов доступа в процессоре массовой памяти


Особенностью рассматриваемой ФС является наличие програм­мируемого процессора массовой памяти.

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

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

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

Для обеспечения требуемой гибкости в системе управления массовой памятью используется, как и в ОС ОМ, кластерная техно­логия.

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

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

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

Адрес локальных данных и тип файла хранятся в таблице активных файлов в задаче ОБМЕНМП для каждого открытого файла. Увязывание объекта с программой происходит при каждом обращении к операции: первым параметром операции всегда является адрес локальных данных.

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

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

Таким образом, задача ОБМЕНМП является только передаточным звеном между кластером, выполняющимся в задаче пользователя, и кластером в процессоре массовой памяти: первый кластер указыва­ет только номер процедуры кластера в МП и параметры к ней, а задача ОБМЕНМП по спецификации параметров к данной процедуре формирует обращение к соответствующей операции в процессоре массовой памяти ( в качестве параметра будет добавлен адрес локальных данных того файла, к которому идет обращение).

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


Режимы выполнения


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

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



Синхронизация доступа к объектам


Существует два режима, в которых открывются файлы: сов­местный (файл только читается) и монопольный (в файле разрешены запись и чтение). Задача АРХИВ ведет очередь ожидания освобож­дения файла при его монопольном использовании.

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

Работа со справочником ведется только через задачу АРХИВ. При захватах  файлов  задачи могут попасть в тупик.  АРХИВ распознает тупики и оповещает об этом задачу ИНИЦИАТОР - ТЕРМИНАТОР.



Система прерываний


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

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

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

Время переключения на программу обработки прерывания рав­няется 50 тактам.



Структура ФС на внешней памяти


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

Справочник состоит из элементов.  Каждый элемент описывает либо объект ФС более низкого уровня по дереву, чем данный спра­вочник, либо синоним. Объекты первого типа называются элемента­ми типа ссылки, второго - элементами типа связи.

Элемент справочника типа связи содержит имя элемента - входное имя синонима, тип, выходное (альтернативное) имя сино­нима.

Элемент справочника типа ссылки содержит имя элемента, тип

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

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

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


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

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

Перемещение объектов с одного уровня внешней памяти на другой осуществляется задачей АРХИВ в результате команд откры­тия соответствующих объектов.

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

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

·

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

·         определяется местонахождение файла на диске;

·         файл переписывается с дисковой памяти в массовую;

·         задача ОБМЕНМП настраивается на данную область в массо­вой памяти.

Если файл открывается на диске, то после определения мес­тонахождения файла на диске задача ОБМЕНМД настраивается на те области на диске, где находится требуемый файл.



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

Существует возможность работать по коротким именам. Эту возможность поддерживает в ФС среда поиска. Каждому заданию соответствует отдельная среда поиска, которая задается последо­вательностью имен справочников. При обращении по короткому име­ни поиск осуществляется в той последовательности справочников, какую задает среда поиска. В начале выполнения задания для него формируется стандартная среда поиска, которую можно сменить явным обращением к задаче АРХИВ.

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


Транспортная служба локальной сети ЭВМ


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

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

Транспортная станция:

·

предназначена для обмена информацией между процессами, выполняющимися на разных ЭВМ;

·         является средством, на котором базируется функциональ­ное управление в локальной сети.

Взаимодействие ТС с другими задачами, выполняющимися в ОМ, осуществляется через аппарат сообщений, поддерживаемый ядром ОС ОМ. Любой заказ на пользование услугами ТС оформляется как сообщение для ТС. Ответ по исполнении заказа транспортной служ­бой - ответное сообщение. Согласно логике построения аппарата сообщений, на каждое заданное сообщение выдача ответного обяза­тельна.



Услуги фазы переноса данных


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



Услуги фазы терминации соединения


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

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



Услуги фазы установления соединения


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

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



Услуги транспортной службы


Основная цель ТС - обеспечить ее пользователей (будем их называть абонентами ТС), расположенных на разных ЭВМ сети, средствами прозрачной и надежной передачи информации.

Требование прозрачности означает, что ТС не ограничивает содержимое, формат или кодирование пользовательской информации.

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

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



Уведомление о получении пакета результатов


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

Параметры уведомления: идентификатор задания и описатель пакета результатов. Структура описателя пакета результатов ана­логична описателю пакета задания.

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

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

Действия задач вывода аналогичны.


Внешняя память ОМ


Объекты файловой системы хранятся на внешней памяти ОМ. Внешняя память ОМ состоит из дисковой и массовой памяти.

Дисковая память состоит из совокупности несъемных дисков, управляемых контроллерами (или дисковыми серверами), которые подключены к основной машине через каналы (пропускная способ­ность 10 Мгб/сек).

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

Наблюдается существенный дисбаланс в соотношении скорости процессора основной машины и темпом обмена с дисками.

Для того, чтобы сбалансировать процессор с внешней памятью, используется массовая интегральная память емкостью до 256 Мгб, темпом обмена 0,64 мксек/слово, которая подключена через каналы с пропускной способностью 200 Мгб/сек.

Таким образом, внешняя память ОМ является двухуровневой: первичная внешняя паямть - интегральная массовая память и вто­ричная - дисковая память.

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

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

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



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


В состав  системного программного  обеспечения  основной машины вычислительной системы "Электроника ССБИС"  (далее  ОМ) входят следующие компоненты:
·
операционная система (ОС ОМ);
·         базовая система программирования;
·         система программирования на языке Фортран 77;
·         система программирования  на языке Паскаль;
·         система программирования на языке Си.
Для облегчения чтения пособия включен раздел (раздел 2), содержащий краткое описание особенностей архитектуры ОМ.
Операционная система основной машины (ее описанию посвя­щен раздел 3) - это многопользовательская ОС, обеспечивающая решение задач в пакетном режиме, в режиме разделения времени, в режиме реального времени.  ОС выполняет  традиционные  функции: управление заданиями, управление данными, управление процессо­ром, основной памятью, дисковой и массовой памятью. Транспорт­ная служба ОС обеспечивает взаимодействие с операционными сис­темами внешних ЭВМ при пакетной обработке данных и удаленный вызов программ, предоставляя тем самым возможности децентрали­зованной обработки данных. ОС имеет развитые средства для повы­шения устойчивости системы к сбоям и отказам процессора, основ­ной и внешней памяти.
Базовая система программирования предназначена для разра­ботки программ на языке макроассемблера ОМ, который обеспечива­ет возможность написания высокоэффективных программ, наиболее полно учитывающих особенности архитектуры ОМ для достижения производительности, близкой к пиковой. На языке макроассемблера ОМ написаны основные компоненты системного программного обеспе­чения ОМ и многие библиотечные стандартные подпрограммы.
В базовой системе программирования поддерживается механизм абстрактных типов данных, что позволяет в полной мере использо­вать модульное программирование при разработке сложных прог­раммных систем. Механизм абстрактных типов данных был использо­ван при разработке операционной системы основной машины.
Система программирования на языке Фортран 77 содержит оптимизирующий компилятор со стандарта этого языка. Компилятор содержит средства оптимизации программ с учетом особенностей векторной архитектуры (векторизация циклов и планирование пото­ка команд).

ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА "ЭЛЕКТРОНИКА ССБИС"


Вычислительная система "Электроника СС БИС" включает:

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

·         управляющую машину;

·         внешние машины.

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



Выполнение функций пересылки заданий


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



Запрос на ввод задания в основную машину


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

·

идентификатор задания;

·         номер машины сети, куда нужно переслать задание;

·         описатель пакета с заданием.

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



Защита памяти


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