Rozdiel medzi mutexom a semaforom

Mutex vs Semafor

Mutex sa používa na poskytnutie serializovaného prístupu k časti kódu opakovaného vstupu, ktorú nemožno vykonávať súbežne vo viac ako jednom vlákne. Mutex zaisťuje, že do ovládanej sekcie môže mať súčasne prístup iba jeden kód. Na získanie prístupu musia ostatné kódy počkať, kým prvý kód neskončí. Môžete to považovať za kľúč do miestnosti. Osoba, ktorá má prístup k tomuto kľúču ako prvá, pokračuje ako prvá. Až do doby osoba vráti späť, nikto iný nemôže získať prístup do tejto miestnosti.

Semafor poskytuje prístup k zdieľanému zdroju viacerým používateľom súčasne. Ako sa zvyšuje počet používateľov pristupujúcich k zdroju, počet semaforov sa znižuje. Akonáhle používatelia začnú uvoľňovať zdroj, počet semaforov začne opäť rásť. Používajú ho aplikácie, ktoré vyžadujú synchronizáciu. Počet súbežných používateľov je obmedzený na základe limitu semaforu. Semafor je možné považovať za zväzok podobných kľúčov k podobným zámkom ako v jednej miestnosti, počet týchto kľúčov je však obmedzený. Ľudia, ktorí majú tieto kľúče, môžu zdieľať miestnosť.

Rozdiely medzi mutexom a semaforom:

1. Mutex sa používa na vzájomné vylúčenie, zatiaľ čo semafor nájde svoje využitie v oboch prípadoch

oznámenia a vzájomné vylúčenia.

2. Mutex poskytuje sériový prístup k bežným zdrojom, zatiaľ čo semafor obmedzuje

počet súbežných prístupov.

3. Mutex pracuje s jedným vláknom súčasne, zatiaľ čo semafor spravuje viac vlákien

spolu.

4. Mutex má koncept majiteľa, v ktorom môže proces, ktorý uzamkne mutex, len

znova ho otvor. Žiadny z ostatných procesov to nemôže urobiť. Ale v prípade semaforu, ako napr

obmedzenia neexistujú.

5. Mutex je uzamykací mechanizmus, zatiaľ čo semafor je signalizačný mechanizmus s

vzhľadom na synchronizáciu prístupu k zdroju.

Zhrnutie:

1. Sémanticky a teoreticky sú mutex aj semafor rovnaké. Jeden môže byť

implementované pomocou druhého, ale prakticky oba sú odlišné.

2. Mutex nie je nič iné ako semafor s hodnotou počítania rovnou jednej.

3. Mutex je semafor s ďalšími funkciami, ako je vlastníctvo a inverzia priorít

ochrana.

4. Semafor je abstraktný dátový typ, ktorý riadi prístup k spoločnému zdroju do

viac procesov v prostredí paralelného programovania.

5. Semafor nachádza svoje využitie v mnohých operačných systémoch ako primitív synchronizácie.

6. Mutex aj semafor sú prostriedky jadra, ktoré sa používajú na účely

synchronizácia.

Pozrite si viac o: