Rozdiel medzi mutexom a semaforom

Mutex vs Semaphore

Mutex sa používa na zabezpečenie sériového prístupu k časti kódu pre opakovaného zadania, ktorý nemôže byť vykonaný paralelne viac ako jedným vláknom. Mutex zaisťuje, že iba jeden kód má prístup k kontrolovanej sekcii naraz. Na získanie prístupu sú potrebné ďalšie kódy, ktoré čakajú na ukončenie prvého kódu. Môžete to považovať za kľúč od miestnosti. Osoba, ktorá má prístup k tomuto kľúču, je na prvom mieste. Kým sa osoba nevráti späť, do tejto miestnosti nemá prístup nikto iný.

Semaphore umožňuje prístup k zdieľanému zdroju viacerým používateľom súčasne. So zvyšujúcim sa počtom používateľov pristupujúcich k prostriedku sa znižuje počet semaforov. Keď používatelia začnú uvoľňovať prostriedok, počet semaforov začne znova stúpať. Používa sa v aplikáciách, ktoré vyžadujú synchronizáciu. Počet súbežných používateľov je obmedzený na základe semaforového limitu. Semafor možno považovať za skupinu podobných kľúčov k podobným zámkom do jednej miestnosti, ale ich počet je obmedzený. Ľudia, ktorí majú tieto kľúče, môžu zdieľať izbu.

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 spoločným zdrojom, zatiaľ čo semafor stanovuje limit

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

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

spolu.

4. Mutex má koncepciu vlastníka, ak je to možné iba pri postupe, ktorý blokuje mutex

znovu ho otvorte. Žiadny z ostatných procesov tak nemôže urobiť. Ale v prípade semafora, napr

obmedzenia neexistujú.

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

rešpektovanie synchronizácie prístupu k prostriedku.

Zhrnutie:

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

implementované s využitím druhého, ale prakticky sú odlišné.

2. Mutex nie je nič iné ako semafor s hodnotou počtu rovnajúcou sa jednému.

3. Mutex je semafor s ďalšími vlastnosťami, ako je vlastníctvo a inverzia priority

ochrana.

4. Semafor je abstraktný typ údajov, ktorý riadi prístup k spoločnému zdroju

viac procesov v prostredí paralelného programovania.

5. Semaphore ho používa v mnohých operačných systémoch ako primitívne pre synchronizáciu.

6. Mutex aj semafor sú zdroje jadra, ktoré sa používajú na tento účel

synchronizácia.