ПЕРСПЕКТИВЫ UNIX


12.1. ВВЕДЕНИЕ

В этой главе описаны сервисные средства, о которых ранее мы
не говорили: интегрированные предложения межмашинной связи и
распределенные операционные системы.

Различают два типа распределения:
- достигаемое с помощью дополнительных средств,
осуществляющих связь между различными машинами;
- основанное на операционных системах, обеспечивающих распре-
деление, таких как Mach и Chorus.


12.2. СРЕДСТВА ВЗАИМОДЕЙСТВИЯ

12.2.1. DCE (Disributed Computer Environment - Распределенная
Вычислительная Среда)

Мы опишем составляющие DCE после того, как определим место
DCE в предложении OSF (Open Software Foundation).

Роль DCE в предложении OSF
--------------------------
Предложение OSF состоит из трех основных частей:
- Операционной системы: OSF/1, версия 1.0 которой существует
с 1990 г. OSF/1 является новаторской системой, в которой
от системы UNIX сохранены только пользовательские интер-
фейсы и интерфейсы программирования. Ее ядро базируется на
системе Mach, оставаясь совместимым с BSD 4.4. Нужно отме-
тить, что Mach представляет собой распределенную операци-
онную систему, но эта ее функциональная особенность не ис-
пользуется в OSF - вместо этого для распределения
обработки и данных применяется DCE.

- Многооконной системы Motif - первая ее версия появилась в
1989 году и была фактически принята за стандарт. Она ис-
пользуется всеми конструкторами OSF и практически во всех
системах UNIX. Ее версия 1.1 основывается на системе X
Window Release 4;

- Среды распределенной обработки: DCE (распределенная вычис-
лительная среда), составляющие которой мы рассмотрим в
следующих параграфах.

Модули DCE были отобраны OSF на конкурсной основе, причем в
отборе участвовали не только члены OSF; критерии отбора были
следующими:

- возможность установки на разные системы;

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

- совместимость с существующими системами (в особенности с
TCP/IP и NFS);

- соответствие стандартам OSI;

- прочность и надежность.

Сервер ресурсов
---------------

Он преобразует имя об'екта в его адрес и тем самым локализу-
ет его. В нем нуждаются как машины, объединенные в какое -либо
административное целое группового типа ("cell" (ячейка)), так
и объединения машин с внешними вычислительными установками. В
этих случаях используются различные средства : локальный спе-
циальный быстродействующий сервер в первом случае и глобальный
сервер во втором. Пользователь и прикладные программы связыва-
ются только с локальным сервером ресурсов (рис.12.1). Переход
от одного сервера к другому осуществляется через межсетевой
переход.
Использовались серверы DECdns (локальный) и DIR-X (глобаль-
ный). DECdns предполагает межсетевой переход Х500. Предусмат-
ривается межсетевой переход к Интернет DNS (Domain Name
Service).

Управление параллелизмом
------------------------

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

Параллелизм основывается на "прядях" (threads) или "простых
процессах" (lightweight processes). Простые процессы, исполь-
зование которых особо эффективно в многопроцессорных архитек-
турах (рис.12.2), могут быть полезны и в однопроцессорной сис-
теме: два простых процесса могут разделить область памяти без
обращения к ядру (рис.12.3). Таким образом, мы располагаем бо-
лее эффективным механизмом,чем разделение памяти через IPC,
которое было рассмотрено в главе 3. Следует отметить, что в
некоторых системах UNIX, таких как SunOS, простые процессы су-
ществуют в виде библиотеки.
В OSF используется "Package" CMA (Concert Multithread
Architecture), предложенный DEC. Он может быть использован в
различных архитектурах.


Пользователь
¦
v
------------¬ --------------¬
¦ Локальный ¦ ----------------------¬ ¦ Глобальный ¦
¦ сервер +----+ межсетевой переход +-----+ сервер ¦
¦ ресурсов ¦ L---------------------- ¦ ресурсов ¦
L------------ L--------------
^
¦
Прикладная
Программа

Рисунок 12.1. Локальный и глобальный серверы ресурсов.


г=================================================================¬
¦ Прикладная программа ¦
¦ ------------------¬ ¦
¦ ¦ программа 1 ¦ ¦
¦ ¦ thread_create() ¦------------------------------> ¦
¦ ¦-----------------¦ --------------¬ ¦
¦ ¦ программа 3 ¦<-------------¬ ¦ программа 2 ¦ ¦
¦ ¦ thread_join() ¦ ¦ ¦ ¦ ¦
¦ ¦-----------------¦ ¦ L-------------- ¦
¦ ¦ программа 4 ¦ L---------------- ¦
¦ L------------------ ¦
L=================================================================-
Рисунок 12.2. Параллельная обработка с использованием прос-
тых процессов: программа 2 и программа 3 выполняются парал-
лельно.


г===========================================================¬
¦ Сфера пользователя ¦
¦ ------------------¬ ------------------¬¦
¦ ¦ простой процесс ¦ ¦ простой процесс ¦¦
¦ ¦ клиента ¦ ¦ сервера ¦¦
¦ L----T------------- L----------T-------¦
¦ v --------------------------¬ ¦ ¦
¦ -------->¦ Распределенная память +---------v-¬ ¦
¦ ¦ L-------------------------- ¦ ¦
¦ ¦ считывание запись ¦ ¦
¦ ¦ ¦ ¦
L======¦==============================================¦=====-
-------+-------¬ г=============¬ -----------v-----¬
¦Внешние данные¦ ¦ Ядро UNIX ¦ ¦ Внешние данные ¦
L--------------- L=============- L-----------------
Рис.12.3. Распределенная память и простые процессы.

Протокол RPC DCE
----------------

Была выбрана версия 2.0 NCS, т.к. ее использование проще чем
использование RPC Sun.
Клиент может обратиться к серверу, не зная его местонахожде-
ния ( его можно определить с помощью сервера ресурсов
(рис.12.4)). Сервер "экспортирует" интерфейс, клиент его "им-
портирует".
Параллельность обработки достигается за счет простых процес-
сов (смотри параграф "Управление параллелизмом"): прикладная
программа клиента перекладывает обязанность выполнить обраще-
ние к RPC на простой процесс, а сама во время этого обращения
продолжает выполняться (рис. 12.5). Простые процессы поддержи-
вают работу с параллельными серверами.

+
Рисунок 12.4. Локализация сервера.
г=================¬
¦ Сервер 1 ¦
г================¬ ----------¦ ("экспортирует" ¦
¦ Клиент ¦ ------------v------¬ ¦ интерфейс) ¦
¦ ("импортирует ¦-> ¦ Сервер ресурсов ¦ L=================-
¦ интерфейс) ¦ L------------^------
L================- ¦ г=================¬
¦ ¦ Сервер 2 ¦
L--------¦ ("экспортирует" ¦
¦ интерфейс) ¦
L=================-
Рисунок 12.4. Локализация сервера.

Рисунок 12.5. Параллелизм RPC (Вызов удаленной процедуры).

г=======================================¬
¦¦ Прикладная программа клиента ¦
¦¦ ¦
¦¦ Выработка простого процесса ¦ сеть ---------¬
¦+--------------¬ ¦--------->+ ¦
¦¦--------------+---------¬ ¦ ¦ сервер ¦
¦¦¦параллельное выполнение¦ вызов RPC ¦ ¦ RPC ¦
¦¦L-------------T---------- ¦<---------+ ¦
¦¦<-------------- ¦ L---------
¦¦ Конец выполнения простого процесса ¦
¦v ¦
L=======================================-
Рисунок 12.5. Параллелизм RPC (Вызов удаленной процедуры).

Переход от версии 1,5 к версии 2,0 NCS предполагает следую-
щие улучшения:
- измененные и дополненные примитивы в библиотеках;
- возможность выбора протокола передачи;
- использование сервера ресурсов (который заменяет
Broker'ов).

Безопасность
------------
Безопасность предполагает получение разрешения на доступ к
ресурсам, аутентификацию (проверку прав доступа) общающихся
субъектов, целостность и конфиденциальность передаваемых в
сеть сообщений. Аутентификация позволяет опознать клиента и
сервера. Разрешение на доступ базируется на механизме ACL
(Access Control List - Доступ к Контрольному Списку). Речь
идет о списке, связанном с объектом, который содержит перечень
суб'ектов,имеющих право доступа к этому объекту. Целостность и
конфиденциальность информации может быть обеспечена шифровани-
ем.
Были выбраны механизмы аутентификации Kerberos (продукция
MIT) и некоторые компоненты защиты HP.
В RPC существуют специальные механизмы защиты: Secure RPC.

Управление временем
-------------------
Речь идет о синхронизации часов, что позволяет ввести поня-
тие общего времени системы.
Был выбран продукт DECdts. Он может функционировать с серве-
ром или с клиентом NTP (Network Time Protocol - Сетевой Прото-
кол Времени, выбранным Internet).

Система распределенных файлов
-----------------------------

Система распределенных файлов обеспечивает доступ к
удаленным данным посредством прозрачного расширения локальной
системы файлов.
OSF выбрала версию 4.0 системы AFS (Andrew File System -
Система Файлов Эндрью). Основанная на работах университета
Карнеги-Меллон, система AFS более пригодна для управления зна-
чительным количеством клиентов ,чем NFS. Более того, клиенты
AFS используют дисковый кэш , который может иметь значительный
объем и хранить полностью целые файлы. Состоянием файлов кли-
ентов управляет сервер; любое изменение файла ведет к передаче
сигнала всем связанным клиентам о сбое дискового кэша.
Система AFS совместима с NFS: клиент NFS может использовать
сервер AFS и наоборот. OSF/1 предлагает сервер NFS,встроенный
в ядро.
Для бездисковых установок была выбрана система НР (основан-
ная на AFS). Понятие CDF (Context Dependent File - Файл, зави-
сящий от контекста) позволяет совмещать различные архитектуры
машин.

Использование персональных компьютеров
--------------------------------------

Речь идет об использовании станций UNIX в качестве серверов
файлов или печатающих устройств для компьютеров с операционны-
ми системами MS-DOS и OS/2.
OSF использует LM/X (Lan Manager/uniX) и PC-NFS. Эти две
системы обеспечивают базовые функциональные возможности (раз-
деление файлов и печатающих устройств), плюс некоторые второс-
тепенные функции (виртуальный терминал, удаленное выполнение,
передача файлов, API ... ). OSF поставляет только модуль
сервера.

Примечания
----------

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

12.2.2. Предложение UNIX International.

Atlas
-----

UNIX International предлагает интегрированную архитектуру
Atlas/DCF (Distributed Computing Framework),предназначенную
для достижения совместимости различных систем.
Эта архитектура опирается на понятие "объекта". Объект очень
подходит для распределения: инициатору запроса не обязательно
знать интерфейс объекта. Он получает доступ к ресурсу, Брокеру
(агенту), посылая "сообщение", содержащее идентификатор объек-
та. Брокер, в свою очередь, ищет объект и посылает обратно его
адрес и интерфейс (рис.12.6).



-------------¬ ---------------------¬
¦ КЛИЕНТ ¦ ¦ ОБЪЕКТЫ ¦
L-T----------- ¦ - Адрес ¦
¦ ¦ - Интерфейс ¦
¦ L-----------------T---
¦ ¦
¦ запрос предназначенный поиск ¦
¦ объекту и содержащий его объекта по ¦
¦ идентификатор его идентификатору ¦
¦ ¦
¦ ¦
¦ г========¬ ¦
L--------------------->¦ БРОКЕР ¦<-------------------------
L========-
Рисунок 12.6 Объекты и распределенная среда.

Атлас об'единяет все стандарты относящиеся к распределенной
информатике:
- Продукты ONC (Open Network Computing - Открытая Вычисли-
тельная Сеть) Sun.
- DCE.
Атлас предлагает также включение протоколов OSI, исходя из
рекомендаций GOSIP (Government OSI Protocol). Платформа ONP
(Open Networking Platform), которой снабжен UNIX System V
Release 4, состоит из комплекса протоколов и служб OSI (FTAM,
X500, управление сетью ...), основанного на механизмах
STREAMS. Атлас включает в себя и другие службы, такие как
Tuxedo (трансакциональный распределенный монитор).
В ожидании появления Atlas'а, который является глобальной
целью фирмы на трехлетний период, UNIX International предлага-
ет снабдить SVR4 следующими средствами :
- защита Kerberos;
- протокол NTP (Network Time Protocol - Сетевой Протокол
Времени);
- усовершенствованные RPC и NFS;
- поддержка Х400 и Х500.

Развитие RPC и NFC
------------------

Для RPC предусмотрены следующие усовершенствования:
- управление "прядями"
- опознавание Kerberos;
- управление мультикастом (распределение, ограниченное груп-
пой машин);
- поставка библиотеки ,независимой от транспортного уровня:
TIRPC (Transport Independant RPC). Библиотека TIRPC позво-
ляет осуществлять выбор транспортного уровня в момент вы-
полнения, в зависимости от параметров конфигурации. В
программе используется идентификатор транспортного уровня
(строка символов); переменная среды (NETPATH) определяет
используемый транспортный уровень; файл /etc/ netconfig
содержит данные библиотеки программ, которая позволяет
преобразовывать идентификаторы в адреса (Name_ to_Address_
Mapping). Таким образом, можно заменить одну транспортную
службу на другую без изменения программы. TIRPC является
надстройкой над TLI;
- демон portmap заменяется демоном rpcbind, функционально
эквивалентным и независимым от транспортного уровня.

Усовершенствования в версии 3 NFC относятся к техническим
характеристикам записи и к защите (через использование Secure
NFC или средства опознавания Kerberos).
Напомним, что команды управления NFS и RFS в SVR4 - одинако-
вы (см. главу 7).

12.2.3. Совместные проекты Sun-HP

Одновременно с созданием DCE и Atlas, фирмы Sun и HP заклю-
чили договор на разработку следующих тем,связанных с распреде-
ленной информатикой :
- исследование конвергенции RPC Sun и NCS;
- DOMF (Distributed Object Management Facilities)

Концепции DOMF:
- служба коммуникации основанная на RPC Sun и NCS;
- служба управления объектами: создание, отмена, установка;
- язык интерфейса (CDL: Class Definition Language - Язык Оп-
ределения Класса), схожий с языком С++, позволяет опреде-
лить объекты и их интерфейсы независимо от используемого
механизма RPC.

DOMF, таким образом, позволит разработать распределенные
прикладные программы более высокого уровня, чем программы RPC.


12.3. РАСПРЕДЕЛЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ.

Мы кратко представим системы Mach и Chorus, которые являются
на сегодня самыми функциональными распределенными операционны-
ми системами.
Эти системы используют понятие микро-ядра, обеспечивающего
базовые операции:
- упорядочение (управление прядями или процессами);
- управление виртуальной памятью;
- связь между процессами, независимо от их местонахождения:
IPC (Interprocess Communication).
Вокруг ядра располагаются серверы,обеспечивающие комплекс
модулярных процессов (рис.12.7). Эти серверы позволяют создать
полную операционную систему, которая может быть UNIXом BSD 4.3
или System V Release. Процессы IPC осуществляют связь между
серверами и ядром или между самими серверами.
Нам необходимо познакомиться с понятиями, которые использу-
ются в распределенных операционных системах и которые начинают
появляться в системе UNIX:
- прядь или процесс: минимальная действующая единица систе-
мы;
- задача или эктор : единица управления ресурсами (память,
порты связи ...) , выполняющаяся в пространстве с защищен-
ной адресацией. Задача (действующая единица) включает в
себя одну или несколько прядей (процессов). Процесс UNIX
соответствует одной задаче. Ресурсы задачи делятся между
всеми прядями последней;
- порт: доступ к каналу связи (понятие порта TCP/IP в более
широком смысле);
- сообщение: коммуникационная единица между прядями;
- объект: все ресурсы системы рассматриваются как объекты,
включая память. Связь между объектами осуществляется через
порты.Эти сообщения могут посылаться как на локальную вы-
числительную установку, так и на удаленную: сервер сообще-
ний обеспечит коммуникацию.

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

12.3.1. Mach.

Разработанная в университете Карнеги-Меллон, система Mach
(Multiple Asynchronous Communication Host ) может быть исполь-
зована в однопроцессорных,мультипроцессорных машинах или в се-
ти машин. Одной из основных целей разработки системы является
ее совместимость со средой UNIX.
Библиотека позволяет работать с прядями: имеется в виду биб-
лиотека Р-thrеad (согласно POSIX). Кроме того, для создания
процессов или для их коммуникации можно использовать класси-
ческие запросы UNIX.
Язык MIG (Mach Interface Generator) позволяет генерировать
прикладные программы ,используя собственные RPC системы Mach.

-----------------------¬-----------------¬ -------------------¬
¦ Прикладная программа ¦¦ Управление ¦ ¦ Управление сетью ¦
L-----------T-----------¦Процессами UNIX ¦ L--------T----------
¦ L-------T--------- ¦
¦ ¦ ¦
¦ г======================¬ ¦
¦ ¦ МИКРО-ЯДРО ¦ ¦
L--------¦ задачи и пряди ¦--------
¦ сообщения и порты ¦
¦ виртуальная память ¦
L======================-

Рисунок 12.7 Микро-ядро и процессы.

12.3.2. Chorus

Chorus представляет собой распределенную операционную систе-
му, разработанную и распространяемую фирмой Chorus Systems.
Как и Mach, Chorus строится вокруг микро-ядра, обеспечивающего
распределение и работу в режиме реального времени. Таким обра-
зом, Chorus/ MIX Release 3.2 - это распределенная система ре-
ального времени, предлагающая интерфейс совместимый с UNIX
System V Release 3.2. Но, если Mach был разработан для сильно
связанных между собой мультипроцессоров, Chorus скорее пред-
назначен для слабо связанных мультипроцессоров (гиперкуб, нап-
ример).
Среди особенностей, которые отличают эту систему от Mach,
можно назвать новое понятие "эктор супервизор" (acteur
superviseur), этот процесс выполняется в собственном адресном
пространстве и использует привилегированные команды (рис.
12.8).
Еще одна особенность, и наверное самая важная, это способ
Chorus управления интерфейсом связи. Не вдаваясь в подробнос-
ти, скажем, что Chorus использует более простой, чем в Mach,
механизм для обозначения портов и объектов, целью которого яв-
ляется предоставление большей свободы подсистемам для управле-
ния правами доступа к объектам. Это позволяет использовать эф-
фективные прикладные программы реального времени и не
допустить нагромождения различных идеологий контроля доступа в
случае использования таких субсистем как UNIX.
В настоящее время, Chorus является наиболее распространенной
в производственной области распределенной системой и может
быть выбран фирмой AT&T для создания своей распределенной опе-
рационной системы.


г==================================¬
¦ Пространство пользователя ¦
¦==================================¦
¦ Пространство супервизора ¦
¦----------------¬ ---------------¬¦
¦¦ устройство ¦ ¦ устройство ¦¦
¦¦ управления ¦ ¦ управления ¦¦
¦¦ процессами ¦ ¦ файлами ¦¦
¦L---------------- L---------------¦
¦----------------¬ ---------------¬¦
¦¦ устройство ¦ ¦ устройство ¦¦
¦¦ управления ¦ ¦ управления ¦¦
¦¦ терминалами ¦ ¦ карманами ¦¦
¦L---------------- L---------------¦
¦==================================¦
¦ Микро-ядро ¦
L==================================-
Рисунок 12.8 Архитектура Chorus.


12.4. ТЕНДЕНЦИИ

Распределение станет ключевым словом в программных архитек-
турах девяностых годов.
При внедрении распределения между машинами различают два
подхода:
- с позиций распределенных операционных систем (Mach,
Chorus). Этот подход предполагает однородную среду ,в ко-
торой все машины используют одну операционную систему;
- с позиций утилит , предназначенных для создания распреде-
ленных прикладных программ: по этому пути пошли OSF и UNIX
International. Целью является совместимость машин и разно-
родные среды. Отметим, что UNIX International сохраняет
(во всяком случае на короткое время) традиционное яд-
ро,тогда как OSF работает с микро-ядром.

Несмотря на различие в подходах, наблюдается сходство в ис-
пользовании некоторых механизмов или концепций:
- обработка сообщений для управления параллелизмом;
- использование RPC в качестве механизмов связи между про-
цессами через сеть;
- стремление интегрировать существующие механизмы в связан-
ные программы;
- стремление к соответствию стандартам X/OPEN и POSIX, т.е.
к стандартам OSI.

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


12.5. ИТОГИ

OSF (Open Software Foundation) предлагает среду DCE
(Distributed Computing Environment - Распределенная Вычисли-
тельная Среда). Речь идет о комплексе связных и однородных ме-
ханизмов, которые обеспечивают совместимость разнородных сис-
тем.
UNIX International предлагает примерно тоже самое в виде
системы Atlas , широко использующей сетевое оборудование Sun,
и дополненной средой DCE и стандартами OSI.
Распределенные операционные системы, самые распространенными
из которых являются Mach и Chorus, представляют собой ориги-
нальную альтернативу традиционным системам UNIX и связанным с
ним утилитам распределения. Они строятся вокруг микро-ядра,
обеспечивающего базовые механизмы. Остальные механизмы распо-
лагаются в пространстве пользователя. Доступ к местному или
удаленному ресурсу одинаков и управляется операционной систе-
мой.


БИБЛИОГРАФИЯ

OSF широко предлагала свою продукцию на различных семинарах:
(OSF 90), где была описана среда DCE. Фирма Bull (Bull 91)
включила DCE в более широкую архитектуру названную DCM
(Distributed Computing Model - Распределенная Вычислительная
Модель).
UNIX International не стоит на месте и предлагает свою про-
дукцию и архитектуры: [PAPAYIANNI 91], [SUN 90B], [SCHUELKE
91] и [UNIX INTERNATIONAL 91].
Chorus описан в многочисленных статьях: [ARMAND 91] и [GIEN
91] одни из самых последних. Mach часто описывается на семина-
рах [BITAR 91]. [BALTER 91] описывает распределенные операци-
онные системы.

Обновлено: 12.03.2015