Page 325 - ЭВМ
P. 325

Единственным  по-настоящему  важным  отличием  распределен-
               ных  систем  от  централизованных  является  способ  взаимодействия
               между  процессами [62].  Принципиально  межпроцессное  взаимодей-

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

               правило, предполагает наличие разделяемой памяти. Типичным при-
               мером является задача «поставщик–потребитель». В этом случае один
               процесс пишет в разделяемый буфер, а другой – читает из него. Даже
               наиболее простая форма синхронизации – семафор требует, чтобы хо-

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

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

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

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

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

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



                                                           314
   320   321   322   323   324   325   326   327   328   329   330