Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Алгоритмы взаимоисключения Деккера и Петерсона.

ОС разделения времени и многопользовательские ОС | ОС реального времени | Иерархический принцип построения ОС. Простая и расширенная машины | Виртуальные машины | Цели и задачи мультипрограммирования. | Понятие ядра ОС | Понятия процесса и потока | Алгоритмы с применением прерываний процессов и без них. | Понятие ресурса. Оперативно перераспределяемые и оперативно неперераспределяемые ресурсы | Распределение ресурсов и управление ресурсами как функция ОС |


Читайте также:
  1. III. Комплексные умения и алгоритмы к
  2. Алгоритмы наиболее распространенных дел.
  3. Алгоритмы с применением прерываний процессов и без них.
  4. Алгоритмы УНЛиП. Алгоритм Робертса. Нахождение нелицевых плоскостей и ребер.
  5. Взвешенные графы и алгоритмы поиска кратчайшего пути.
  6. Ется некоторые универсальные способы мыследеятельности (понимание, нахождение детьми личностных смыслов, рефлексия и т.п.), а не просто усваиваются не­которые понятия и алгоритмы.

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

Основные условия, которым удовлетворяют оба алгоритма:

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

- не делается никаких предположений об относительных скоро­стях выполнения процессов;

- процессы, находящиеся вне своих критических участков, не мо­гут мешать другим процессам входить в их собственные критические участки;

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

В алгоритме Деккера управляющие переменные ResourceThread1, ResourceThread1 обеспечивают взаимоисключение, переменная ThreadNum исключает возможность бесконечного откладывания. Если оба потока пытаются получить доступ к ресурсу, то поток, номер которого указан в ThreadNum, продолжает проверку возможности доступа к ресурсу. Другой же поток в этом случае снимает свой запрос на ресурс, ожидает своей очереди доступа к ресурсу и возобновляет свой запрос на ресурс. Алгоритм Деккера решает задачу взаимных исключений, но до­статочно сложным путём, корректность которого не так легко дока­зать.

Петерсон предложил простое и элегантное решение той же проблемы. При исполнении пролога критической секции процесс Pi заявляет о своей готовности выполнить критический участок и одновременно предлагает другому процессу приступить к его выполнению. Если оба процесса подошли к прологу практически одновременно, то они оба объявят о своей готовности и предложат выполняться друг другу. При этом одно из предложений всегда последует после другого. Тем самым работу в критическом участке продолжит процесс, которому было сделано последнее предложение.

 


Дата добавления: 2015-07-20; просмотров: 150 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Понятие взаимоисключения нескольких процессов и критические участки| Мониторы ресурсов и реализация взаимоисключения на мониторах

mybiblioteka.su - 2015-2024 год. (0.006 сек.)