Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы к зачету по ОВП.doc
Скачиваний:
18
Добавлен:
02.05.2014
Размер:
105.47 Кб
Скачать

15. Распределенные глобальные состояния.

В распределённых системах ОС или процесс не могут получить информацию о всех текущих процессах. Процесс лишь может знать о состоянии др. процессов (из полученных сообщений) данной локальной системы, причём данные могут оказаться устаревшими на момент получения.

Вводим определения:

1.Канал – если два процесса обмениваются сообщениями, то между ними устанавливается канал (при обмене сообщениями 2-х процессов, считаем однонаправленным)

2.Состояние - последовательность сообщений, отправленных или принятых по всем его каналам.

3.Снимок – фиксирует состояние процесса.

4.Распределённый снимок – множество снимков каждого процесса.

Алгоритм распределения снимка

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

Инициатором работы алгоритма выступает определенный процесс, который записывает свое состояние и отправляет маркер по всем своим исходным каналам. После этого некоторый процесс P, получивший маркер от процесса Q, выполняет следующие действия: записывает свое состояние Sp; делает запись о том, что входной канал из Q в P является свободным; рассылает маркер всем соседним процессам, пользуясь для этого своими выходными каналами.

Если через какое-то время процесс P получит маркер от другого процесса R, то он запишет свое состояние от момента записи своего предыдущего состояния Sp до момента получения маркера от процесса R.

Алгоритм прекращается тогда, когда процесс получит маркеры по всем своим входным каналам.

Алгоритм используется для адаптации любого централизованного алгоритма к условиям распределенной среды.

16. Распределенные взаимоисключения.

a. Концепция распределенных вычислений. Механизм взаимоисключений м/б централизованным, либо распределенным. В централизованном один из узлов настраивается как управляющий. Если процессу необходим доступ к критическим ресурсам, то он генерирует запрос и отправляет его своим локальным процессам. Локальный управляющий процесс передает этот процесс централизованному узлу, который возвращает ответ, когда этот ресурс становится доступным. Когда процесс заканчивает работу с выделенным ему ресурсом, он отправляет сообщение управляющему узлу.

Недостаток: при отказе управляющего узла механизм разлаживается; необходим обмен сообщениями (следовательно, при недостаточной мощности управляющего узла это будет тормозить работу всей системы).

Свойства полностью распределенного алгоритма:

- каждый узел обладает одинаковым количеством информации;

- каждый узел обладает лишь частичными сведениями о системе и может принимать решения, основываясь на этих сведениях;

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

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

- в системе нет общих часов по которым можно координировать события.

b. Упорядочение событий в распределенной системе. Нам хотелось бы иметь возможность определить какое из событий произошло раньше: событие A в системе I или событие B в системе J. Данная формулировка не является точной по 2м причинам: между самим событием и его наблюдением в др. системах может возникнуть задержка и из-за отсутствия синхронизации возникает рассогласованность в локализации часов, установленная в разных системах.

Эти проблемы решаются с использованием метода временных меток. Он упорядочивает события в распределенных системах, не используя физические часы. Продолжение стр 37

c. Подход с передачей маркера. Маркер – объект, который в каждый момент времени может содержаться только в одном процессе. Этот процесс может войти в критический раздел без дополнительного разрешения. Покидая критический раздел, процесс передает маркер другому процессу.

В алгоритме 2 структуры данных:

- маркер (передается от одного процесса к другому) является массивом, в каждом элементе которого записана временная метка, соответствующая времени, когда маркер побывал в процессе Pk.

- массив запросов, в j-м элементе которого записана временная метка, соответствующая моменту получения запроса от процесса Pj.

Сначала маркер присваивается одному из процессов. Если процесс владеет маркером, он может использовать свой критический раздел.

В противном случае процесс рассылает всем другим процессам запрос с временной меткой и ждет пока другой процесс не пришлет ему маркер. Процесс Pj просматривает массив запросов в порядке: j+1, j+2,…,1,2,…,j-1 пока не найдет элемент k, в котором временная метка последнего запроса больше, чем k-e значение маркера.