Взаимодействие компонентов сетевой ОС. Вызов удаленных процедур
Сетевая операционная система составляет основу любой вычислительной сети.
Каждый компьютер в сети в значительной степени автономен, поэтому под сетевой операционной системой в широком смысле понимается совокупность операционных систем отдельных компьютеров, которые взаимодействуют с целью обмена сообщениями и разделения ресурсов по единым правилам − протоколам.
В узком смысле сетевая ОС − это операционная система отдельного компьютера, обеспечивающая ему возможность работать в сети.
В сетевой операционной системе отдельной ВС можно выделить несколько частей:
· Средства управления локальными ресурсами компьютера: функции распределения оперативной памяти между процессами, планирования и диспетчеризации процессов, управления процессорами в мультипроцессорных машинах, управления периферийными устройствами и другие функции управления ресурсами локальных ОС.
· Средства предоставления собственных ресурсов и услуг в общее пользование − серверная часть ОС (сервер). Эти средства обеспечивают блокировку файлов и записей, что необходимо для их совместного использования; ведение справочников имен сетевых ресурсов; обработку запросов удаленного доступа к собственной файловой системе и базе данных; управление очередями запросов удаленных пользователей ксвоим периферийным устройствам.
· Средства запроса доступа к удаленным ресурсам и услугам и их использования − клиентская часть ОС (редиректор). Эта часть выполняет распознавание и перенаправление в сеть запросов к удаленным ресурсам от приложений и пользователей, при этом запрос поступает от приложения в локальной форме, а передается в сеть в другой форме, соответствующей требованиям сервера.
· Коммуникационные средства ОС. Это средства, с помощью которых происходит обмен сообщениями в сети. Эта часть ОС обеспечивает адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети, надежность передачи и др., то есть является средством транспортировки сообщений.
В зависимости от функций, возлагаемых на конкретный компьютер, в его операционной системе может отсутствовать либо клиентская, либо серверная части.
Обязательной составляющей сетевых ОС является редиректор.
Редиректор – это функциональный блок ОС, который перехватывает все запросы, поступающие от приложений, и анализирует их.
Если выдан запрос к ресурсу данного компьютера, то он переадресовывается соответствующей подсистеме локальной ОС, если же это запрос к удаленному ресурсу, то он переправляется в сеть.
При этом клиентская часть преобразует запрос из локальной формы в сетевой формат и передает его транспортной подсистеме, которая отвечает за доставку сообщений указанному серверу.
Серверная часть операционной системы сервера принимает запрос, преобразует его и передает для выполнения своей локальной ОС. После того как результат получен, сервер обращается к транспортной подсистеме и направляет ответ клиенту, выдавшему запрос.
Клиентская часть преобразует результат в соответствующий формат и адресует его тому приложению, которое выдало запрос.
Существенно облегчить взаимодействие ОС и приложений по сети позволяет использование такого механизма, как вызов удаленных процедур (RemoteProcedureCall, RPC). Этот механизм является надстройкой над системой обмена сообщениями в сетевых ОС. Впервые реализован компанией SunMicrosystems.
Основная идея RPC заключается в том, чтобы вызов удаленной процедуры выглядел бы так же, как вызов локальной процедуры. Такая прозрачность достигается использованием стабов (stub – заглушка). Когда вызываемая процедура оказывается удаленной, в библиотеку процедур вместо локальной реализации процедуры помещается иная версия этой процедуры, называемая клиентским стабом. Оригинальный код вызываемой процедуры находится на удаленном сервере. Кроме того, на этом сервере находится еще один стаб, называемый серверным. Назначение этих двух стабов – организовать передачу параметров вызываемой процедуре, обеспечить ее запуск с этими параметрами и возвратить результат работы процедуры через сеть в вызывающую процедуру. Стабы используют для передачи данных через сеть существующие механизмы сетевой ОС. Программный модуль, организующий связь стабов с примитивами передачи сообщений, обычно называется RPCRuntime модулем.
При изучении механизмов RPC необходимо обратить внимание на проблему передачи параметров и результатов работы вызываемой процедуры и поведение RPC в условиях аварии одного из процессов взаимодействующих компьютеров.
Вопросы для самопроверки по теме 6.1
1. Что подразумевают под сетевой ОС?
2. Назовите основные составные части сетевой ОС.
3. Каковы функции редиректора?
4. Что такое стаб, где расположеныстабы?
5. С какими частями сетевой ОС взаимодействуют стабы?
Сетевые службы и сервисы
Совокупность серверной и клиентской частей сетевой ОС, представляющих доступ к определенному типу ресурса ВС через сеть, называется сетевой службой. Сетевая служба предоставляет пользователям сети некоторый набор услуг, называемый сетевым сервисом. То есть под сетевой службой понимается сетевой компонент, а под сетевым сервисом − набор услуг, который предоставляется этим сетевым компонентом.
При изучении вопросов реализации сетевых служб необходимо обратить внимание на различные подходы к реализации, которые предусматривают различную глубину внедрения сетевых служб в ОС (встроенные сетевые службы, сетевые службы как набор оболочек и сетевые службы как отдельные продукты).
Для пользователя компьютерная сеть – это не просто набор аппаратных и программных средств, а набор сетевых служб, с помощью которых он получает возможность просмотреть список имеющихся в сети компьютеров, прочитать удаленный файл, послать сообщение по электронной почте и др. Кроме обмена данными сетевые службы решают и другие задачи обработки данных (служба репликаций, служба вызова удаленных процедур и др.) и организации работы сети (служба администрирования сети).
Часть служб (как правило, основные – файловая служба, служба каталогов, служба печати) предоставляются пользователю непосредственно сетевой ОС, а вспомогательные службы (служба баз данных, служба передачи голоса и др.) предоставляются сетевыми приложениями или сетевыми утилитами.
Вопросы для самопроверки по теме 6.2
1. Назовите основные сетевые службы компьютерной сети.
2. Перечислите основные способы реализации сетевых служб в составе ОС.
3. Каковы основные функции файловой службы?
4. Какие задачи решает служба каталогов?