Rozdíl Mezi Semaforem A Monitorem

Rozdíl Mezi Semaforem A Monitorem
Rozdíl Mezi Semaforem A Monitorem

Video: Rozdíl Mezi Semaforem A Monitorem

Video: Rozdíl Mezi Semaforem A Monitorem
Video: Насколько сильно отличается монитор с частотой 240 Гц? | 240 Гц VS 144 Гц (HANDCAM) 2024, Duben
Anonim

Semaphore vs Monitor

Semafor je datová struktura, která se používá k zajištění toho, aby více procesů nemělo přístup k běžnému prostředku nebo kritické sekci současně, v prostředí paralelního programování. Semafory se používají, aby se zabránilo mrtvým zámkům a rasovým podmínkám. Monitor je konstrukt programovacího jazyka, který se také používá k zabránění přístupu více procesů ke společnému zdroji současně, a proto zaručuje vzájemné vyloučení. Monitory k dosažení tohoto úkolu používají podmíněné proměnné.

Co je semafor?

Semafor je datová struktura, která slouží k vzájemnému vyloučení kritických sekcí. Semafory podporují hlavně dvě operace zvané čekání (historicky známé jako P) a signál (historicky známé jako V). Operace čekání blokuje proces, dokud není otevřen semafor a operace signálu umožňuje vstup jinému procesu (vláknu). Každý semafor je spojen s frontou čekajících procesů. Když je operace čekání volána vláknem, pokud je semafor otevřený, vlákno může pokračovat. Pokud je semafor zavřený, když je operace čekání volána vláknem, vlákno je blokováno a musí čekat ve frontě. Operace signálu otevírá semafor a pokud ve frontě již čeká vlákno, je povoleno pokračovat v tomto procesu a pokud ve frontě čekají žádná vlákna, signál je zapamatován pro další vlákna. Existují dva typy semaforů zvané mutexové semafory a počítající semafory. Mutexové semafory umožňují jediný přístup k prostředku a počítání semaforů umožňuje více vláknům přístup k prostředku (který má k dispozici několik jednotek).

Co je to Monitor?

Monitor je konstrukce programovacího jazyka, která se používá k řízení přístupu ke sdíleným datům. Monitory zapouzdřují sdílené datové struktury, procedury (které fungují na sdílených datových strukturách) a synchronizaci mezi vyvoláním souběžných procedur. Monitor zajišťuje, že jeho data nejsou vystavena nestrukturovaným přístupům, a zaručuje, že běhounky (které přistupují k datům monitoru prostřednictvím svých postupů) interagují legitimním způsobem. Monitor zaručuje vzájemné vyloučení tím, že umožňuje pouze jednomu vláknu provádět jakoukoli proceduru monitorování v daném čase. Pokud se jiné vlákno pokusí vyvolat metodu na monitoru, zatímco vlákno již provádí proceduru na monitoru, je druhá procedura blokována a musí čekat ve frontě. Existují dva typy monitorů s názvem Hoare monitors a Mesa monitors. Liší se hlavně svou sémantikou plánování.

Jaký je rozdíl mezi Semaphore a Monitorem?

I když se semafory i monitory používají k dosažení vzájemného vyloučení v prostředí paralelního programování, liší se v technikách použitých k dosažení tohoto úkolu. V monitorech je kód, který se používá k dosažení vzájemného vyloučení, na jednom místě a je strukturovanější, zatímco kód pro semafory jsou distribuovány jako čekání a volání funkce signálu. Při implementaci semaforů je také velmi snadné udělat chybu, zatímco při implementaci monitorů je velmi malá šance udělat chybu. Monitory dále používají proměnné podmínek, zatímco semafory nikoli.

Doporučená: