КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция №18
Лекция №17
Распределенные вычисления Модель распределенных систем/процессов Процессы – последовательные, работающие параллельно, обменивающиеся друг с другом информацией посредством сообщений. Существует 2 ограничения: 1. Время доставки сообщения существенно 2. Необходимо учитывать отказы (корректная работа одного процесса не должна зависеть от отказа других процессов, с которыми он работает) Классификационные признаки: · Тип топологии коммуникаций: Ø Связность § Полносвязный (коммуникационный граф) § Неполносвязный Ø Ориентированность § Ориентированный (по одному “линку” отправляет, по другому принимает) § Неориентированный · Синхронность (наличие реального времени, времени, замеренного реальными часами) Ø Асинхронные (в таких моделях не делается никаких предположений о способах измерения времени) Ø Использующие таймеры (в таких моделях делаются предположения о верхних границах времени доставки сообщений, а таймер измеряет реальное время) Ø Использующие часы (каждый процесс имеет измеритель времени, и показания этих измерителей расходятся не более чем на заданную погрешность. Использование часов позволяет сократить число передаваемых сообщений. Имеется специальный класс алгоритмов, которые позволяют строить систему на базе таймеров и часов) Ø Полностью синхронные модели (в таких моделях вычисления похожи на многопроцессорные системы с использованием циклов) · Отказы Ø Отказы линков § Потеря связности коммуникационного графа § Потеря сообщения Ø Отказы процессов § Византийский отказ (отказ процесса не влияет на несвязанные с ним линии, возможно любое поведение отказавшего процесса. Общий метод борьбы с византийским отказом – использование цифровой подписи)
§ Отказ-пропуск (поврежденный процесс не может посылать некоторые сообщения. Моделирует процесс перезагрузки системы) § Отказ-остановка (отказавший процесс не может послать никакие сообщения. Имитирует крах системы обнаруживаемый или необнаруживаемый) · Буферизация Ø Ограниченная § С ожиданием освобождения буфера § Со сбоем и специальным сообщением при переполнении Ø Неограниченная Ø С произвольным порядком Ø FIFO (очередь. На физическом уровне всегда гарантирована FIFO буферизация. Существуют специальные алгоритмы, которые восстанавливают порядок сообщений)
Другие модели распределенных вычислений: · CSP (модель Хоара, взаимодействующие последовательные процессы) · Рандеву · RPC (удаленный вызов процедур) Рассмотрим следующие модели: 1. Глобальное распределение переменных Ранняя модель параллельных вычислений. Операция чтения/записи состоит из двух сообщений: запроса и ответа. Для реализации такой модели требуется разместить переменную в процессе. Тогда каждая операция чтения/записи потребует посылки двух сообщений (запрос/прием и передача/подтверждение записи). Такая реализация не является отказоустойчивой. Отказоустойчивая реализация требует наличия нескольких копий переменной, а значит и большее количество пересылаемых сообщений.
2. Локальное распределение переменных Для каждой переменной определяется “владение процессом”: только процесс, владеющий переменной, может изменять ее значение. Остальные процессы только читают переменные. Чтение переменной отказавшего процесса предполагает возврат предопределенного значения (признака ошибки).
3. CSP – взаимодействующие последовательные процессы (модель Хоара) Синхронизация мониторами (Java).
Определены 2 специальные команды:!? i: j! Y – в этой модели процесс i выполняет команду вывода значения Y, процесс j выполняет команду j! Y. В свою очередь, процесс j считывает значение, переданное i в переменную X, выполняя команду i? X. Причем обе команды выполняются одновременно. Использовалась в транспьютерах фирмы InMos (MK, соединяемые друг с другом в матрицу). В настоящее время используется для верификации: P ↔ j! v | P – алгебраическая форма записи. Во многих распределенных алгоритмах требуется чтобы процесс мог взаимодействовать с несколькими соседями, а фактически взаимодействовал только с одним. Рассмотрим следующий граф взаимодействий процессов: В
А С В таком графе каждый процесс может взаимодействовать с каждым, однако, фактически выполняется только одно какое-то взаимодействие. А принятие решения какое именно, требует сложного распределенного алгоритма. Данной проблемы можно избежать, если ввести ограничение: процесс, готовый выполнить операцию вывода, не может ожидать других взаимодействий, но по-прежнему процесс может ждать на любом количестве операций ввода. Однако такая реализация не является отказоустойчивой, т.к. процесс, ожидающий операцию вывода с отказавшим процессом, тоже приходит к отказу. Произвольная модель «Рандеву» (в языке Ada). (WaitforMultipleObject, delegateThread).
4) RPC-удаленный вызов процедуры. В модели RPC вызов выполняется в одном процессе, исполнение в другом. DCOM (Microsoft), RMI(Java), CORBA Впервые описаны в 1980г. Основные алгоритмы · Алгоритм с разделяемыми переменными: – Задачи взаимного исключения: § Задача «о критической секции» (1965), Дейкстра § Задача «обедающие философы», Дейкстра Иллюстрирует пользу семафоров (философ не приступает к столу, если оба его соседа едят). § Задача «писатели-читатели» – Задача о кооперации § Задача “Поставщик-Потребитель” § Маркирование графа (сети Петри) – Смешанные задачи
· Алгоритмы достижения соглашения – «Задача о двух генералах» Два генерала должны договориться между собой о времени общей атаки на неприятеля (поодиночке им его не одолеть), для чего должны использовать единственный доступный им способ передачи сообщений – посылать гонцов.
Решения задача не имеет. При наличии коммуникационного отказа, соглашение о времени атаки невозможно (ненадежная связь, линк). – Выбор общего значения На входах всех процессов находятся некоторые числа, по завершении алгоритма на выходе всех неотказавших процессов должно быть одно и то же число. Число – 1/3. – Одновременное действие («о стрелках») – Синхронизация часов – Распределенная транзакция Имеется несколько процессов. Если все процессы согласны завершить транзакцию, то она завершится, иначе, если хотя бы один не согласен, происходит откат.
Дата добавления: 2014-12-07; Просмотров: 321; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |