Mutex i semafor
Mutex vs Semaphore
Mutex se koristi za osiguranje serijskog pristupa dijelovima kodova ponovnog ulaska, koji se ne može izvršiti paralelno s više od jedne niti. Mutex osigurava da samo jedan kod može pristupiti kontroliranom odjeljku odjednom. Da bi pristupili, drugi kodovi su spremni pričekati da se izlazi prvi kôd. Možete ga smatrati ključom u sobi. Osoba koja ima pristup tom ključu prvi put ide prvo. Do trenutka kad se osoba vrati, nitko drugi ne može pristupiti toj sobi.
Semaphore istovremeno omogućuje pristup zajedničkom resursu s brojem korisnika. Kako se broj korisnika koji pristupaju resursu povećava, smanjuje se broj semafora. Nakon što korisnici počnu objavljivati resurse, broj semafora počinje ponovno povećavati. Koristi se za aplikacije koje zahtijevaju sinkronizaciju. Broj istovremenih korisnika ograničen je na temelju granice semafora. Semafori se mogu smatrati hrpa sličnih tipki sličnih brave u jednoj sobi, ali ti su ključevi ograničeni brojem. Osobe koje imaju te ključeve mogu dijeliti sobu.
Razlike između mutexa i semafora:
1. Mutex se koristi za uzajamno isključivanje dok semafor pronalazi korisnost u oba slučaja
obavijesti i uzajamna isključenja.
2. Mutex pruža serijski pristup zajedničkim resursima, dok semafor postavlja ograničenje
broj istovremenih pristupa.
3. Mutex radi s jednom niti na vrijeme, dok semafor upravlja više niti
zajedno.
4. Mutex ima pojam vlasnika gdje proces može zaključati samo mutex
ponovo ga otvorite. Niti jedan od drugih procesa ne može to učiniti. Ali u slučaju semafora, takve
ograničenja ne postoje.
5. Muteeks je mehanizam za zaključavanje dok je semafor signalizacijski mehanizam
poštujući usklađivanje pristupa resursu.
Sažetak:
1. Semantički i teorijski, i mutex i semafor su isti. Može biti
provodi se koristeći drugu, ali praktički su oboje različiti.
2. Mutex nije ništa drugo nego semafora s brojem vrijednosti jednakom jednom.
3. Mutex je semafora s dodatnim značajkama kao što su vlasništvo i prioritetna inverzija
zaštita.
4. Semaphor je apstraktna vrsta podataka koja kontrolira pristup zajedničkom resursu
više procesa u paralelnom programskom okruženju.
5. Semaphore pronalazi svoju upotrebu u mnogim operativnim sustavima kao sinkronizacija primitivna.
6. I mutex i semafor su resursi jezgre koji se koriste u svrhu
sinkronizacija.