Page 325 - ЭВМ
P. 325
Единственным по-настоящему важным отличием распределен-
ных систем от централизованных является способ взаимодействия
между процессами [62]. Принципиально межпроцессное взаимодей-
ствие может осуществляться одним из двух способов:
1) с помощью совместного использования одних и тех же дан-
ных (разделяемая память);
2) путем передачи друг другу данных в виде сообщений.
В централизованных системах связь между процессами, как
правило, предполагает наличие разделяемой памяти. Типичным при-
мером является задача «поставщик–потребитель». В этом случае один
процесс пишет в разделяемый буфер, а другой – читает из него. Даже
наиболее простая форма синхронизации – семафор требует, чтобы хо-
тя бы одно слово (переменная самого семафора) было разделяемым.
Аналогичным образом происходит взаимодействие не только между
пользовательскими процессами, но и между приложением и операци-
онной системой: процесс в пользовательском режиме запрашивает
у ОС выполнение некоторой операции с помощью системного вызова,
помещая в доступную ему часть оперативной памяти параметры этого
системного вызова (например, имя файла, смещение от его начала
и количество байт, которые необходимо прочитать). После этого
модуль ядра ОС считывает эти параметры из пользовательской памяти
(ядру в привилегированном режиме доступна вся память, а также ее
системная часть и пользовательская) и выполняет системный вызов.
Взаимодействие и в этом случае происходит за счет непосредственно
доступной обоим участникам области памяти.
В распределенных системах не существует памяти, непосредст-
венно доступной процессам, работающим на разных компьютерах,
поэтому взаимодействие процессов (находящихся как в пользователь-
ской фазе, так и в системной, т. е. выполняющих код операционной
системы) может осуществляться только путем передачи сообщений
через сеть. На основе механизма передачи сообщений работают все
сетевые службы, предоставляющие пользователям сети разнообраз-
ные услуги – доступ к удаленным файлам, принтерам, почтовым
ящикам и т. п. В сообщениях переносятся запросы от клиентов неко-
торой службы к соответствующим серверам, например, запрос на про-
смотр содержимого определенного каталога файловой системы, рас-
положенной на сетевом сервере. Сервер возвращает ответ – набор
имен файлов и подкаталогов, входящих в данный каталог, также по-
мещая его в сообщение и отправляя его по сети клиенту.
314