Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.