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

Автор: Robert Simon
Дата создания: 17 Июнь 2021
Дата обновления: 24 Июнь 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Видео: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Содержание

Определение - Что означает алгоритм Деккерса?

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


Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет алгоритм Деккерса

Алгоритм Деккера позволит использовать ресурс только одному процессу, если два процесса пытаются использовать его одновременно. Изюминкой алгоритма является то, как он решает эту проблему. Он успешно предотвращает конфликт путем принудительного взаимного исключения, что означает, что только один процесс может использовать ресурс одновременно и будет ожидать, если другой процесс использует его. Это достигается с помощью двух «флагов» и «токена». Флаги указывают, хочет ли процесс войти в критическую секцию (CS) или нет; значение 1 означает ИСТИНА, что процесс хочет ввести в CS, а 0 или ЛОЖЬ означает обратное. Маркер, который также может иметь значение 1 или 0, указывает приоритет, когда оба процесса имеют свои флаги, установленные на ИСТИНА.

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