Mutex i semafor

Anonim

Mutex vs Semaphore

Mutex je analogan jednom ključu u sobi. Osoba koja drži ključ, koja je analogna niti, jedina je koja može imati pristup sobi. Osoba koja ima pristup stoga mora odreći ključ sljedeće osobe u redu. Stoga, mutex može biti oslobođen samo nitom koji ga stječe.

Mutex se normalno koristi za serializiranje pristupa odjeljku kodnog koda '' nekog koda koji se ne može izvršiti više niti odjednom. U sekciju je dopuštena samo jedna nit. To prisiljava ostale niti u redu da pričekaju. Prije nego što nit dobije pristup, morat će pričekati da nit prije nego što odustane od odjeljka.

Koristeći istu analogiju u mutexu, semafori su broj sličnih tipki koji mogu pristupiti istom broju soba s sličnim bravama. Semaphore ili vrijednost broja semafora ovisit će o broju ljudi (niti) koji ulaze ili napuštaju sobu. Ako ima 5 soba i svi su zauzeti, tada broj semafora je nula. Ako dvoje napuste sobu, onda je broj dva i dva ključa daju se sljedećim dvoje u redu.

S tim se rečeno, semafori mogu biti simultano signalizirani bilo kojim nitom ili procesom i idealni su za aplikacije koje zahtijevaju sinkronizaciju. Ipak, semafori se upotrebljavaju za učinkovito ograničavanje broja istodobnih korisnika zajedničkog izvora na temelju maksimalnog broja semafora.

U osnovi, mutex se može smatrati semaforom koji ima vrijednost jednog.

Smanjenje i povećanje semafora ovise o tome žele li pristupati niti jedan zajednički resurs ili napustiti odjeljak.

Teoretski, mutex i (binarni) semafori su semantički slični. Provedba mutexa može se obaviti pomoću semafora i tako je obrnuto. Međutim, u praktičnom smislu, oni mogu biti malo drugačiji.

Muteeks su namijenjeni samo za uzajamno isključivanje, a binarni semafori namijenjeni su za međusobnu isključenost i obavještavanje o događaju. Iako su vrlo slični u pogledu implementacije i opće semantike, oni se koriste drugačije.

Sažetak:

1. Mutex se obično koristi za serializiranje pristupa zajedničkom resursu, dok je semafora broj istovremenih pristupa.

2. Mutex je poput semafora s brojem jedan. 3. Mutex dopušta samo jednoj niti da ima pristup, dok semafori mogu biti paralelno signalizirani bilo kojom niti ili procesom.

4. Semafori su idealni za sinkronizaciju i često se koriste za obavještavanje događaja i međusobnu isključenost dok se mutex primjenjuje samo za uzajamno isključivanje.