Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 21:24, курсовая работа
Алгоритм - точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время.
Процессы - выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ.
Простейшей операционной системе (например, внутри холодильника или магазина для продажи газированной воды) не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства.
Введение……………………………………………………………………...
Принцип взаимоисключения ……………………………………………….
Примитив взаимоисключения………………………………………………
Взаимодействие и взаимоисключение процессов…………………………
Варианты программного решения проблемы взаимоисключения……….
Правильное решение проблемы взаимоисключения……………………..
Алгоритм Деккера…………………………………………………………...
Доказательство правильности алгоритма Деккера......................................
Заключение…………………………………………………………………..
Список используемой литературы………………………………………...
Алгоритм Деккера гарантирует корректное решение проблемы взаимоисключения для двух потоков. Управляющие переменные ResourceThread1, ResourceThread1 обеспечивают взаимоисключение, переменная ThreadNum исключает возможность бесконечного откладывания. Если оба потока пытаются получить доступ к ресурсу, то поток, номер которого указан в ThreadNum, продолжает проверку возможности доступа к ресурсу (внешний цикл ожидания ресурса). Другой же поток в этом случае снимает свой запрос на ресурс, ожидает своей очереди доступа к ресурсу (внутренний цикл ожидания) и возобновляет свой запрос на ресурс.
Алгоритм Деккера может быть обобщен на случай произвольного количества потоков, однако такое обобщение приводит к заметному усложнению выполняемых действий. Кроме того, программное решение проблемы взаимоисключения потоков приводит к нерациональному использованию процессорного времени ЭВМ (потоку, ожидающему освобождения ресурса, постоянно требуется процессор для проверки возможности про-должения – активное ожидание (busy wait)).
Алгоритм учитывает следующие требования:
Заключение.
В ходе работы я ознакомилась с критическим разделом для двух процессов.
Проделав несколько
вариантов программного решения
проблемы взаимоисключения, я не получила
нужного результата. Эти попытки
привели меня к решению использовать
алгоритм Деккера. Алгоритм Деккера это
первое известное корректное решение
проблемы взаимного
исключения в конкурентном программировании. Этот алгоритм действительно
решает данную проблему и гарантирует
взаимное исключение.
Список используемой литература