Starpība starp Mutex un Semaforu

Mutex vs Semaphore

Mutex tiek izmantoti, lai nodrošinātu serializētu piekļuvi atkārtotas piekļuves koda daļai, kuru nevar izpildīt paralēli vairāk nekā vienam pavedienam. Mutex nodrošina, ka kontrolētajai sekcijai vienlaikus var piekļūt tikai viens kods. Lai piekļūtu, citi kodi tiek gaidīti, līdz pirmais kods iziet. Jūs to varat uzskatīt par istabas atslēgu. Vispirms dodas persona, kurai ir pieeja šai atslēgai. Līdz brīdim, kad persona atgriežas, neviens cits nevar piekļūt šai telpai.

Semafors piekļuvi koplietotam resursam nodrošina vienlaikus vairākiem lietotājiem. Palielinoties lietotāju skaitam, kas piekļūst resursam, semaforu skaits samazinās. Tiklīdz lietotāji sāk atbrīvot resursu, semaforu skaits atkal palielinās. To lieto programmas, kurām nepieciešama sinhronizācija. Vienlaicīgu lietotāju skaits ir ierobežots, pamatojoties uz semaforu limitu. Par semaforu var domāt kā līdzīgu atslēgu kopumu līdzīgām slēdzenēm vienā telpā, taču šo atslēgu skaits ir ierobežots. Cilvēki, kuriem ir šīs atslēgas, var dalīties telpā.

Atšķirības starp muteksu un semaforu:

1. Mutex izmanto savstarpējai izslēgšanai, turpretī semafors to izmanto abos gadījumos

paziņošana un savstarpējas izslēgšanas.

2. Mutex nodrošina sērijveida piekļuvi kopīgiem resursiem, turpretī semafors ierobežo

vienlaicīgu piekļuvju skaits.

3. Mutex darbojas ar vienu pavedienu vienlaikus, kamēr semafors pārvalda vairākus pavedienus

kopā.

4. Mutex ir īpašnieka jēdziens, kurā process, kas bloķē mutex, var tikai

atkārtoti to atvērt. Neviens no citiem procesiem to nevar izdarīt. Bet semafora gadījumā tāds

ierobežojumi nepastāv.

5. Mutex ir bloķēšanas mehānisms, savukārt semafors ir signālmehānisms ar

attiecībā uz piekļuves sinhronizēšanu resursā.

Kopsavilkums:

1. Semantiski un teorētiski gan mutex, gan semafors ir vienādi. Var būt

īstenots, izmantojot otru, taču praktiski abi ir atšķirīgi.

2. Mutex ir nekas cits kā semafors, kura skaitīšanas vērtība ir vienāda ar vienu.

3. Mutex ir semafors ar tādām papildu funkcijām kā īpašumtiesības un prioritāra inversija

aizsardzība.

4. Semafors ir abstrakts datu tips, kas kontrolē piekļuvi kopējam resursam

vairāki procesi paralēlās programmēšanas vidē.

5. Semafors daudzās operētājsistēmās tiek izmantots kā primārā sinhronizācija.

6. Gan mutex, gan semafors ir kodola resursi, kas tiek izmantoti

sinhronizācija.