9_MPS.ppt
- Количество слайдов: 41
МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ Аспект Мультипроцессор Многомашинная система ОС Одна, общая ОС ФС Одна, общая ФС Администрирование Конфигурация узла Одна организация Используется ОС могут быть несколько, чаще различными одинаковых Одна, общая У каждого узла своя ФС Одна организация Много организаций ЦП, Сетевой Узел – это полинтерфейс, ОЗУ ный компьютер ЦП Периферия узла Все общие Расположение Связь узлами В одном блоке между Общая память Общая, дисков Распределенная система кроме Для каждого узла необходим полный набор периферии В одном помещении В предельном случае – по всему миру (Inter. Net) Выделенные линии Традиционная сеть
Наиболее часто используются три типа организации МПС с общей памятью, мультипроцессорная система с передачей, сообщений, распределенная система • Простейший способ состоит в том, чтобы статически разделить ОП по числу ЦП и дать каждому ЦП свою собственную память с собственной копией ОС (то есть, с общей памятью), при такой организации каждый процессор работает независимо друг от друга. Есть общая шина, к которой подключен каждый процессор со своей ОС. При этом у них может быть общая память, которая может быть разделена на блоки для каждого процесса, и к шине может быть подключено УВВ (проблемы: синхронизация процессоров, управление ресурсами, система планирования). • Мультипроцессоры, где мы передаем сообщения и используем локальную память у каждого ЦП – это МПС передачи сообщений. • Распределенные МПС. У каждого процессора имеется своя память.
Мультипроцессорная система с общей памятью (а); мультипроцессорная система с передачей сообщений (б); глобальная распределенная система (в)
Три варианта архитектуры мультипроцессоров с общей шиной: без кэша (в с кэшем (б); с кэшем и собственной памятью (в)
По характеру доступа к памяти эти машины делятся на два класса: UMA-мультипроцессоры (Uniform Memory Access — однородный доступ к памяти) и NUMA (Non. Uniform Memory Access — неоднородный доступ к памяти) Мультипроцессоры UMA, использующие координатные коммутаторы
Мультипроцессоры UMA, использующие многоступенчатые коммутаторные сети (n/2)log 2 n коммутаторов
Мультипроцессоры NUMA • Единое адресное пространство • Доступ к удаленным модулям памяти специальными командами • Доступ к удаленным модулям памяти медленнее, чем к локальной памяти Без кэширования – NC NUMA, с когерентным кэшированием – СС NUMA.
Типы мультипроцессорных операционных систем: Каждому центральному процессору — свою операционную систему Мультипроцессоры типа «хозяин-подчиненный»
Симметричные мультипроцессоры (SMP) Синхронизация в мультипроцессорах
Планирование мультипроцессора с разделением времени умное планирование, в котором процесс, захватывающий спин-блокировку, устанавливает флаг, демонстрирующий, что он в данный момент обладает спин-блокировкой родственное планирование - процесс был запущен на том же центральном процессоре, что и в прошлый раз. Один из способов реализации этого метода состоит в использовании двухуровневого алгоритма планирования: в момент создания процесс назначается наименее загруженному центральному процессору. Это - верхний уровень алгоритма. Действительное планирование на нижнем уровне выполняется на каждом центральном процессоре.
Совместное использование пространства Бригадное планирование состоит из трех частей: • Группы связанных потоков планируются как одно целое, бригада. • Все члены бригады запускаются одновременно, на разных центральных процессорах с разделением времени. • Все члены бригады начинают и завершают свои временные интервалы вместе.
Многомашинные системы кластерные компьютеры, COWS (Clusters of Workstations — гроздья рабочих станций). Технология соединений один коммутатор (а); кольцо (б); решетка (в); двойной тор (г); куб (д); четырехмерный гиперкуб (е)
В многомашинных системах применяются две коммутационные схемы. В первой из них каждое сообщение сначала разбивается (либо программным обеспечением пользователя, либо сетевым интерфейсом) на отдельные фрагменты, называемые пакетами. Коммутационная схема, называемая коммутацией пакетов с промежуточным хранением, состоит в том, что пакет сначала посылается сетевой картой источника первому узлу (рис. 8. 17, а). Пакет передается побитно, и когда прибывает весь пакет, он копируется на следующий коммутатор (рис. 8. 17, б). Когда пакет прибывает на коммутатор, соединенный с пунктом назначения (рис. 8. 17, в), пакет копируется на сетевую карту узла-получателя и, наконец, попадает в оперативную память этого узла
Коммутация пакетов с промежуточным хранением
Сетевые интерфейсы Расположение сетевых интерфейсных плат в мультикомпьютере
Коммуникационное программное обеспечение низкого уровня Связь между узлом и сетевым интерфейсом Использование колец передачи и приема для координации центрального процессора с процессором на плате
Коммуникационное программное обеспечение уровня пользователя Блокирующие ( синхронные) и неблокирующие (асинхронные) вызовы
У отправителя имеется следующий выбор: • Блокирующая операция send (центральный процессор простаивает во время передачи сообщения). • Неблокирующая операция send с копированием (время центрального процессора теряется на создание дополнительной копии). • Неблокирующая операция send с прерыванием (усложняет программу). • Копирование при записи (в конечном итоге требуется дополнительная операция копирования). Вызов удаленной процедуры
Планирование многомашинных систем Алгоритмы и эвристики для назначения процессов узлам называются алгоритмами распределения процессоров. Детерминистический графовый алгоритм Два способа распределения девяти процессов на трех узлах
Распределенная память совместного доступа DSM (Distributed Shared Memory — распределенная совместно используемая память) Различные уровни, на которых может быть реализована совместно используемая память: аппаратный (а); операционная система (б); программное обеспечение уровня пользователя (в)
Страницы адресного пространства, распределенные между машинами (а); центральный процессор 0 обратился к странице 10 (б); если страница 10 доступна только для чтения, то используется репликация (в)
Ложное совместное использование памяти
Распределенный эвристический алгоритм, инициируемый отправителем Перегруженный узел ищет легко загруженный узел, которому можно передать процесс (а); пустой узел ищет работу (б) Распределенный эвристический алгоритм, инициируемый получателем Алгоритм торгов
Распределенные системы Положение промежуточного программного обеспечения в распределенной системе
Ethernet Классическая сеть Ethernet, стандарт IEEE Standard 802. 3, состоит из коаксиального кабеля, к которому присоединены несколько компьютеров.
Сетевые службы и протоколы Шесть типов служб Служба Надежный поток сообщений Надежный поток байт Ненадежное соединение Ненадежная дейтаграмма Дейтаграмма с подтверждением Запрос-ответ Пример Последовательность страниц Удаленная регистрация Цифровая голосовая связь Заказные письма Запрос к базе данных
Промежуточное программное обеспечение, основанное на документе Направленный граф документов
Промежуточное программное обеспечение, основанное на файловой системе Модель закачивания/скачивания (а); коммутируемая сеть Ethernet (б)
Иерархия каталогов два файловых сервера (а); система, в которой для всех клиентов файловая система выглядит одинаково (б); система, в которой разные машины видят файловую систему поразному (в)
Последовательная непротиворечивость (а); в распределенной системе с кэшированием при чтении файла можно получить его устаревшую копию (б)
Файловая система AFS Расположение программ venus и vice в файловой системе AFS (а); файловая система с точки зрения клиента (б)
Промежуточное программное обеспечение, основанное на совместно используемых объектах CORBA (Common Object Request Broker Architecture — архитектура распределенных объектных приложений) ORB (Object Request Broker — брокер объектных запросов) IDL (Interface Definition Language). IIОР (Internet Inter. ORB Protocol — протокол для связи между ORB-посредниками по Интернету). Основные элементы распределенной системы, основанной на архитектуре CORBA
Технология CORBA основана на объектах времени исполнения, представляет собой систему «клиент-сервер» и разработана для неоднородной системы, состоящей из разнообразных аппаратных платформ и ОС. Посредники между клиентом и сервером, где хранятся объекты, - ORB. В определении объектов указываются методы и типы параметров каждого метода. Спецификация IDL хранится в библиотеке. При создании объекта создается ссылка на этот объект, которая возвращается процессу и может храниться в библиотеке. Для вызова метода объекта клиентский процесс должен получить ссылку на этот объект от создавшего процесса или путем поиска в специальном каталоге. После получения ссылки клиентский процесс упаковывает параметры вызываемого метода в стандартную структуру и через клиентского и серверного ORBпосредников вызывает метод объекта. Упаковщик обрабатывает формулирование ссылок на объект и активацию объекта. Протокол для связи - IIOP. Чтобы использовать объекты, не предназначенные для этой системы, используются адаптеры объектов. Недостаток – каждый объект расположен только на одном сервере.
Система Globe (с распределенным совместно используемым объектом) Структура объекта Globe
Используется две идеи: репликация объекта (распределение нагрузки в сети по репликам), совместно используемая память применительно к всемирному контексту (технология DSM). Создается механизм, запрещающий прямой доступ к внутреннему состоянию объекта и разрешающий доступ только через методы. Каждый объект Globe имеет объект класса, содержащий программы его методов, и интерфейс, хранящийся в таблице памяти и представляющий собой таблицу указателей на метод и на состояние объекта. Ключевой элемент системы – служба обнаружения объектов – граф (дерево), в узлах которого хранятся регистрационные данные объектов. Указатели передвигаются вверх по дереву. Для использования объекта процесс должен его найти и определить хотя бы один адрес контакта (связаться с объектом). При связывании проверяется безопасность, и объект загружается в адресное пространство процесса, создается экземпляр класса и процессу возвращается указатель на его интерфейс. Куказатель используется для вызова методов.
Распределенный совместно используемый объект, состояние которого копируется на несколько компьютеров
Структура объекта Globe
Промежуточное программное обеспечение, основанное на координации (Linda) В системе Linda независимые процессы общаются через абстрактное пространство кортежей Это пространство является глобальным по отношению ко всей системе, и процессы на любой машине могут вставлять кортежи в пространство кортежей или удалять их из него, независимо от того, как и где они хранятся. Для пользователя пространство кортежей выглядит как большая глобальная общая память. Кортеж представляет собой структуру языка С или запись языка Pascal. Он состоит из одного или нескольких полей, каждое из которых является значением некоторого типа, поддерживаемого базовым языком. (Система Linda реализуется с помощью добавле-ния библиотеки к стандартному языку, например к С. ) В системе C-Linda типы полей включают целые числа, длинные целые числа, числа с плавающей точкой, а также составные типы, такие как массивы (включая строки) и структуры (но не другие кортежи). В отличие от объектов кортежи представляют собой чистые данные, они не содержат методов.
Публикация/подписка Архитектура модели «публикация/подписка»
Jini Когда Jini-устройство хочет присоединиться к федерации, оно передает по локальной сети с помощью широковещания пакет с вопросом о наличии в данном районе службы поиска. Для нахождения службы поиска используется специальный протокол обнаружения, один из нескольких «зашитых» протоколов системы Jini. Когда служба поиска видит, что новое устройство хочет зарегистрироваться, она посылает в ответ программу, выполняющую регистрацию. Поскольку Jini представляет собой систему, целиком реализованную на языке Java, посылаемая программа также написана на языке Java, интерпретируемом виртуальной машиной Java. Концепция регистрации на определенный срок называется получением аренды. Клиенты и службы (аппаратные или программные устройства) общаются и синхронизируются при помощи пространств Java. Spaces