
RPC –вызов удаленных процедур должен быть максимально похож на локальный вызов
Ограничения –
в RPC невозможно обращение из указателей, т.е программы расположены в различных адресных пространствах.
Невозможно использовать глобальные переменные.
Необходимо жесткое мета-описание параметров вызова (тип, форма данных, структура, кол-во элементарных данных)
DSM – основана на технике загрузки/выгрузки единое адресное пространство/распр. разделяемая память. Уровни реализации DSM:
Выч. Машина№1
Выч. Машина№1
Реализация на уровне приложения(3)
Поддержка
исполнения приложения
Поддержка исполнения приложения
Реализация на уровне ОС(2)
ОС
ОС
Аппаратная реализация(1)
Аппаратура
Аппаратура
CC-NUMA, CMP
кластеры приложений
Крупные корпоративные приложения(Lotus, Domino)
Проблемы:
Ложного совместного использования – два процесса обращаются к разным частям на к одной странице. Возникает тем чаще, чем больше разделяемая таблица.
Последовательная непротиворечивость ЛСИ – необходимо использование протокола когерентности с различными моделями состоятельности
МОДЕЛИ СОСТОЯТЕЛЬНОСТИ РАСПРЕДЕЛЕННОЙ ИЕРАРХИЧЕСКОЙ ПАМЯТИ
Причины введения протоколов когерентности состоит в иерархичности памяти ОЗУ, КЭШ, МД.
Параметры реализации разделяемой многими ЦП памяти:
Способ реализации механизмов когерентности: аппаратный, программный, аппаратно-программный
Тип разделяемых объектов данных – слово, строка; страница, сегмент, фрагмент(МД-ОЗУ)
Модель состоятельности определяет допустимые последовательности обращений к памяти:
SR SW
MR SW
MR MW
Политика обеспечения когерентности
Немедленная модификация
Объявление несостоятельности копий
Механизм управления распределением памяти
Местоположение
Централизованный
Распределенный
Динамика
Статическое
Динамическое
Различают следующие модели состоятельности:
Строгая – каждая операция чтения/записи возвращает последнее записанное значение
Последовательная – все ЦП в ВС соблюдают один и тот же порядок чтения/записи. ЦП, выполняющий запись, приостанавливается до тех пор, пока не получит подтверждения об объявлении копий несостоятельными(ВС с распределенной памятью)
Слабая – вводит разграничения между обычным и синхронизированным доступом к объектам, которые разделяются(имеются точки синхронизации) ------точки синхронизации t
Свободная модель(развитие и уточнение слабой). Вводятся аналоги КрУ – интервалы синхронизированного доступа к разделяемым объектам (=начало интервала)=конец интервала
Неторопливо-свободная модель – модификация копий разделяемого объекта откладывается до момента его обработки модификация в момент входа в синхроинтервал ( обработка разделяемого объекта
Нетерпеливо-свободная модель – модификация доставляется в момент выхода из синхроинтервала. (изменение реального объекта)доставка изменений ЦП, разделяющих объект
НЕЯВНАЯ И ЯВНАЯ КОГЕРЕНТНОСТЬ
Неявная реализуется аппаратно, она предназначена для программиста. Используется в SMP, CC-NUMA, CMP, OPEN-MP
Явная –программная или смешанная. Непрозрачна для программиста, программа содержит команды обмена данными вычислительных узлов.
Реализуется в MPP, вычислительных системах
Программный инструмент – MPI
ПРОТОКОЛЫ КОГЕРЕНТНОСТИ
1)MESI для разделяемой сосредоточенной памяти
Должна быть доступна возможность для отслеживания действий одного ЦП всеми остальными
Каждая строка кэща каждого ЦП может находиться в 4х состояниях: M,E,S,I
M – строка модифицирована – доступна по чтению и записи только в данном процессоре. (Лок. Сост. В данном проц.) (ЦП применил строку и не доставил изменения в ОЗУ и другие ЦП)
Е – строка монопольно скопирована в ОЗУ доступна на чтение/запись в данном ЦП и ОЗУ
S – строка множественно скопирована(разделяема), доступна и по чтению и по записи в данном процессоре, ОЗУ и других процессорах, содержащих ее копию.
I- Строка является недоступной к использованию ни по чтению, ни по записи.
Состояния строк диагностируют возможность локального доступа(без выхода на системную шину) и используются для управления механизмом когерентности
Активные субьекты, изменяющие данные:
ЦП
ВнУ
Поддержка механизма когерентности обеспечиваются управляемым битом сквозной записи
WT=1 (сквозн. запись) WT=0 (обратная запись)
Заполнение блоками данных кэща при промахе чтения (из ОЗУ загружается строка)
При прохождении записи запись реализуется только в ОЗУ
Изменение состояний строк при выполнении
операций чтения/записи:
Режим принудительного перевода строк КЭШа в различные состояния
Реализуется с помощью сигнала INV(сигнал изменения состояния)
Изменение – состояние строк под управление INV (1 или 0)
Механизмы обеспечения когерентности для распределяемой по узлам разделяемой памяти
Простейший протокол
При промахе:
Инициируется запрос в резидентный узел. Резидентная память каждого узла для каждой строки имеет список узлов, разделяющих данную строку.
Резидентный узел передает запросившему узлу строку и местоположение в списке узлов, разделяющих эту строку
При записи записывающей ЦП (узел) приостанавливается до исполнения следующей последовательности действий:
- изменения строки передаются в резидентный узел
- измененная строка из узла передается во все узлы, разделяющие строки (по списку)
- после подтверждения от каждого узла, разделяющего строку, о том, что изменения доставлены -> резидентный узел посылает разрешения на продолжение вычислений
Минус: высокие накладные расходы.
Протокол DASH (directory architecture to shared)
Командная строка резидентной памяти содержит список узлов, содержащих строку в своих КЭШах.
Состояния строк: глобальное или локальное
Глобальное состояние строки:
Not cashed (nc). Некэшированное – строки нет в КЭШах других узлов, кроме, возможно, резидентной
Remote shared (rs). Удаленно-разделенная строка – копии строки находятся в КЭШах других узлов
Remote modified (rm). Удаленно-измененная строка – строка изменена в некотором узле операцией записи
Локальное состояние строки:
Not used (nu). Невозможна к использованию
Shared (s). Разделяемая – неизмененная копия строки в других КЭШах
Modified (m). Измененная – строка изменена операцией записи в данном узле
Промах чтения –> при глобальном состоянии nc или rs из РП выбирается строка и посылается запросившему узлу.
При ГС rm – актуальное состояние в удаленном узле. Резидентный узел перенаправляет запрос в удаленный узел. Удаленный узел возвращает резидентному и запросившему узлам состоятельную копию строки -> rs.
При записи в строку в ЛС s, nu происходит запрос в резидентный узел на захват строки в монопольное пользование => приостановка на записи (невозможно начать запись в других узлах) и подтверждение о приостановке.
Все узлы переводят состояние строки в локальное nu. Резидентный узел при rs, rm рассылает запрос на монополизацию строки. При rm состоятельная копия запрашивается у узла, изменившего строку. Резидентный узел при получении подтверждений о приостановке записи посылает запросившему узлу разрешение + состоятельную строку при глобальном RM.
Применение явной когерентности
Дает низкую скорость работы ВС
Слишком дорогая реализация протоколов когерентности
Явная (программная когерентность) реализуется:
Общей надстройкой (в ОС, в приложении) – прозрачно для программиста
Разработчиком приложения – используется средство распараллеливания MPI (message passing interface) [MPP, кластеры]
Механизмы когерентности на основе масштабируемого когерентного интерфейса
SCI: аппаратура ввода/вывода для соединения управления + программная поддержка когерентности. Можно отключать и не использовать.
Каждые 64 - разрядный адрес объектов в памяти. Каждые 16 – разряды именуют узлы. Каждые 48 – адрес объекта в узле.
Информационный обмен основан на транзакциях
Чтение (ЧТ)
Запись (ЗП)
Блокировки действий под разделяющим узлом
Транзакция когерентности разделяемых строк в КЭШе и резидентной памяти (транзакция доставки изменения)
Передача сообщений между узлами
Сигналы прерывания
Транзакции переносят пакеты размером 64 или 256 байт (фиксированного размера и переменного размера 1-168 ( блокировка и сигнал))
Резидентная память для каждой строки имеет список узлов, разделяющих строку.
Узел, желающий выполнить ЗП, должен находится в голове этого списка
Узлы на чтение в хвост очереди
SCI основан на регулярных структурах коммуникационной среды (кольцо, решетка). Каждый узел имеет 3 очереди FIFO: входная, выходная и транзитная
Средства виртуализации: 1) аппаратная 2) ОС
Доменная архитектура многопроцессорных ВС
Взаимодействие распределенных ВС
Цель – превращение слабосвязанных вычислительных систем в единую когерентную систему. Подходы к реализации:
Промежуточное ПО, основанное на документе. Примеры: www документ web-страницы, инструменты HTML, HTTP, браузеры
Промежуточное ПО, основанное на объектах на основе com, ocom, corba
Промежуточное ПО, основанное на координации реализует модель Издатель-подписчик. Издатель публикует информацию, подписчик подписывается на нее.
Промежуточное ПО, основанное на файловой системе.
Распределенная система – большая файловая система. Работа с файлами – 2 модели:
А) Закачивания/скачивания в файлохранилище, из файлохранилища
Б) Удаленного доступа файл-сервер
Проблемы реализации 4-го подхода:
Выбор модели переноса: WRM (a) или RAM (б)
А) 1) Необходимость большого объема локальной памяти
2) Возможны накладные расходы: нужен фрагмент файла, но скачивается весь
3) Проблема непротиворечивости файла при использовании файла несколькими пользователями
Б) 1) Быстродействие обработки определяется пропускной способностью сетевого соединения
2) Проектирование файловой системы состоит в организации иерархии каталогов. Основной вопрос: одинаково ли выглядит иерархия каталогов для всех клиентов.
Чаще всего используется подход, основанный на монтировании удаленного файлового каталога к клиенту-обработчику в некой иерархии. Близкий вопрос: наличие в системе главного каталога, который распознается как корневой.
Именование объектов в иерархическом каталоге. Главная проблема: прозрачность именования. Две формы прозрачности:
Прозрачность местоположения
Файл на сервере S1 S1
Независимость от местаположения – позволяет перемещать файлы с одного сервера на другой. S1 -> S2
Средства виртуализации
Доменная архитектура многопроцессорных ВС:
Основана на концепции разбиения на самостоятельные UMA вычислители (SMP, CC-NUMA, CMP) и серверные платформы
Обеспечивает независимую работу отдельных серверных платформ
Отдельная серверная система включает:
Набор ЦП
Память
Подсистема ввода/вывода
ОС
Эффект:
Изоляция ошибок отдельных приложений в пределах серверной системы
Снижение конкуренции за ресурсы
Масштабируемость серверных систем
Упрощение управления ВС
Повышение безопасности приложений
В современных ВС реализуются 2 типа классов разбиений:
Аппаратная -> разбиение на системные разделы
Программная -> разбиение на уровни ресурсов приложений
Системные разделы включают следующий ресурсы:
ЦП
Память
Ввод/вывод
Собственный экземпляр ОС
Возможности от разделения на системные разделы:
Одновременная работа различных коллективов разработчиков в единой ВС
Одновременная: А) эксплуатация приложений
Б) разработка новой версии
В) миграции на новые версии ОС
Г) тестирование новых версий приложения
3) Повышение надежности серверной системы и приложений
4) Возможность обеспечения сбалансированной нагрузки – разбиение:
Динамическое -> изменение набора ресурсов при внешней загрузке
Статистическое -> изменение набора ресурсов при перезагрузке ОС
Прикладной раздел включает ЦП, ОЗУ, но нет своей ОС!
Разбиение на прикладные разделы – виртуализация в пределах ОС.
Основной эффект –возможность управления качеством обслуживания QOS
Следующий уровень программного разбиения: разбиение на прикладные (набор приложений)/пользовательские (множество обслуживаний пользователей) классы.
QOS для классов прикладных/пользовательских обслуживается:
Введение ограничений на:
Объем виртуальной и физической памяти
Управление пропускной способности, обеспечивающей сетевой трафик
Ограничения на используемый объем дисковой памяти - квотирование