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