ГЛАВА 13. РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ 
 
В предыдущей главе нами были
рассмотрены сильносвязанные
многопроцессорные системы с общей
памятью, общими структурами данных
ядра и общим пулом, из которого
процессы вызываются на выполнение.
Часто, однако, бывает желательно в
целях обеспечения совместного
использования ресурсов
распределять процессоры таким
образом, чтобы они были автономны
от операционной среды и условий
эксплуатации. Пусть, например,
пользователю персональной ЭВМ
нужно обратиться к файлам,
находящимся на более крупной
машине, но сохранить при этом
контроль над персональной ЭВМ.
Несмотря на то, что отдельные
программы, такие как uucp,
поддерживают передачу файлов по
сети и другие сетевые функции, их
использование не будет скрыто от
пользователя, поскольку
пользователь знает о том, что он
работает в сети. Кроме того, надо
заметить, что программы, подобные
текстовым редакторам, с удаленными
файлами, как с обычными, не
работают. Пользователи должны
располагать стандартным набором
функций системы UNIX и, за
исключением возможной потери в
быстродействии, не должны ощущать
пересечения машинных границ. Так,
например, работа системных функций
open и read с файлами на удаленных
машинах не должна отличаться от их
работы с файлами, принадлежащими
локальным системам.  
Архитектура
распределенной системы
представлена на Рисунке 13.1.
Каждый компьютер, показанный на
рисунке, является автономным
модулем, состоящим из ЦП, памяти и
периферийных устройств.
Соответствие модели не нарушается
даже несмотря на то, что компьютер
не располагает локальной файловой
системой: он должен иметь
периферийные устройства для связи
с другими машинами, а все
принадлежащие ему файлы могут
располагаться и на ином компьютере.
Физическая память, доступная
каждой машине, не зависит от
процессов, выполняемых на других
машинах. Этой особенностью
распределенные системы отличаются
от сильносвязанных
многопроцессорных систем,
рассмотренных в предыдущей главе.
Соответственно, и ядро    
Рисунок 13.1. Модель
системы с распределенной
архитектурой  
системы на каждой машине
функционирует независимо от
внешних условий эксплуатации
распределенной среды.  
Распределенные системы, хорошо
описанные в литературе,
традиционно делятся на следующие
категории:  
    - периферийные системы,
        представляющие собой группы
        машин, отличающихся
        ярковыраженной общностью и
        связанных с одной (обычно более
        крупной) машиной. Периферийные
        процессоры делят свою нагрузку
        с центральным процессором и
        переадресовывают ему все
        обращения к операционной
        системе. Цель периферийной
        системы состоит в увеличении
        общей производительности сети
        и в предоставлении возможности
        выделения процессора одному
        процессу в операционной среде
        UNIX. Система запускается как
        отдельный модуль; в отличие от
        других моделей распределенных
        систем, периферийные системы
        не обладают реальной
        автономией, за исключением
        случаев, связанных с
        диспетчеризацией процессов и
        распределением локальной
        памяти. 
 
    - распределенные системы типа
        "Newcastle", позволяющие
        осуществлять дистанционную
        связь по именам удаленных
        файлов в библиотеке (название
        взято из статьи "The Newcastle
        Connection" - см. [Brownbridge 82]).
        Удаленные файлы имеют
        спецификацию (составное имя),
        которая в указании пути поиска
        содержит специальные символы
        или дополнительную компоненту
        имени, предшествующую корню
        файловой системы. Реализация
        этого метода не предполагает
        внесения изменений в ядро
        системы, вследствие этого он
        более прост, чем другие методы,
        рассматриваемые в этой главе,
        но менее гибок. 
 
    - абсолютно "прозрачные"
        распределенные системы, в
        которых для обращения к файлам,
        расположенным на других
        машинах, достаточно указания
        их стандартных составных имен;
        распознавание этих файлов как
        удаленных входит в обязанности
        ядра. Маршруты поиска файлов,
        указанные в их составных
        именах, пересекают машинные
        границы в точках монтирования,
        сколько бы таких точек ни было
        сформировано при монтировании
        файловых систем на дисках. 
 
 
В настоящей главе мы рассмотрим
архитектуру каждой модели; все
приводимые сведения базируются не
на результатах конкретных
разработок, а на информации,
публиковавшейся в различных
технических статьях. При этом
предполагается, что забота об
адресации, маршрутизации,
управлении потоками, обнаружении и
исправлении ошибок возлагается на
модули протоколов и драйверы
устройств, другими словами, что
каждая модель не зависит от
используемой сети. Примеры
использования системных функций,
приводимые в следующем разделе для
периферийных систем, работают
аналогичным образом и для систем
типа Newcastle и для абсолютно
"прозрачных" систем, о которых
пойдет речь позже; поэтому в
деталях мы их рассмотрим один раз, а
в разделах, посвященных другим
типам систем, остановимся в
основном на особенностях,
отличающих эти модели от всех
остальных.  
Предыдущая
глава || Оглавление
|| Следующая глава 
  
 
 |