Algorytm Dekkersa

Autor: Robert Simon
Data Utworzenia: 17 Czerwiec 2021
Data Aktualizacji: 24 Czerwiec 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Wideo: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Zawartość

Definicja - Co oznacza algorytm Dekkersa?

Algorytm Dekkera jest pierwszym znanym algorytmem, który rozwiązuje problem wzajemnego wykluczenia w programowaniu współbieżnym. Jest przypisany do Th. J. Dekker, holenderski matematyk, który stworzył algorytm dla kolejnego oszustwa. Algorytm Dekkers jest używany w kolejce procesów i pozwala dwóm różnym wątkom na współużytkowanie tego samego zasobu jednorazowego użytku bez konfliktu przy użyciu pamięci współdzielonej do komunikacji.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia Algorytm Dekkersa

Algorytm Dekkera zezwoli tylko jednemu procesowi na użycie zasobu, jeśli dwa procesy próbują go użyć w tym samym czasie. Najważniejszym punktem algorytmu jest to, jak rozwiązuje ten problem. Udaje mu się zapobiec konfliktowi poprzez wymuszenie wzajemnego wykluczenia, co oznacza, że ​​tylko jeden proces może korzystać z zasobu naraz i będzie czekać, czy inny proces go używa. Osiąga się to za pomocą dwóch „flag” i „tokena”. Flagi wskazują, czy proces chce wejść do sekcji krytycznej (CS), czy nie; wartość 1 oznacza PRAWDA, że proces chce wprowadzić CS, podczas gdy 0, lub FAŁSZ, oznacza odwrotnie. Token, który może również mieć wartość 1 lub 0, wskazuje priorytet, gdy oba procesy mają ustawione flagi na PRAWDA.

Algorytm ten może skutecznie wymusić wzajemne wykluczenie, ale będzie stale sprawdzał, czy sekcja krytyczna jest dostępna, a zatem marnuje znaczny czas procesora. Powoduje to problem zwany synchronizacją blokowania, w którym każdy wątek może być wykonywany tylko przy ścisłej synchronizacji. Nie można go również rozszerzać, ponieważ obsługuje on maksymalnie dwa procesy wzajemnego wykluczenia.