Алгоритм Деккера

Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 21:24, курсовая работа

Краткое описание

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

Содержание работы

Введение……………………………………………………………………...
Принцип взаимоисключения ……………………………………………….
Примитив взаимоисключения………………………………………………
Взаимодействие и взаимоисключение процессов…………………………
Варианты программного решения проблемы взаимоисключения……….
Правильное решение проблемы взаимоисключения……………………..
Алгоритм Деккера…………………………………………………………...
Доказательство правильности алгоритма Деккера......................................
Заключение…………………………………………………………………..
Список используемой литературы………………………………………...

Содержимое работы - 1 файл

Курсовая работа по дисциплине ОС.docx

— 83.03 Кб (Скачать файл)

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

Алгоритм Деккера может быть обобщен на случай произвольного количества потоков, однако такое обобщение приводит к заметному усложнению выполняемых действий. Кроме того, программное решение проблемы взаимоисключения  потоков приводит к нерациональному использованию процессорного времени ЭВМ (потоку,  ожидающему  освобождения ресурса,  постоянно  требуется  процессор для  проверки возможности про-должения – активное ожидание (busy wait)).

Алгоритм учитывает  следующие требования:

    • Относительные скорости параллельных процессов могут быть любыми;
    • Процессы вне критического участка не могут препятствовать другим процессам входить в критический участок;
    • Не должно быть бесконечного откладывания входа в критический участок.
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение.

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

Проделав несколько  вариантов программного решения  проблемы взаимоисключения, я не получила нужного результата. Эти попытки  привели меня к решению использовать алгоритм Деккера. Алгоритм Деккера это первое известное корректное решение проблемы  взаимного исключения в конкурентном программировании. Этот алгоритм действительно решает данную проблему и гарантирует взаимное исключение. 
 
 
 
 
 
 
 
 
 
 
 
 
 

Список  используемой литература

    1. Назаров С.В. Администрирование локальных сетей Windows NT/2000/.NET
    2. Назаров С.В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации
    3. Таненбаум Э. Современные операционные системы
    4. Стен Реймер, Майк Малкер   Active Directory для Windows Server 2003. Справочник Администратора
    5. Уильям Р. Станек  Microsoft Windows XP Professional. Справочник администратора

Информация о работе Алгоритм Деккера