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

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


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

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

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

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

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

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

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



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

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

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

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

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

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


Содержание раздела