Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС 3-4 часть.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
6.45 Mб
Скачать
        1. RPC –вызов удаленных процедур должен быть максимально похож на локальный вызов

            1. Ограничения –

              1. в RPC невозможно обращение из указателей, т.е программы расположены в различных адресных пространствах.

              2. Невозможно использовать глобальные переменные.

              3. Необходимо жесткое мета-описание параметров вызова (тип, форма данных, структура, кол-во элементарных данных)

        2. DSM – основана на технике загрузки/выгрузки единое адресное пространство/распр. разделяемая память. Уровни реализации DSM:

          Выч. Машина№1

          Выч. Машина№1

          Реализация на уровне приложения(3)

          Поддержка

          исполнения приложения

          Поддержка исполнения приложения

          Реализация на уровне ОС(2)

          ОС

          ОС

          Аппаратная реализация(1)

          Аппаратура

          Аппаратура

              1. CC-NUMA, CMP

              2. кластеры приложений

              3. Крупные корпоративные приложения(Lotus, Domino)

            1. Проблемы:

              1. Ложного совместного использования – два процесса обращаются к разным частям на к одной странице. Возникает тем чаще, чем больше разделяемая таблица.

              2. Последовательная непротиворечивость ЛСИ – необходимо использование протокола когерентности с различными моделями состоятельности

МОДЕЛИ СОСТОЯТЕЛЬНОСТИ РАСПРЕДЕЛЕННОЙ ИЕРАРХИЧЕСКОЙ ПАМЯТИ

Причины введения протоколов когерентности состоит в иерархичности памяти ОЗУ, КЭШ, МД.

Параметры реализации разделяемой многими ЦП памяти:

  1. Способ реализации механизмов когерентности: аппаратный, программный, аппаратно-программный

  2. Тип разделяемых объектов данных – слово, строка; страница, сегмент, фрагмент(МД-ОЗУ)

  3. Модель состоятельности определяет допустимые последовательности обращений к памяти:

    1. SR SW

    2. MR SW

    3. MR MW

  4. Политика обеспечения когерентности

    1. Немедленная модификация

    2. Объявление несостоятельности копий

  5. Механизм управления распределением памяти

    1. Местоположение

        1. Централизованный

        2. Распределенный

    2. Динамика

        1. Статическое

        2. Динамическое

Различают следующие модели состоятельности:

  1. Строгая – каждая операция чтения/записи возвращает последнее записанное значение

  2. Последовательная – все ЦП в ВС соблюдают один и тот же порядок чтения/записи. ЦП, выполняющий запись, приостанавливается до тех пор, пока не получит подтверждения об объявлении копий несостоятельными(ВС с распределенной памятью)

  3. Слабая – вводит разграничения между обычным и синхронизированным доступом к объектам, которые разделяются(имеются точки синхронизации) ------точки синхронизации t

  4. Свободная модель(развитие и уточнение слабой). Вводятся аналоги КрУ – интервалы синхронизированного доступа к разделяемым объектам (=начало интервала)=конец интервала

    1. Неторопливо-свободная модель – модификация копий разделяемого объекта откладывается до момента его обработки модификация в момент входа в синхроинтервал ( обработка разделяемого объекта

    2. Нетерпеливо-свободная модель – модификация доставляется в момент выхода из синхроинтервала. (изменение реального объекта)доставка изменений ЦП, разделяющих объект

НЕЯВНАЯ И ЯВНАЯ КОГЕРЕНТНОСТЬ

Неявная реализуется аппаратно, она предназначена для программиста. Используется в 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)

Механизмы обеспечения когерентности для распределяемой по узлам разделяемой памяти

Простейший протокол

При промахе:

  1. Инициируется запрос в резидентный узел. Резидентная память каждого узла для каждой строки имеет список узлов, разделяющих данную строку.

  1. Резидентный узел передает запросившему узлу строку и местоположение в списке узлов, разделяющих эту строку

При записи записывающей ЦП (узел) приостанавливается до исполнения следующей последовательности действий:

- изменения строки передаются в резидентный узел

- измененная строка из узла передается во все узлы, разделяющие строки (по списку)

- после подтверждения от каждого узла, разделяющего строку, о том, что изменения доставлены -> резидентный узел посылает разрешения на продолжение вычислений

Минус: высокие накладные расходы.

Протокол DASH (directory architecture to shared)

Командная строка резидентной памяти содержит список узлов, содержащих строку в своих КЭШах.

Состояния строк: глобальное или локальное

Глобальное состояние строки:

  1. Not cashed (nc). Некэшированное – строки нет в КЭШах других узлов, кроме, возможно, резидентной

  2. Remote shared (rs). Удаленно-разделенная строка – копии строки находятся в КЭШах других узлов

  3. Remote modified (rm). Удаленно-измененная строка – строка изменена в некотором узле операцией записи

Локальное состояние строки:

  1. Not used (nu). Невозможна к использованию

  2. Shared (s). Разделяемая – неизмененная копия строки в других КЭШах

  3. Modified (m). Измененная – строка изменена операцией записи в данном узле

Промах чтения –> при глобальном состоянии nc или rs из РП выбирается строка и посылается запросившему узлу.

При ГС rm – актуальное состояние в удаленном узле. Резидентный узел перенаправляет запрос в удаленный узел. Удаленный узел возвращает резидентному и запросившему узлам состоятельную копию строки -> rs.

При записи в строку в ЛС s, nu происходит запрос в резидентный узел на захват строки в монопольное пользование => приостановка на записи (невозможно начать запись в других узлах) и подтверждение о приостановке.

Все узлы переводят состояние строки в локальное nu. Резидентный узел при rs, rm рассылает запрос на монополизацию строки. При rm состоятельная копия запрашивается у узла, изменившего строку. Резидентный узел при получении подтверждений о приостановке записи посылает запросившему узлу разрешение + состоятельную строку при глобальном RM.

Применение явной когерентности

  1. Дает низкую скорость работы ВС

  2. Слишком дорогая реализация протоколов когерентности

Явная (программная когерентность) реализуется:

  1. Общей надстройкой (в ОС, в приложении) – прозрачно для программиста

  2. Разработчиком приложения – используется средство распараллеливания MPI (message passing interface) [MPP, кластеры]

Механизмы когерентности на основе масштабируемого когерентного интерфейса

SCI: аппаратура ввода/вывода для соединения управления + программная поддержка когерентности. Можно отключать и не использовать.

Каждые 64 - разрядный адрес объектов в памяти. Каждые 16 – разряды именуют узлы. Каждые 48 – адрес объекта в узле.

Информационный обмен основан на транзакциях

  1. Чтение (ЧТ)

  2. Запись (ЗП)

  3. Блокировки действий под разделяющим узлом

  4. Транзакция когерентности разделяемых строк в КЭШе и резидентной памяти (транзакция доставки изменения)

  5. Передача сообщений между узлами

  6. Сигналы прерывания

Транзакции переносят пакеты размером 64 или 256 байт (фиксированного размера и переменного размера 1-168 ( блокировка и сигнал))

Резидентная память для каждой строки имеет список узлов, разделяющих строку.

Узел, желающий выполнить ЗП, должен находится в голове этого списка

Узлы на чтение в хвост очереди

SCI основан на регулярных структурах коммуникационной среды (кольцо, решетка). Каждый узел имеет 3 очереди FIFO: входная, выходная и транзитная

Средства виртуализации: 1) аппаратная 2) ОС

Доменная архитектура многопроцессорных ВС

Взаимодействие распределенных ВС

Цель – превращение слабосвязанных вычислительных систем в единую когерентную систему. Подходы к реализации:

  1. Промежуточное ПО, основанное на документе. Примеры: www документ web-страницы, инструменты HTML, HTTP, браузеры

  2. Промежуточное ПО, основанное на объектах на основе com, ocom, corba

  3. Промежуточное ПО, основанное на координации реализует модель Издатель-подписчик. Издатель публикует информацию, подписчик подписывается на нее.

  4. Промежуточное ПО, основанное на файловой системе.

Распределенная система – большая файловая система. Работа с файлами – 2 модели:

А) Закачивания/скачивания в файлохранилище, из файлохранилища

Б) Удаленного доступа файл-сервер

Проблемы реализации 4-го подхода:

Выбор модели переноса: WRM (a) или RAM (б)

А) 1) Необходимость большого объема локальной памяти

2) Возможны накладные расходы: нужен фрагмент файла, но скачивается весь

3) Проблема непротиворечивости файла при использовании файла несколькими пользователями

Б) 1) Быстродействие обработки определяется пропускной способностью сетевого соединения

2) Проектирование файловой системы состоит в организации иерархии каталогов. Основной вопрос: одинаково ли выглядит иерархия каталогов для всех клиентов.

Чаще всего используется подход, основанный на монтировании удаленного файлового каталога к клиенту-обработчику в некой иерархии. Близкий вопрос: наличие в системе главного каталога, который распознается как корневой.

Именование объектов в иерархическом каталоге. Главная проблема: прозрачность именования. Две формы прозрачности:

  1. Прозрачность местоположения

Файл на сервере S1 S1

  1. Независимость от местаположения – позволяет перемещать файлы с одного сервера на другой. S1 -> S2

Средства виртуализации

Доменная архитектура многопроцессорных ВС:

  1. Основана на концепции разбиения на самостоятельные UMA вычислители (SMP, CC-NUMA, CMP) и серверные платформы

  2. Обеспечивает независимую работу отдельных серверных платформ

Отдельная серверная система включает:

  1. Набор ЦП

  2. Память

  3. Подсистема ввода/вывода

  4. ОС

Эффект:

  1. Изоляция ошибок отдельных приложений в пределах серверной системы

  2. Снижение конкуренции за ресурсы

  3. Масштабируемость серверных систем

  4. Упрощение управления ВС

  5. Повышение безопасности приложений

В современных ВС реализуются 2 типа классов разбиений:

  1. Аппаратная -> разбиение на системные разделы

  2. Программная -> разбиение на уровни ресурсов приложений

Системные разделы включают следующий ресурсы:

  1. ЦП

  2. Память

  3. Ввод/вывод

  4. Собственный экземпляр ОС

Возможности от разделения на системные разделы:

  1. Одновременная работа различных коллективов разработчиков в единой ВС

  2. Одновременная: А) эксплуатация приложений

Б) разработка новой версии

В) миграции на новые версии ОС

Г) тестирование новых версий приложения

3) Повышение надежности серверной системы и приложений

4) Возможность обеспечения сбалансированной нагрузки – разбиение:

Динамическое -> изменение набора ресурсов при внешней загрузке

Статистическое -> изменение набора ресурсов при перезагрузке ОС

Прикладной раздел включает ЦП, ОЗУ, но нет своей ОС!

Разбиение на прикладные разделы – виртуализация в пределах ОС.

Основной эффект –возможность управления качеством обслуживания QOS

Следующий уровень программного разбиения: разбиение на прикладные (набор приложений)/пользовательские (множество обслуживаний пользователей) классы.

QOS для классов прикладных/пользовательских обслуживается:

Введение ограничений на:

  1. Объем виртуальной и физической памяти

  2. Управление пропускной способности, обеспечивающей сетевой трафик

  3. Ограничения на используемый объем дисковой памяти - квотирование