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

Аутор: 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

Садржај

Дефиниција - Шта значи алгоритам Деккерса?

Деккеров алгоритам је први познати алгоритам који решава проблем међусобне искључености у истодобном програмирању. Приписује се Тху. Ј. Деккер, холандски математичар који је створио алгоритам за другу превару. Деккерс алгоритам користи се у редовима реда и омогућава двије различите нити да дијеле исти ресурс за једнократну употребу без сукоба користећи заједничку меморију за комуникацију.


Увод у Мицрософт Азуре и Мицрософт Цлоуд | Кроз овај водич научићете о томе шта се рачуна у облаку и како вам Мицрософт Азуре може помоћи да мигрирате и покренете посао из облака.

Техопедија објашњава Деккерсов алгоритам

Деккеров алгоритам дозволит ће само један процес да користи ресурс ако два процеса покушавају да га користе истовремено. Врхунац алгоритма је како он решава овај проблем. Успева да спречи конфликт наметањем међусобне искључености, што значи да само један процес може истовремено користити ресурс и чекати ако га користи други процес. Ово се постиже употребом две „заставе“ и „токена“. Заставе означавају да ли процес жели да уђе у критични одељак (ЦС) или не; вредност 1 значи ТРУЕ да процес жели ући у ЦС, док 0, или ФАЛСЕ, значи супротно. Токен, који такође може имати вредност 1 или 0, означава приоритет када оба процеса имају своје заставе на ТРУЕ.

Овај алгоритам може успешно наметнути међусобно искључивање, али ће стално тестирати да ли је критични одељак доступан и стога губи значајно процесорско време. То ствара проблем познат као лоцкстеп синхронизација, у којем се свака нит може извршити само у строгој синхронизацији. Такође се не може проширити јер подржава само два процеса за међусобно искључивање.