Файл: Debian Таненбаум Бос.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 48171

Скачиваний: 190

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

8.4. Распределенные системы   

631

Таблица 8.1. Сравнение трех типов многопроцессорных систем

Сравниваемые 

показатели

Мультипроцес-

сор

Мультикомпьютер

Распределенная 

система

Конфигурация узла

Центральный 
процессор

Центральный процессор, 
оперативная память, сете-
вой интерфейс

Полноценный компью-
тер

Периферийные 
устройства узла

Все устройства 
общие

Общие, кроме, может быть, 
диска

Полный набор 
устройств для каждого 
узла

Расположение

В одном блоке

В одном помещении

Возможно, по всему 
миру

Связь между 
узлами

Общая память

Специальные линии

Традиционная сеть

Операционные 
системы

Одна, общая

Несколько, одинаковые

Все могут быть раз-
ными

Файловые системы

Одна, общая

Одна, общая

У каждого узла своя

Администрирова-
ние

Одна органи-
зация

Одна организация

Множество организа-
ций

зрения. С технической точки зрения у мультипроцессоров, в отличие от двух остальных 
типов многопроцессорных систем, есть общая память. Это отличие приводит к разным 
моделям программирования и разному образу мышления. Однако с прикладной точки 
зрения мультипроцессоры и мультикомпьютеры — это просто большие блоки аппара-
туры, находящиеся в машинном зале. Обе системы используются для решения задач, 
требующих больших объемов вычислений, в то время как распределенные системы, 
связывающие компьютеры по всему Интернету, обычно намного больше вовлечены 
в обмен данными, чем в вычисления, и используются совершенно иначе.

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

К типичным интернет-приложениям относятся доступ к удаленным компьютерам 
(с использованием программ telnet, ssh и rlogin), доступ к удаленной информации (с по-
мощью Всемирной паутины и протокола FTP), личное общение (с использованием 
электронной почты и чат-программ) и множество появляющихся новых приложений 
(связанных, например, с электронной коммерцией, телемедициной и дистанционным 
обучением). Плохо только то, что для каждого из этих приложений приходится изо-
бретать колесо заново. Например, и электронная почта, и FTP, и Всемирная паутина 
в общем-то перемещают файлы из пункта А в пункт Б, но у всех них свой способ ре-
шения этой задачи, дополненный их собственными соглашениями об именах, протоко-
лами передачи, технологиями копирования и пр. Хотя многие веб-браузеры скрывают 
эти различия от обычного пользователя, лежащие в их основе механизмы совершенно 
отличаются друг от друга. Их сокрытие на уровне пользовательского интерфейса на-
поминает ситуацию, когда кто-нибудь заказывает у агента бюро путешествий, предла-


background image

632  

 Глава 8. Многопроцессорные системы 

гающего полный набор услуг, путешествие из Нью-Йорка в Сан-Франциско и только 
потом обнаруживает, какой билет ему достался: на самолет, поезд или автобус.

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

Простой пример объединяющей парадигмы в немного ином контексте можно найти 
в UNIX, где все устройства ввода-вывода сделаны похожими на файлы. Когда клави-
атуры, принтеры и последовательные каналы действуют по единому сценарию с ис-
пользованием одних и тех же примитивов, работать с ними значительно проще, чем 
с концептуально разнородным оборудованием.

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

Рис. 8.26. Место связующего программного обеспечения в распределенной системе

В некотором смысле связующее программное обеспечение похоже на операционную си-
стему распределенной системы, поэтому оно будет рассмотрено в книге, посвященной 
операционным системам. Однако оно не является настоящей операционной системой, 
поэтому его рассмотрение не будет слишком подробным. Полноценное изложение 
всех вопросов, касающихся распределенных систем, можно найти в посвященной им 
книге Distributed Systems (Tanenbaum and van Steen, 2007). В оставшейся части этой 
главы будет дан краткий обзор оборудования, использующегося в распределенных 


background image

8.4. Распределенные системы   

633

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

8.3.1. Сетевое оборудование

Распределенные системы создаются поверх компьютерных сетей, поэтому настал черед 
краткого введения в этот предмет. Сети представлены двумя основными вариантами: 
локальными сетями

 (Local Area Networks (LAN)), работающими на территории соору-

жений или групп сооружений, и глобальными сетями (Wide Area Networks (WAN)), 
которые покрывают территорию города, страны или даже всего мира. Наиболее важной 
разновидностью локальной сети является Ethernet, поэтому она и будет взята в каче-
стве примера для изучения. А в качестве примера для изучения глобальной сети будет 
взят Интернет, несмотря на то что технически он не является единой сетью, а пред-
ставляет собой объединение тысяч отдельных сетей. Но для поставленных нами целей 
вполне достаточно будет представлять его единой глобальной сетью.

Ethernet

Классическая сеть Ethernet, описание которой дано в стандарте IEEE Standard 802.3, со-
стоит из коаксиального кабеля, подключенного к нескольким компьютерам. Этот кабель 
называется Ethernet в память о светоносном эфире, по которому, как считалось ранее, 
распространяются электромагнитные волны. (Когда английский физик XIX столетия 
Джеймс Кларк Максвелл обнаружил, что электромагнитное излучение может быть 
описано волновым уравнением, ученые предположили, что пространство должно быть 
заполнено некой эфирной средой, в которой распространялось излучение. Только после 
знаменитого эксперимента Михельсона и Морли в 1887 году, в котором эфир так и не 
был обнаружен, физики поняли, что излучение может распространяться в вакууме.)

В самой первой версии Ethernet компьютер был подключен к кабелю буквально с помо-
щью отверстия, просверленного на половину диаметра кабеля, в которое вкручивался 
провод, ведущий к компьютеру. Этот способ подключения, схематически показанный 
на рис. 8.27, а, назывался зубом вампира (vampire tap). Попасть зубом в нужное место 
было трудно, поэтому вскоре стали использоваться подходящие разъемы. Тем не менее 
электрически все компьютеры были связаны так, как будто их сетевые интерфейсные 
карты были спаяны друг с другом.

Рис. 8.27. Сеть Ethernet: а — классическая; б — коммутируемая


background image

634  

 Глава 8. Многопроцессорные системы 

Для предотвращения хаоса при большом количестве компьютеров, подключенных 
к одному и тому же кабелю, требовался протокол. Чтобы отправить пакет по сети 
Ethernet, компьютер сначала анализировал состояние кабеля, определяя, не занят ли 
какой-нибудь компьютер в данный момент передачей данных. Если ответ был отрица-
тельным, он приступал к передаче пакета, который состоял из короткого заголовка, за 
которым следовали от 0 до 1500 байт полезной информации. Если кабель был занят, 
компьютер просто ждал, пока не закончится текущая передача, после чего приступал 
к отправке своего пакета.

Если два компьютера приступали к отправке пакетов одновременно, возникал кон-
фликт, обнаруживаемый обоими компьютерами. Оба они откликались на это событие 
произвольным ожиданием, продолжавшимся от 0 до T мкс, после чего опять приступа-
ли к передаче. Если опять возникал конфликт, то все участвующие в нем компьютеры 
делали произвольную паузу, продолжавшуюся от 0 до 2T мкс, после чего повторяли 
свою попытку. С каждым последующим конфликтом максимальный интервал ожида-
ния удваивался, уменьшая шансы возникновения новых конфликтов. Этот алгоритм 
известен под именем двоичного экспоненциального алгоритма задержки (binary 
exponential backoff). Он нам уже попадался при рассмотрении вопроса сокращения 
издержек на опросы блокировок.

Для сети Ethernet определены предельная длина кабеля и предельное количество 
подключенных компьютеров. Для преодоления любого из этих ограничений большие 
сооружения или группа сооружений могут оснащаться несколькими сетями Ethernet, 
которые затем подключаются к устройствам, называемым мостами (bridges). Мост 
является устройством, позволяющим потоку данных проходить из одной сети Ethernet 
в другую, когда источник находится по одну его сторону, а приемник — по другую.

Во избежание конфликтов современные сети Ethernet используют коммутаторы 
(рис. 8.27, б). У каждого коммутатора есть определенное количество портов, к которым 
может подключаться компьютер, сеть Ethernet или другой коммутатор. Когда пакет 
успешно избегает всех конфликтов и добирается до коммутатора, он попадает в его 
буфер и отправляется на тот порт, к которому подключен компьютер назначения. Вы-
деляя каждому компьютеру его собственный порт, можно вообще избавиться от всех 
конфликтов за счет более емких коммутаторов. Возможны и компромиссные варианты, 
когда к каждому порту подключается всего несколько компьютеров. На рис. 8.27, б 
показана классическая сеть Ethernet с несколькими компьютерами, соединенными 
кабелем с помощью «зубов вампира», подключенная к одному из портов коммутатора.

Интернет

Интернет стал развитием ARPANET — экспериментальной сети с коммутацией паке-
тов, профинансированной Агентством по перспективным исследовательским проектам 
министерства обороны США. Эта сеть была запущена в декабре 1969 года и связала 
три компьютера в Калифорнии и один — в штате Юта. Она была разработана в разгар 
холодной войны и рассматривалась как сеть, имеющая высокую отказоустойчивость 
и способность продолжать передачу информации военного характера даже в условиях 
нанесения точных ядерных ударов по нескольким составляющим сети за счет автома-
тического перенаправления трафика в обход вышедших из строя машин.

В 1970-х годах ARPANET быстро разрасталась, охватив со временем сотни компью-
теров. Когда к ней были подключены сеть пакетной радиосвязи, спутниковая сеть 


background image

8.4. Распределенные системы   

635

и в конечном счете тысячи сетей Ethernet, это привело к созданию объединения сетей, 
известного теперь как Интернет.

Интернет состоит из двух типов компьютеров: хостов и маршрутизаторов. Хостами 
(hosts) являются персональные компьютеры, ноутбуки, КПК, серверы, универсальные 
машины и другие компьютеры, владельцами которых являются частные лица или 
компании, пожелавшие подключиться к Интернету. Маршрутизаторы (routers) — это 
специализированные коммутирующие компьютеры, принимающие входящие пакеты 
по одной или нескольким входящим линиям и отправляющие их по их маршруту 
по одной из многих выходящих линий. Маршрутизатор похож на коммутатор (см. 
рис. 8.27, б), но имеет и некоторые отличия, которые нас в данном случае не касаются. 
Маршрутизаторы соединены друг с другом в большие сети, в которых каждый маршру-
тизатор связан электрическими или оптоволоконными кабелями со многими другими 
маршрутизаторами и хостами. Крупные национальные или всемирные сети маршру-
тизаторов управляются телефонными компаниями и поставщиками услуг Интернета.

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

Рис. 8.28. Фрагмент Интернета

С помощью оптоволоконных кабелей со средней пропускной способностью к маги-
стральным маршрутизаторам подключаются региональные сети и маршрутизаторы по-
ставщиков услуг Интернета. В свою очередь у корпоративных сетей Ethernet имеются