В предыдущей главе нами были рассмотрены сильносвязанные многопроцессорные системы с общей памятью, общими структурами данных ядра и общим пулом, из которого процессы вызываются на выполнение. Часто, однако, бывает желательно в целях обеспечения совместного использования ресурсов распределять процессоры таким образом, чтобы они были автономны от операционной среды и условий эксплуатации. Пусть, например, пользователю персональной ЭВМ нужно обратиться к файлам, находящимся на более крупной машине, но сохранить при этом контроль над персональной ЭВМ. Несмотря на то, что отдельные программы, такие как uucp, поддерживают передачу файлов по сети и другие сетевые функции, их использование не будет скрыто от пользователя, поскольку пользователь знает о том, что он работает в сети. Кроме того, надо заметить, что программы, подобные текстовым редакторам, с удаленными файлами, как с обычными, не работают. Пользователи должны располагать стандартным набором функций системы UNIX и, за исключением возможной потери в быстродействии, не должны ощущать пересечения машинных границ. Так, например, работа системных функций open и read с файлами на удаленных машинах не должна отличаться от их работы с файлами, принадлежащими локальным системам.
Архитектура
распределенной системы
представлена на Рисунке 13.1.
Каждый компьютер, показанный на
рисунке, является автономным
модулем, состоящим из ЦП, памяти и
периферийных устройств.
Соответствие модели не нарушается
даже несмотря на то, что компьютер
не располагает локальной файловой
системой: он должен иметь
периферийные устройства для связи
с другими машинами, а все
принадлежащие ему файлы могут
располагаться и на ином компьютере.
Физическая память, доступная
каждой машине, не зависит от
процессов, выполняемых на других
машинах. Этой особенностью
распределенные системы отличаются
от сильносвязанных
многопроцессорных систем,
рассмотренных в предыдущей главе.
Соответственно, и ядро
Рисунок 13.1. Модель системы с распределенной архитектурой
системы на каждой машине функционирует независимо от внешних условий эксплуатации распределенной среды.
Распределенные системы, хорошо описанные в литературе, традиционно делятся на следующие категории:
В настоящей главе мы рассмотрим архитектуру каждой модели; все приводимые сведения базируются не на результатах конкретных разработок, а на информации, публиковавшейся в различных технических статьях. При этом предполагается, что забота об адресации, маршрутизации, управлении потоками, обнаружении и исправлении ошибок возлагается на модули протоколов и драйверы устройств, другими словами, что каждая модель не зависит от используемой сети. Примеры использования системных функций, приводимые в следующем разделе для периферийных систем, работают аналогичным образом и для систем типа Newcastle и для абсолютно "прозрачных" систем, о которых пойдет речь позже; поэтому в деталях мы их рассмотрим один раз, а в разделах, посвященных другим типам систем, остановимся в основном на особенностях, отличающих эти модели от всех остальных.
Предыдущая глава || Оглавление || Следующая глава