Mutexi ja semafori erinevus

Mutex vs semafor

Mutexit kasutatakse serialiseeritud juurdepääsu saamiseks uuesti siseneja koodi osale, mida ei saa paralleelselt teostada rohkem kui ühe lõimega. Mutex tagab, et kontrollitavale sektsioonile pääseb korraga ainult ühele koodile. Juurdepääsuks peavad teised koodid ootama, kuni esimene kood väljub. Võite seda pidada ruumi võtmeks. Kõigepealt läheb sellele võtmele juurdepääsu omav inimene. Kuni ajani, mil inimene tagasi naaseb, ei pääse keegi teine ​​sellesse ruumi.

Semafor võimaldab mitmele kasutajale üheaegselt juurdepääsu ühisele ressursile. Kui ressursile juurde pääsevate kasutajate arv suureneb, väheneb semafooride arv. Kui kasutajad hakkavad ressurssi vabastama, hakkab semaforide arv uuesti tõusma. Seda kasutavad rakendused, mis vajavad sünkroonimist. Samaaegsete kasutajate arv on piiratud semafori limiidi alusel. Semafori võib käsitada hunnikuna sarnaseid võtmeid sarnaste lukkudega ühele toale, kuid nende võtmete arv on piiratud. Inimesed, kellel on need võtmed, saavad tuba jagada.

Erinevused mutexi ja semafori vahel:

1. Mutexi kasutatakse vastastikuseks välistamiseks, samas kui semafor leiab mõlemal juhul oma kasulikkust

teatamine ja vastastikused välistamised.

2. Mutex pakub jadapääsu ühistele ressurssidele, semafor aga piirab seda

samaaegsete juurdepääsude arv.

3. Mutex töötab korraga ühe lõimega, samal ajal kui semafor haldab mitut lõime

koos.

4. Mutexil on omaniku kontseptsioon, kus ainult mutexi lukustamise protsess saab toimuda

avage see uuesti. Ükski teine ​​protsess ei saa seda teha. Kuid semafori puhul selline

piiranguid ei eksisteeri.

5. Mutex on lukustusmehhanism, samas kui semafor on signaalimismehhanism koos

ressursile juurdepääsu sünkroonimise austus.

Kokkuvõte:

1. Semantiliselt ja teoreetiliselt on nii mutex kui ka semafor samad. Üks võib olla

rakendatud kasutades teist, kuid praktiliselt mõlemad on erinevad.

2. Mutex pole midagi muud kui semafor, mille loendusväärtus on võrdne ühega.

3. Mutex on semafoor, millel on lisavõimalused, näiteks omandiline kuuluvus ja prioriteetide ümberpööramine

kaitse.

4. Semafor on abstraktne andmetüüp, mis kontrollib juurdepääsu ühisele ressursile

mitu protsessi paralleelses programmeerimiskeskkonnas.

5. Semafor leiab sünkroniseerimise primitiivina kasutamist paljudes opsüsteemides.

6. Nii mutex kui ka semafor on tuumaressursid, mida kasutatakse selleks

sünkroniseerimine.