Algoritmus Suzuki – Kasami - Suzuki–Kasami algorithm - Wikipedia
tento článek potřebuje další citace pro ověření.Září 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
The Algoritmus Suzuki – Kasami[1] je žeton -na základě algoritmus za dosažení vzájemné vyloučení v distribuované systémy. Proces, který drží token, je jediný proces schopný vstoupit do jeho kritická sekce.
Toto je úprava Algoritmus Ricart – Agrawala[2] ve kterém se pro dosažení kritické sekce používá zpráva ŽÁDOST a ODPOVĚĎ. ale v tomto algoritmu zavedli metodu, ve které seniority svěrák a také předáním kritické sekce do jiného uzlu zasláním jedné PRIVILEGE zprávy do jiného uzlu. Takže uzel, který má oprávnění, může použít kritickou sekci, a pokud ji nemá, nemůže. Pokud chce proces vstoupit do své kritické sekce a nemá token, vysílá zprávu požadavku všem ostatním procesům v systému. Proces, který má token, není-li aktuálně v kritické sekci, odešle token do požadujícího procesu. Algoritmus využívá zvyšování čísel požadavků, aby zprávy mohly dorazit mimo pořadí.
Popis algoritmu
Nechat být počet procesů. Každý proces je identifikován celým číslem v .
Datové struktury
Každý proces udržuje jednu datovou strukturu:
- pole (pro číslo požadavku), kde ukládá poslední číslo požadavku přijaté od
Token obsahuje dvě datové struktury:
- pole (pro číslo poslední žádosti), kde ukládá nejnovější číslo požadavku procesu pro který byl token úspěšně udělen
- fronta Q, která ukládá ID procesů čekajících na token
Algoritmus
Vyžádání kritické sekce (CS)
Když proces chce vstoupit do CS, pokud nemá token, pak:
- zvýší jeho pořadové číslo
- odešle zprávu s požadavkem obsahující nové pořadové číslo všem procesům v systému
Uvolnění CS
Když proces opouští CS, to:
- sady tokenu rovna . To naznačuje, že jeho žádost byl proveden
- pro každý proces není ve frontě tokenů , připojuje se na -li . To naznačuje tento proces má vynikající požadavek
- pokud je fronta tokenů není po této aktualizaci prázdný, objeví se ID procesu z a odešle token na
- jinak si token ponechá
Příjem požadavku
Když proces obdrží požadavek od se pořadovým číslem , to:
- sady na (li , zpráva je zastaralá)
- pokud proces má token a není v CS, a pokud (označující nevyřízený požadavek), odešle token ke zpracování
Provádění CS
Proces vstoupí do CS, když získá token.
Výkon
- Buď nebo zprávy pro vyvolání CS (žádné zprávy, pokud proces drží token; jinak žádosti a odpověď)
- Zpoždění synchronizace je nebo ( žádosti a odpověď)
Poznámky k algoritmu
- Přístup do CS má pouze web, který aktuálně drží token
- Všechny procesy spojené s přidělením CS
- Vyžádejte si zprávy odeslané všem uzly
- Není založeno na Lamportovy logické hodiny
- Algoritmus místo toho používá pořadová čísla
- Používá se ke sledování zastaralých požadavků
- Postupují nezávisle na každém místě
Hlavní konstrukční problémy algoritmu:
- Vyprávění zastaralých požadavků od aktuálních
- Určení, který web bude mít token další
Reference
- ^ Ichiro Suzuki, Tadao Kasami, Algoritmus distribuovaného vzájemného vyloučení, ACM Transactions on Computer Systems, svazek 3, vydání 4, listopad 1985 (strany 344 - 349)
- ^ Ricart, Glenn a Ashok K. Agrawala. "Optimální algoritmus pro vzájemné vyloučení v počítačových sítích „Sdělení ACM 24.1 (1981): 9-17.