Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы), страница 9
Описание файла
PDF-файл из архива "Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)", который расположен в категории "". Всё это находится в предмете "распределенные операционные системы" из 8 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 9 страницы из PDF
Кэширование тем не менее активно1.3. Концепции аппаратных решений41используется в распределенных системах, и здесь мы вновь сталкиваемся с проблемами несогласованной памяти. Мы вернемся к проблемам кэширования и согласованности в главе 6. Мультипроцессоры шинной архитектуры хорошо описаны в книге [265].Проблема мультипроцессорных систем шинной архитектуры состоит в их ограниченной масштабируемости, даже в случае использования кэша.
Для построения мультипроцессорной системы с более чем 256 процессорами для соединения процессоров с памятью необходимы другие методы. Один из вариантов —разделить обидую память на модули и связать их с процессорами через коммутирующую решетку {crossbar switch), как показано на рис. 1.6, а. Как видно из рисунка, с ее помощ.ью каждый процессор может быть связан с любым модулем памяти. Каждое пересечение представляет собой маленький электронный узловойкоммутатор (crosspoint switch), который может открываться и закрываться аппаратно. Когда процессор желает получить доступ к конкретному модулю памяти,соединяющие их узловые коммутаторы мгновенно открываются, организуя запрошенный доступ.
Достоинство узловых коммутаторов в том, что к памяти могут одновременно обращаться несколько процессоров, хотя если два процессораодновременно хотят получить доступ к одному и тому же участку памяти, то одному из них придется подождать.Области памятиПроцессорыШМФФ Ф-мыПроцессорыОбласти памяти-Ф-Фф—ф^—фУзловой коммутатораКоммутатор 2x2бРис. 1.6. Коммутирующая решетка (а). Коммутирующая омега-сеть (б)Недостатком коммутирующей решетки является то, что при наличии п процессоров и п модулей памяти нам потребуется тг^ узловых коммутаторов.
Длябольших значений п это число может превысить наши возможности. Обнаруживэто, человечество стало искать и нашло альтернативные коммутирующие сети,требующие меньшего количества коммутаторов. Один из примеров таких сетей — омега-сеть (omega network), представленная на ppic. 1.6, б. Эта сеть содержит четыре коммутатора 2x2, то есть каждый из них имеет по два входа и двавыхода. Каждый коммутатор может соединять любой вход с любым выходом.Если внимательно изучить возможные положения коммутаторов, становится яс-42Глава 1.
Введениено, что любой процессор может получить доступ к любому блоку памяти. Недостаток коммутирующих сетей состоит в том, что сигнал, идущий от процессорак памяти или обратно, вынужден проходить через несколько коммутаторов.Поэтому, чтобы снизить задержки между процессором и памятью, коммутаторыдолжны иметь очень высокое быстродействие, а дешево это не дается.Люди пытаются уменьшить затраты на коммутацию путем перехода к иерархическим системам.
В этом случае с каждым процессором ассоциируется некоторая область памяти. Каждый процессор может быстро получить доступ к своейобласти памяти. Доступ к другой области памяти происходит значительно медленнее. Эта идея была реализована в машине с пеупифицироваппым доступомк памяти {NonUnifoim Memoiy Access, NUMA). Хотя машины NUMA имеют лучшее среднее время доступа к памяти, чем машины на базе омега-сетей, у них естьсвои проблемы, связанные с тем, что размещение программ и дан11ых необходимо производить так, чтобы большая часть обращений шла к локально!! памяти.1.3.2.
Гомогенные мультикомпьютерныесистемыв отличие от мультипроцессоров построить мультикомпьютерную систему относительно несложно. Каждый процессор напрямую связан со своей локальной памятью. Единственная оставшаяся проблема — это общение процессоров междусобой. Понятно, что и тут необходима какая-то схема соединения, но посколькунас интересует только связь между процессорами, объем трафика будет на несколько порядков нР1же, чем при использовании сети для поддержания трафикамежду процессорами и памятью.Сначала мы рассмотрим гомогенные мультикомпьютерные сргстемы.
В этихсистемах, известных под названием системиых сетей {System Area Networks,SAN), узлы монтируются в большой стойке и соединяются единой, обычно высокоскоростной сетью. Как и в предыдущем случае, нам придется выбирать междусистемами на основе шинной архитектуры и системами на основе коммутации.В мультикомпьютерных системах с шинной архитектурой процессоры соединяются при помощи разделяемой сети множественного доступа, например FastEthernet. Скорость передачи данных в сети обычно равна 100 Мбит/с.
Как и вслучае мультипроцессоров с шинной архитектурой, мультикомпьютерные системы с шинной архитектурой имеют ограниченную масштабируемость. В зависимости от того, сколько узлов в действительности нуждаются в обмене данными,обычно не следует ожидать высокой производительности при превышении системой предела в 25-100 узлов.В коммутируемых мультикомпьютерных системах сообщения, передаваемыеот процессора к процессору, маршрутизируются в соединительной сети в отличие от принятых в шинной архитектуре широковещательных рассылок. Былопредложено и построено множество различных топологий.
Две популярные топологии — квадратные решетки и гиперкубы — представлены на рис. 1.7. Решет-1.3. Концепции аппаратных решений43ки просты для понимания и удобны для разработки на их основе печатных плат.Они прекрасно подходят для решения двухмерных задач, например задач теорииграфов или компьютерного зрения (глаза робота, анализ фотографий).Рис. 1.7. Решетка (а). Гиперкуб (б)Гиперкуб (hypercube) представляет собой куб размерности п. Гиперкуб, показанный на рис. 1.7, б, четырехмерен.
Его можно представить в виде двухобычных кубов, с 8 вершинами и 12 ребрами каждый. Каждая вершина — этопроцессор. Каждое ребро — это связь между двумя процессорами. Соответствующие вершины обоих кубов соединены между собой. Для расширения гиперкубав пятое измерение мы должны добавить к этой фигуре еще один комплект издвух связанных кубов, соединив соответствующие вершины двух половинок фигуры. Таким же образом можно создать шестимерный куб, семимерный и т. д.Коммутируемые мультикомпьютерные системы могут быть очень разнообразны. На одном конце спектра лежат процессоры с массовым параллелизмом{Massively Parallel Processors, МРР), гигантские суперкомпьютеры стоимостью вомного миллионов долларов, содержащие тысячи процессоров.
Нередко они собираются из тех же процессоров, которые используются в рабочих станциях илиперсональных компьютерах. От других мультикомпьютерных систем их отличает наличие патентованных высокоскоростных соединительных сетей. Эти сетипроектируются в расчете на малое время задержки и высокую пропускную способность. Кроме того, предпринимаются специальные меры для защиты системыот сбоев. При наличии тысяч процессоров каждую неделю как минимум несколько будут выходить из строя. Нельзя допустить, чтобы поломка одного изних приводила к выводу из строя всей машины.На другом конце спектра мы обнаруживаем популярный тип коммутируемыхмикрокомпьютеров, известных как кластеры рабочих станций {Clusters Of Workstations, COW), основу которых составляют стандартные персональные компьютеры или рабочие станции, соединенные посредством коммерческих коммуникационных компонентов, таких как карты Myrinet [70].
Соединительные сети —вот то, что отличает COW от МРР. Кроме того, обычно не предпринимается никаких особых мер для повышения скорости ввода-вывода или защиты от сбоевв системе. Подобный подход делает COW проще и дешевле.44Глава 1. Введение1.3.3. Гетерогенные мультикомпьютерныесистемыНаибольшее число существующих в настоящее время распределенных систем построено по схеме гетерогенных мультикомпьютерных.
Это означает, что компьютеры, являющиеся частями этой системы, могут быть крайне разнообразны,например, по типу процессора, размеру памяти и производительности каналовввода-вывода. На практике роль некоторых из этих компьютеров могут исполнять высокопроизводительные параллельные системы, например мультипроцессорные или гомогенные мультикомпьютерные.Соединяющая их сеть также может быть сильно неоднородной. Так, например, авторы этой книги помогали! разрабатывать самодельную распределеннуюкомпьютерную систему, названную DAS, состоящую из четырех кластеров мультикомпьютерных систем, соединенных высокопроизводительными АТМ-коммутируемыми каналами. Фотографии этой системы и ссылки на исследования,проводимые на ней, можно найти по адресу http://Www.cs.vu.nll-balldas.html. Кластеры также были связаны между собой через стандартные Интернет-соединения.
Каждый кластер содержал одинаковые процессоры (Pentium III) и соединяющую их сеть (Myrinet), но различался по числу процессоров (64-128).Другим примером гетерогенности является создание крупных мультикомпьютерных систем с использованием существующих сетей и каналов. Так, например, не является чем-то необычным существование кампусных университетскихраспределенных систем, состоящих из локальных сетей различных факультетов,соединенных между собой высокоскоростными каналами.
В глобальных системах различные станции могут, в свою очередь, соединяться общедоступными сетями, например сетевыми службами, предлагаемыми коммерческими операторами связи, например SMDS или Frame relay.В отличие от систем, обсуждавшихся в предыдущих пунктах, многие крупномасштабные гетерогенные мультикомпьютерные системы нуждаются в глобальном подходе. Это означает, что приложение не может предполагать, что ему постоянно будет доступна определенная производительность или определенныеслужбы. Так, в проекте I-way [147] несколько высокопроизводительных компьютерных центров были связаны через Интернет.
Согласно общей модели системы предполагалось, что прршожения будут резервировать и использовать ресурсы любого из центров, но полностью скрыть от приложений разницу междуцентрами оказалось невозможно.Переходя к вопросам масштабирования, присущим гетерогенным системам,и учитывая необходимость глобального подхода, присущую большинству из них,заметим, что создание приложений для гетерогенных мультикомпьютерных систем требует специализированного программного обеспечения.
С этой проблемойраспределенные системы справляются. Чтобы у разработчиков приложений невозникало необходимости волноваться об используемом аппаратном обеспечении, распределенные системы предоставляют программную оболочку, котораязащищает приложения от того, что происходит на аппаратном уровне (то естьони обеспечивают прозрачность).1.4. Концепции программных решений451.4. Концепции программных решенийАппаратура валена для распределенных систем, однако от программного обеспечения значительно сильнее зависит, как такая система будет выглядеть на самомделе. Распределенные системы очень похожи на традиционные операционныесистемы. Прежде всего, они работают KCIK менеджеры ресурсов (resource managers)существующего аппаратного обеспечения, которые помогают множеству пользователей и приложений совместно использовать такие ресурсы, как процессоры,память, периферийные устройства, сеть и данные всех видов. Во-вторых, что, вероятно, более важно, распределенная система скрывает сложность и гетерогенную природу аппаратного обеспечения, на базе которого она построена, предоставляя виртуальную машину для выполнения приложений.Чтобы понять природу распределенной системы, рассмотрим сначала операционные системы с точки зрения распределенности.