План Введение Алгоритмы на основе получение разрешений



Download 438,5 Kb.
bet1/4
Sana21.02.2022
Hajmi438,5 Kb.
#37451
TuriЛитература
  1   2   3   4
Bog'liq
Veliev


План


1. Введение
2. Алгоритмы
3. Алгоритмы на основе получение разрешений.
4. Алгоритм Лэмпорта.
5. Заключение.
6. Литература.

Введение

Цель данной работы – изучение алгоритмов на основе получение разрешений.


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

Одним из наиболее простых алгоритмов, предназначенных для выполнения операций с критическими секциями, является алгоритм Петерсона [2]. На псевдокоде он имеет вид: 1: void lock(int i) { 2: int j = 1 – i; 3: want[i] = true; 4: turn = j; 5: while (want[j] && (turn == j)) ; 6: } 1: void unlock(int i) { 5 2: want[i] = false; 3: } Отметим, что в алгоритме используется две процедуры: процедура lock, которая отвечает за вход в критическую секцию, а процедура unlock – за выход из нее. Переменные want[0] и want[1] содержат информацию о том, «хочет» ли соответствующий процесс войти в критическую секцию. Алгоритм Петерсона обладает следующими свойствами: 1. Взаимное исключение: два процесса не могут находиться в критической секции одновременно. 2. Прогресс: если один из процессов пытается войти в критическую секцию, и она не занята другим процессом, то какой-то из процессов ее получит. 3. Отсутствие голодания: если процесс хочет попасть в критическую секцию, он в нее когда-нибудь попадет. Известно обобщение этого алгоритма на случай большего числа потоков. Однако в этом случае алгоритм имеет более сложный вид. Кроме того, в этом алгоритме не выполняется свойство честности [1] – процессорное время может распределяться между потоками неравномерно.




Алгоритмы

Наиболее простой способ организации взаимного исключения в распределенных системах состоит в том, что один процесс выбирается координатором, который единолично предоставляет разрешение на вход в КС. Таким процессом, например, может быть процесс с наибольшим идентификатором. Каждый раз, когда процесс распределенной системы собирается войти в КС, он посылает координатору сообщение REQUEST с соответствующим запросом и ожидает получения разрешения. Поступающие координатору запросы помещаются в очередь согласно порядку их поступления. Если на момент получения запроса ни один из процессов не находится в КС, т.е. поступивший запрос занимает первое место в очереди, координатор немедленно посылает ответ REPLY с разрешением на вход в КС. После получения ответа процесс, запросивший доступ, входит в КС. Эта ситуация проиллюстрирована на рис. 4.1а: процесс Р1 запрашивает вход в КС у координатора Р3 и получает ответ; очередь координатора Р3 изображена прямоугольником.







(а)

(б)




(в)

(г)

Рис. 4.1. Пример работы централизованного алгоритма взаимного исключения.

Централизованный алгоритм предполагает, что основная часть работы выполняется одним процессом или небольшой группой процессов (в сравнении с их общим числом), в то время как остальные процессы играют незначительную роль в достижении общего результата. Обычно эта роль сводится к получению информации от главного процесса или предоставлению ему нужных данных. Поэтому централизованный алгоритм всегда является асимметричным: различные процессы выполняют логически разные функции, хотя, возможно, в чем-то и совпадающие. Наиболее подходящей для централизованных алгоритмов архитектурой вычислительных систем является архитектура клиент-сервер, в которой сервер владеет и распоряжается информационными ресурсами, а клиент имеет возможность воспользоваться ими. Большинство коммерческого программного обеспечения разрабатывается именно по такой архитектуре. Отметим, что с теоретической точки зрения централизованный сервер потенциально является узким местом всей системы как из-за ограничений в собственной производительности, так и из-за ограничений в пропускной способности его линий связи. Кроме того, такой сервер становится единой точкой отказа распределенной системы. На практике перечисленные проблемы чаще всего решаются путем использования реплицированных серверов, разнесенных друг от друга территориально. Однако такую конфигурацию уже нельзя считать полностью централизованной.


В распределенных алгоритмах каждый процесс играет одинаковую роль в достижении общего результата и в разделении общей нагрузки. Поэтому распределенные алгоритмы являются симметричными: все процессы исполняют один и тот же код и выполняют одни и те же логические функции. На самом деле абсолютно симметричные алгоритмы представляются практически идеальной конструкцией и для реализации в реальных системах более предпочтительными являются частично распределенные алгоритмы, обладающие естественной асимметрией в функциях своих узлов. К примеру, если процессы распределенной системы логически организованы в дерево, то его корень и листья обычно выполняют немного разные функции, при этом отличающиеся от функций вершин ветвления.
Предположим теперь, что пока процесс Р1 выполняется в КС, другой процесс P2 запрашивает у координатора разрешение на вход в КС (см. рис. 4.1б; выполняющийся в КС процесс Р1 отмечен серым цветом). Т.к. очередь не пуста, координатор знает, что в КС уже находится процесс Р1, и не дает процессу P2 разрешения на вход. Конкретный способ запрещения доступа зависит от особенностей системы. На рис. 4.1б координатор просто не отвечает, тем самым блокируя процесс P2 в состоянии запроса на вход в КС. Также, координатор может послать ответ, гласящий "доступ запрещен". В любом случае запрос от Р2 помещается в конец очереди координатора. Когда процесс P1 выходит из КС, он отправляет координатору сообщение RELEASE, тем самым предоставляя остальным процессам возможность войти в КС. При получении сообщения RELEASE координатор удаляет запрос процесса Р1 из своей очереди и отправляет разрешающее сообщение процессу, запрос которого окажется первым в его очереди; в нашем примере – процессу Р2. Увидев разрешение, Р2 войдет в КС, как показано на рис. 4.1в.
Легко заметить, что представленный алгоритм гарантирует свойство безопасности: координатор позволяет войти в КС только одному процессу за раз. Кроме того, никакой процесс никогда не ждет разрешения на вход в КС вечно, т.к. запросы обслуживаются координатором согласно порядку их поступления. Поэтому алгоритм также удовлетворяет условию живучести. Однако, строго говоря, такая схема не обеспечивает выполнение одного из аспектов свойства справедливости, согласно которому запросы на вход в КС должны удовлетворяться в порядке их возникновения в системе, а не в порядке их получения координатором. Как следствие, становится возможной ситуация, в которой один процесс сможет несколько раз войти и выйти из КС, в то время как другой процесс ожидает входа в КС, даже при условии того, что запрос от второго процесса произошел раньше всех запросов от первого процесса. Рассмотрим, например, случай, когда процесс P1 отправляет запрос на вход в КС координатору P3 и после этого отправляет сообщение процессу P2. После получения сообщения от P1 процесс P2 отправляет координатору P3 свой запрос на вход в КС. Очевидно, что если запрос от P2 достигнет P3 раньше запроса от P1, то и доступ к КС будет предоставлен P2 вперед P1 (см. рис. 4.1г). Этот пример иллюстрирует тот факт, что порядок поступления запросов к координатору может отличаться от причинно- следственного порядка их возникновения в системе.
Тем не менее, описанный алгоритм прост в реализации и использует для работы с КС всего три сообщения: для входа в КС требуется два сообщения – REQUEST и REPLY, для выхода из КС – одно сообщение RELEASE.

Download 438,5 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish