Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / OSSO.docx
Скачиваний:
48
Добавлен:
20.05.2015
Размер:
88.15 Кб
Скачать

Механизм организации взаимодействия в распределенных системах

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

  • с помощью совместного использования одних и тех же данных (разделяемая память);

  • путем передачи друг другу данных в виде сообщений.

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

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

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

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

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

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

При этом процесс выполнения примитивов sendиreceive вовлекает в работу средства всех нижележащих коммуникационных протоколов (рис. 3.3).

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

Для идентификации компьютеров используется система IP-адресов.

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

Ввиду повсеместного применения стека протоколов TCP/IPна сегодня наиболее популярными адресами служб в системах обмена сообщениями сетевых ОС являются номерапортовTCP/UDP. ПортTCP/UDPявляется не только абстрактным адресом службы, но и представляет собой нечто более конкретное – для каждого порта операционная система поддерживает буфер в системной памяти, куда помещаются отправляемые и получаемые сообщения, адресуемые данному порту.

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

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

Централизованная служба имен на сегодня считается наиболее перспективным средством повышения прозрачности услуг для пользователей сетей. С такой службой связывают и перспективы дальнейшего повышения прозрачности адресов сетевых ресурсов, когда имя ресурса будет полностью независимо от компьютера, предоставляющего этот ресурс в общее пользование. Например, в службе каталогов (NetWareDirectoryServices,NDS) компанииNovellуже сегодня можно использовать такие имена, как имена томов, не указывая их точного расположения на том или ином компьютере.

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

Когда вызываемая процедура действительно является удаленной, в библиотеку процедур вместо локальной реализации оригинального кода процедуры помещается другая версия процедуры, называемая клиентским стабом(stab– заглушка). На удаленный компьютер, который выполняет функцию сервера процедур, помещается оригинальный код вызываемой процедуры, а также еще один стаб, называемыйсерверным стабом.

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

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

Соседние файлы в папке госы