Тип работы:
Предмет:
Язык работы:


АЛГОРИТМ ДЕККЕРА

Работа №67850

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы20
Год сдачи2017
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
127
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ
1.ПРОЦЕССЫ
1.1 Основные понятия о процессах
1.2 Взаимодействие процессов
2. КРИТИЧЕСКИЕ ИНТЕРВАЛЫ
2.1 Понятие критических интервалов
2.2 Взаимное исключение критических интервалов
2.2.1 Примитив взаимоисключения
3. АЛГОРИТМ ДЕККЕРА
4. ЗАДАЧА «О СИНХРОНИЗАЦИИ СТРЕЛКОВ»
4.1 Постановка задачи
4.2 Алгоритм решения задачи
4.3 Программная реализация задачи
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


В определенных операционных системах есть такие совместно работающие процессы, которые сообща могут использовать некоторое общее хранилище данных. У каждого из процессов есть возможность считывать что- либо из общего хранилища данных и записывать туда информацию. Хранилище - это участок в основной памяти в структуре данных ядра или же файл общего доступа. Существуют ситуации, в которых несколько процессов одновременно считывают или записывают данные и в зависимости от того, какой из них был первым, выводится конечный результат. Такие ситуации называют состояниями состязания.
Для того чтобы избежать состязания существуют различные способы, одним из основных является предотвращение проблем в этой и любых других ситуациях, которые будут связаны с конкурентным использованием памяти и файлов, то есть запрет одновременной записи и чтения разделяемых данных более чем одним процессом. Другими словами, требуется взаимное исключение, а именно, в тот момент, когда один процесс использует общие данные, другому процессу это делать будет запрещено. Выбор подходящей операции, которая реализует взаимное исключение, является важным моментом разработки операционной системы.
Проблему исключения состояний состязания можно определить следующим образом. Определенный интервал времени процесс занят внутренними расчетами и другими задачами, которые не приводят к состояниям состязания. В другие интервалы времени процесс обращается к совместно используемым данным или выполняет любое другое действие, которое может привести к состязанию. Фрагмент программы, в которой происходит обращение к совместно используемым данным, называется критической областью или критической секцией. В случае, если получится избежать одновременного нахождения двух и более процессов в критических областях, удастся избежать состязаний. Поставленное требование исключает состязание, но, несмотря на это, его недостаточно для верной совместной работы параллельных процессов и успешного использования общих данных. Для этого должны выполняться следующие условия.
Два процесса не могут одновременно находиться в критических областях.
В программе недопустимы предположения о скорости или количестве процессоров.
У процесса, который находится вне критической области, нет возможности блокировки других процессов.
Недопустима ситуация, в которой процесс постоянно ждет попадания в критическую секцию.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В данной работе были освещены такие темы, как процессы и их взаимодействия, критические секции и принцип их взаимоисключения, а так же рассмотрели алгоритм Деккера.
Алгоритм Деккера - первое известное корректное решение проблемы взаимного исключения в конкурентном программировании. Он позволяет двум потокам выполнения совместно использовать неразделяемый ресурс без возникновения конфликтов, используя только общую память для коммуникации. Одним из преимуществ алгоритма является то, что он не требует специальных Test-and-set инструкций и вследствие этого он легко переносим на разные языки программирования и архитектуры компьютеров. Таким образом, данный алгоритм оптимизирует управление работой многозадачных операционных и многопроцессорных вычислительных систем.
Современные операционные системы предоставляют примитивы синхронизации более общие и гибкие по сравнению с алгоритмом Деккера. Тем не менее, следует отметить, что в случае отсутствия реальной конкуренции между двумя процессами, операции входа в критическую секцию и выхода из неё будут являться очень эффективными при использовании этого алгоритма.
В ходе работы была решена задача "О синхронизации стрелков". В ней было продемонстрировано взаимодействие двух процессов с помощью семафоров, а именно взаимодействие процесса «офицер» и процесса «стрелки».



О. Ключев, П. В. Кустарев, Д. Р. Ковязина, Е. В. Петров. Программное обеспечение встроенных вычислительных систем. Учебное пособие. ИТМО. Санкт-Петербург, 2009. 92-95 с.
А. А. Безбогов, А. В. Яковлев, Ю. Ф. Мартемьянов. Безопасность операционных систем. Учебное пособие. Издательство «Машиностроение-1». Москва, 2007
Э. Таненбаум. Современные операционные системы, 2 издание. Издательство «Питер». Санкт-Петербург, 2002
Ю. В. Кочержинская. Курс лекций по дисциплине «Теория вычислительных процессов», 2014г.
«Средства коммуникации процессов» - [Электронный ресурс]. URL: (дата обращения 09.12.2014)


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ