
Замечание. Здесь фигурирует один канал open с запросами на
открытие; он совместно используется всеми клиентами и серверами.
Другие решения р ассм атриваем ой задачи состоят в следующем.
1. Можно представить определенную диспетчеризацию рас-
пределения запросов: в этом случае должен иметься процесс-
диспетчер, который выделяет клиенту файловый сервер, а фай-
ловые серверы должны сообщать диспетчеру информацию о том,
что они свободны.
2. В рассмотренном решении количества клиентов и файловых
серверов фиксированы. Возможно создать динамическое определе-
ние файловых серверов и клиентов, но программа будет сложнее;
однако, это, возможно, приведет к экономии при реализации.
3. Можно иметь по одному файловому серверу на каждый диск,
но тогда либо серверы, либо клиенты должны отслеживать всю ин-
формацию по открытию и закрытию файлов и передавать эту ин-
формацию при каждом запросе; это усложняет программирование
и увеличивает потоки информации.
4. Наконец, существует подход, использующий доступ к файлам
с помощью удаленных процедур (этот подход используется в фай-
ловой системе Sun Network File System /NFS/): при этом “откры-
тие” файла состоит в получении файлового дескриптора и набора
атрибутов файла, которые затем передаются при каждом вызове
процедуры доступа к файлу. В результате возрастают затраты на
передачу ар гумен тов, но существенно упрощается обработка сбо-
ев как серверов, так и клиентов (если происходит сбой файлового
сервера, то клиент просто повторяет запросы).
§ 5. Обмен значениями
Пусть имеется n процессов P[0:n-1], в каждом из которых име-
ется локальная переменная v, принявшая некоторое значение. За-
дача состоит в том, чтобы определить наибольшее и наименьшее
значения переменных v в упомянутых процессах и дать эту инфор-
мацию всем проце ссам .
Первый способ (асимметр ичн ое решение). Один из процессов
(например, P[0]) с обирает все n чисел, находит минимальное и мак-
симальное среди них и рассылает результаты остальным процессам
(см. рис. 4).
44