Verskil tussen Semafoor en Mutex

Verskil tussen Semafoor en Mutex
Verskil tussen Semafoor en Mutex

Video: Verskil tussen Semafoor en Mutex

Video: Verskil tussen Semafoor en Mutex
Video: CLT Luiperd Les – Luiperd vs Jagluiperd 2024, Julie
Anonim

Semaphore vs Mutex

Semaphore is 'n datastruktuur wat gebruik word om seker te maak dat veelvuldige prosesse nie op dieselfde tyd toegang tot 'n gemeenskaplike hulpbron of 'n kritieke afdeling in parallelle programmeringsomgewings verkry nie. Semafore word gebruik om dooie slotte en wedrentoestande te vermy. Mutex (Mutual Exclusion Object) word ook gebruik om toegang tot 'n gemeenskaplike hulpbron op dieselfde tyd deur verskeie gelyktydige prosesse te vermy.

Wat is 'n semafoor?

Semaphore is 'n datastruktuur wat gebruik word om wedersydse uitsluiting aan kritieke afdelings te verskaf. Semafore ondersteun hoofsaaklik twee bewerkings genaamd wag (histories bekend as P) en sein (histories bekend as V). Die wag-operasie blokkeer 'n proses totdat die semafoor oop is en die seinbewerking laat 'n ander proses (draad) toe om in te gaan. Elke semafoor word geassosieer met 'n tou wagprosesse. Wanneer die wag-operasie deur 'n draad geroep word, as die semafoor oop is, kan die draad voortgaan. As die semafoor gesluit word wanneer die wag-operasie deur 'n draad geroep word, word die draad geblokkeer en moet dit in die tou wag. Die seinoperasie maak 'n semafoor oop en as daar 'n draad is wat reeds in die tou wag, word daardie proses toegelaat om voort te gaan en as daar geen drade in die tou wag nie, word die sein vir die volgende drade onthou. Daar is twee tipes semafore genoem mutex semafore en tel semafore. Mutex semafore laat 'n enkele toegang tot 'n hulpbron toe en tel semafore laat verskeie drade toe om toegang tot 'n hulpbron te verkry (wat verskeie eenhede beskikbaar het).

Wat is 'n Mutex?

Wanneer 'n rekenaartoepassing begin word, sal dit 'n mutex skep en dit aan 'n hulpbron heg. Wanneer die hulpbron deur 'n draad gebruik word, is dit gesluit en ander drade kan dit nie gebruik nie. As 'n ander draad dieselfde hulpbron wil gebruik, sal dit 'n versoek moet rig. Dan sal daardie draad in 'n tou geplaas word totdat die eerste draad klaar is met die hulpbron. Wanneer die eerste draad klaar is met die hulpbron, sal slot verwyder word en die draad wat in die tou wag kan toegang tot die hulpbron kry. As daar verskeie drade in die tou wag, kry hulle toegang op 'n roterende basis. Prakties, wanneer die mutex die toegang tot 'n hulpbron tussen verskeie drade afwissel, sal dit sigbaar wees aangesien verskeie drade 'n hulpbron op dieselfde tyd verbruik. Maar intern verkry slegs 'n enkele draad toegang tot die hulpbron op 'n gegewe tydstip.

Wat is die verskil tussen Semafoor en Mutex?

Selfs al word beide die semafore en mutex-voorwerpe gebruik om wedersydse uitsluiting in parallelle programmeringsomgewings te bewerkstellig, het hulle 'n paar verskille.'n Mutex-voorwerp laat slegs 'n enkele draad toe om 'n hulpbron of 'n kritieke afdeling te verbruik, terwyl semafore 'n beperkte aantal gelyktydige toegang tot 'n hulpbron toelaat (onder 'n maksimum toegelate aantal). Met mutex-voorwerpe moet ander drade wat toegang tot die hulpbron wil verkry in 'n tou wag totdat die huidige draad klaar is met die hulpbron gebruik.

Aanbeveel: