Алгоритм Деккера
Курсовая работа, 29 Декабря 2011, автор: пользователь скрыл имя
Краткое описание
Алгоритм - точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время.
Процессы - выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ.
Простейшей операционной системе (например, внутри холодильника или магазина для продажи газированной воды) не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства.
Содержание работы
Введение……………………………………………………………………...
Принцип взаимоисключения ……………………………………………….
Примитив взаимоисключения………………………………………………
Взаимодействие и взаимоисключение процессов…………………………
Варианты программного решения проблемы взаимоисключения……….
Правильное решение проблемы взаимоисключения……………………..
Алгоритм Деккера…………………………………………………………...
Доказательство правильности алгоритма Деккера......................................
Заключение…………………………………………………………………..
Список используемой литературы………………………………………...
Содержимое работы - 1 файл
Курсовая работа по дисциплине ОС.docx
— 83.03 Кб (Скачать файл)Алгоритм Деккера гарантирует корректное решение проблемы взаимоисключения для двух потоков. Управляющие переменные ResourceThread1, ResourceThread1 обеспечивают взаимоисключение, переменная ThreadNum исключает возможность бесконечного откладывания. Если оба потока пытаются получить доступ к ресурсу, то поток, номер которого указан в ThreadNum, продолжает проверку возможности доступа к ресурсу (внешний цикл ожидания ресурса). Другой же поток в этом случае снимает свой запрос на ресурс, ожидает своей очереди доступа к ресурсу (внутренний цикл ожидания) и возобновляет свой запрос на ресурс.
Алгоритм Деккера может быть обобщен на случай произвольного количества потоков, однако такое обобщение приводит к заметному усложнению выполняемых действий. Кроме того, программное решение проблемы взаимоисключения потоков приводит к нерациональному использованию процессорного времени ЭВМ (потоку, ожидающему освобождения ресурса, постоянно требуется процессор для проверки возможности про-должения – активное ожидание (busy wait)).
Алгоритм учитывает следующие требования:
- Относительные скорости параллельных процессов могут быть любыми;
- Процессы вне критического участка не могут препятствовать другим процессам входить в критический участок;
- Не должно быть бесконечного откладывания входа в критический участок.
Заключение.
В ходе работы я ознакомилась с критическим разделом для двух процессов.
Проделав несколько
вариантов программного решения
проблемы взаимоисключения, я не получила
нужного результата. Эти попытки
привели меня к решению использовать
алгоритм Деккера. Алгоритм Деккера это
первое известное корректное решение
проблемы взаимного
исключения в конкурентном программировании. Этот алгоритм действительно
решает данную проблему и гарантирует
взаимное исключение.
Список используемой литература
- Назаров С.В. Администрирование локальных сетей Windows NT/2000/.NET
- Назаров С.В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации
- Таненбаум Э. Современные операционные системы
- Стен Реймер, Майк Малкер Active Directory для Windows Server 2003. Справочник Администратора
- Уильям Р. Станек Microsoft Windows XP Professional. Справочник администратора