Mutex vs Semaphore
Mutex se koristi za pružanje serializiranog pristupa dijelu koda ponovnog ulaska koji se ne može paralelno izvršiti s više niti. Mutex osigurava da samo jedan kôd može istovremeno pristupiti kontroliranom odjeljku. Kako bi dobili pristup, ostali se kodovi čekaju dok prvi kôd ne izađe. Možete to smatrati ključem neke sobe. Osoba koja ima pristup tom ključu prvo ide prvo. Sve dok se osoba ne vrati natrag, nitko drugi ne može pristupiti toj sobi.
Semaphore istovremeno omogućuje pristup zajedničkom resursu za više korisnika. Kako se povećava broj korisnika koji pristupaju resursu, broj semafora se smanjuje. Jednom kada korisnici počnu puštati resurs, broj semafora počinje ponovno rasti. Koriste ga aplikacije koje zahtijevaju sinkronizaciju. Broj istodobnih korisnika ograničen je na temelju ograničenja semafore. Semafor se može smatrati gomilom sličnih ključeva sličnim bravama u jednoj sobi, ali ti su ključevi ograničeni. Ljudi koji imaju ove ključeve mogu dijeliti sobu.
Razlike između muteksa i semafora:
1. Mutex se koristi za međusobno isključivanje dok semafor nalazi svoju korisnost u oba slučaja
obavijesti i međusobna izuzeća.
2. Mutex pruža serijski pristup zajedničkim resursima, dok semafor stavlja ograničenje na
broj istodobnih pristupa.
3. Muteks djeluje s jednom nitom odjednom dok semafor upravlja s više niti
zajedno.
4. Mutex ima koncept vlasnika kod kojeg se može zaključiti samo postupak koji zaključava mutex
ponovo ga otvoriti. Nijedan drugi postupak ne može to učiniti. Ali u slučaju semafora, takav
ograničenja ne postoje.
5. Mutex je mehanizam za zaključavanje dok je semafor signalni mehanizam sa
s obzirom na usklađivanje pristupa resursu.
Sažetak:
1. Semantički i teoretski su i mutex i semafor isti. Jedno može biti
provode se pomoću drugog, ali se i jedno i drugo razlikuju.
2. Muteks nije ništa drugo do semafor s brojenom vrijednošću jednakom jednom.
3. Mutex je semafor s dodatnim značajkama poput vlasništva i inverzije prioriteta
zaštita.
4. Semafor je apstraktna vrsta podataka koja upravlja pristupom zajedničkom resursu
više procesa u paralelnom programskom okruženju.
5. Semaphore nalazi u mnogim operativnim sustavima kao sinkronizaciju primitivnu.
6. I mutex i semafor su izvori jezgre koji se koriste u svrhu
sinkronizacija.