Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_5.ppt
Скачиваний:
231
Добавлен:
11.04.2015
Размер:
1.61 Mб
Скачать

5.8.3. Вызов удаленных процедур

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

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

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

Операционные сист

111

емы

 

5.8.3. Вызов удаленных процедур

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

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

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

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

компьютерах.

Операционные сист

112

 

емы

5.8.3. Вызов удаленных процедур

Стабы могут генерироваться вручную или автоматически.

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

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

Процедура, устанавливающая взаимодействие между удаленной процедурой и вызывающей программой, называется

связыванием (binding).

Непостоянное связывание (nonpersistent binding) означает, что логическая связь между двумя процессами устанавливается во время вызова удаленной процедуры и

немедленно уничтожается после получения возвращаемого

значения.

Операционные сист

113

емы

 

5.8.3. Вызов удаленных процедур

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

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

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

Вызовы удаленных процедур могут быть синхронными и асинхронными.

Операционные сист

114

емы

 

5.8.3. Вызов удаленных процедур

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

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

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

Операционные сист

115

емы

 

5.8.3. Вызов удаленных процедур

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

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

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

1.Приложение-клиент дожидается ответа на все отправленные запросы.

2.По окончании выполнения последовательности асинхронных RPC клиент выполняет синхронный вызов удаленной процедуры. Сервер ответит на синхронный вызов только после

окончания обработки всех предшествующих асинхронных

Операционные сист 116

вызовов. емы

5.7.4. Сетевые файловые системы

Важнейший компонент любой распределенной системы - файловая система, которая в этом случае также является распределенной.

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

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

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

удаленным каталогам и файлам.

Операционные сист 117

емы

5.7.4. Сетевые файловые системы

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

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

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

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

Операционные сист

118

емы

 

5.7.4.Сетевые файловые системы

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

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

Однако в реальности сетевые файловые системы пока еще не полностью соответствуют такому идеалу.

Операционные сист

119

емы

 

5.7.4. Сетевые файловые системы

Элементы сетевой файловой системы:

1.Локальные файловые системы.

2.Интерфейсы локальной файловой системы.

3.Серверы сетевой файловой системы.

4.Клиенты сетевой файловой системы (программы, работающие на компьютерах, подключенных к сети).

5.Интерфейс сетевой файловой системы.

6.Протокол клиент-сервер сетевой файловой системы

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

Операционные сист

120

емы

 

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