Razlika med Mutexom in Semaphore

Mutex proti Semaphore

Mutex se uporablja za zagotavljanje serijskega dostopa do dela kode, ki ga ponovno vstopijo, ki ga ni mogoče vzporedno izvajati z več kot eno nitjo. Mutex zagotavlja, da lahko do nadzorovanega odseka hkrati dostopa samo ena koda. Za dostop do drugih kod je treba počakati, da se prva koda izteče. Lahko si ga zamislite kot ključ sobe. Oseba, ki ima dostop do tega ključa, najprej gre. Dokler se oseba ne vrne nazaj, nihče drug ne more dostopati do te sobe.

Semaphore omogoča dostop do skupnih virov več uporabnikom hkrati. Ko se število uporabnikov, ki dostopajo do vira, povečuje, se število semafor zmanjšuje. Ko uporabniki začnejo sproščati vir, se število semafor začne znova povečevati. Uporabljajo ga aplikacije, ki zahtevajo sinhronizacijo. Število sočasnih uporabnikov je omejeno glede na omejitev semaforja. Semafor lahko predstavljamo kot kup podobnih ključev podobnim ključavnicam v eni sobi, vendar so ti ključi omejeni. Ljudje, ki imajo te ključe, si lahko delijo sobo.

Razlike med muteksom in semaforjem:

1. Mutex se uporablja za medsebojno izključevanje, medtem ko semafor v obeh primerih najde svojo koristnost

obveščanje in medsebojne izključitve.

2. Mutex zagotavlja serijski dostop do skupnih virov, medtem ko semafor omejuje

število hkratnih dostopov.

3. Mutex deluje hkrati z eno nitjo, medtem ko semafor upravlja več niti

skupaj.

4. Mutex ima koncept lastnika, pri katerem lahko samo postopek, ki zaklene mutex

ponovno odprite. Noben drug postopek tega ne more storiti. Toda v primeru semaforja, takega

omejitve ne obstajajo.

5. Muteks je zaklepni mehanizem, medtem ko je semafor signalni mehanizem z

glede sinhronizacije dostopa do vira.

Povzetek:

1. Semantično in teoretično sta mutex in semafor enaka. Eden je lahko

izvedeno z uporabo drugega, vendar sta praktično oba različna.

2. Mutex ni nič drugega kot semafor z vrednostjo števila, ki je enaka ena.

3. Mutex je semafor z dodatnimi funkcijami, kot so lastništvo in prednostna inverzija

zaščita.

4. Semafor je abstraktna vrsta podatkov, ki nadzoruje dostop do skupnega vira s strani

več procesov v vzporednem programskem okolju.

5. Semaphore je v mnogih operacijskih sistemih našel uporabo kot primitivno sinhronizacijo.

6. Tako mutex kot semafor sta sredstva jedra, ki se uporabljajo za namene

sinhronizacija.