Ero Semaforin ja Monitorin välillä käyttöjärjestelmässä

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 5 Saattaa 2024
Anonim
Ero Semaforin ja Monitorin välillä käyttöjärjestelmässä - Tekniikka
Ero Semaforin ja Monitorin välillä käyttöjärjestelmässä - Tekniikka

Sisältö


Semafori ja Monitor antavat molemmille prosessien pääsyn yhteisiin resursseihin vastavuoroisessa poissulkemisessa. Molemmat ovat prosessien synkronointityökalu. Sen sijaan ne ovat hyvin erilaisia ​​toisistaan. Missä viestittää on kokonaislukuarvo, jota voidaan käyttää vain odottamalla () ja signaalilla () suorittamalla alustuksen lisäksi. Toisaalta Monitori tyyppi on abstrakti tietotyyppi, jonka rakenteen avulla yksi prosessi voi aktivoitua kerrallaan. Tässä artikkelissa käsittelemme semaforin ja monitorin eroja alla olevan vertailutaulun avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetviestittää Monitori
perustiedot Semaforit on kokonaisluku muuttuja S.Monitori on abstrakti tietotyyppi.
ToimintaSemaforin S arvo osoittaa järjestelmään käytettävissä olevien jaettujen resurssien määränMonitorityyppi sisältää jaetut muuttujat ja jaetut muuttujaa käyttävät menettelytavat.
PääsyKun jokin prosessi käyttää jaettuja resursseja, se suorittaa odotus () -operaation S: llä ja kun se vapauttaa jaetut resurssit, suorittaa signaali () -operaation S: llä.Kun jokin prosessi haluaa käyttää näytön jaettuja muuttujia, sen on käytettävä sitä menettelyjen kautta.
Edellytys muuttujaSemaforilla ei ole tilamuuttujia.Monitorissa on olomuuttujat.


Määritelmä Semafori

Prosessin synkronointityökaluna, viestittää on kokonaisluku muuttuja S. Tämä kokonaisluku muuttuja S alustetaan resurssien lukumäärä läsnä järjestelmässä. Semaforin S arvoa voidaan muuttaa vain kahdella toiminnolla odota() ja signaali() lukuun ottamatta alustamista.

Odotus () ja signaali () -operaatio muuttaa semaforin S arvoa erottamattomasti. Mikä tarkoittaa, että kun prosessi muuttaa semaforin arvoa, mikään muu prosessi ei voi samanaikaisesti muuttaa semaforin arvoa. Lisäksi käyttöjärjestelmä erottaa semaforin kahteen luokkaan Counting semaphores ja Binary semahore.

Sisään Semaforin laskeminen, semaforin S arvo alustetaan järjestelmässä olevien resurssien lukumäärälle. Aina, kun prosessi haluaa käyttää jaettuja resursseja, se suoritetaan odota() toiminta semaforissa, joka pienenee semaforin arvo yhdellä. Kun se vapauttaa jaetun resurssin, se suorittaa a signaali() toiminta semaforissa, joka askelin semaforin arvo yhdellä. Kun semaforimäärä laskee 0, se tarkoittaa kaikki resurssit ovat käytössä prosessien kautta. Jos prosessin on käytettävä resurssia, kun semaforimäärä on 0, se suorittaa wait () ja get tukossa kunnes jaettuja resursseja hyödyntävä prosessi vapauttaa sen ja semaforin arvo on suurempi kuin 0.


Sisään Binaarinen semafori, semaforin arvo vaihtelee välillä 0 - 1. Se on samanlainen kuin mutex-lukko, mutta mutex on lukitusmekanismi, kun taas semafori on signalointimekanismi. Binaarisessa semaforissa, jos prosessi haluaa päästä resurssiin, se suorittaa wait () -operaation semaforissa ja pienenee semaforin arvo välillä 1 - 0. Kun prosessi vapauttaa resurssin, se suorittaa a signaali() -operaatio semaforilla ja kasvattaa sen arvon arvoon 1. Jos semaforin arvo on 0 ja prosessi haluaa päästä resurssiin, se suorittaa odotus () -operaation ja estää itsensä, kunnes nykyinen resursseja käyttävä prosessi vapauttaa resurssin.

Määritelmä Monitor

Ampumavirheiden poistamiseksi, joita tapahtuu käytettäessä semaforia prosessien synkronointiin, tutkijat ovat ottaneet käyttöön korkean tason synkronointirakenteen, ts. näytön tyyppi. Näyttötyyppi on abstrakti tietotyyppi jota käytetään prosessien synkronointiin.

Koska se on abstrakti tietotyyppi, monitorityyppi sisältää jaetut tietomuuttujat jotka on jaettava kaikille prosesseille ja joidenkin ohjelmoijien määrittelemille toiminnot jotka sallivat prosessien suorittamisen keskenään poissulkemalla näytön sisällä. Prosessi voi ei suora pääsy jaettu datamuuttuja näytössä; prosessin on käytettävä sitä menettelyjen kautta Näytössä määritetyt määritelmät, jotka sallivat vain yhden prosessin pääsyn monitorin jaettuihin muuttujiin kerrallaan.

Monitorin syntaksi on seuraava:

monitorin monitorinimi {// jaetun muuttujan ilmoitukset menettely P1 (...) {} menettely P2 (...) {} menettely Pn (..) {} alustuskoodi (..) {}}

Näyttö on konstruktio, kuten vain yksi prosessi on aktiivinen kerrallaan näytön sisällä. Jos jokin muu prosessi yrittää käyttää jaettua muuttujaa näytössä, se estyy ja rivitetään jonossa pääsyä jaettuihin tietoihin, kun prosessin aiemmin käyttäminen vapauttaa sen.

Ehdolliset muuttujat otettiin käyttöön ylimääräistä synkronointimekanismia varten. Ehdollinen muuttuja antaa prosessin odottaa näytön sisällä ja antaa odotusprosessin jatkaa heti, kun toinen prosessi vapauttaa resurssit.

ehdollinen muuttuja voi vedota vain kahteen operaatioon odota() ja signaali(). Missä jos prosessi P kutsuu odottamaan () Toiminta keskeytyy näytössä toiseen prosessiin Q-kutsusignaali () toisin sanoen prosessin kutsuma signaali () -operaatio jatkaa keskeytettyä prosessia.

  1. Perusero semaforin ja näytön välillä on, että viestittää on kokonaisluku muuttuja S jotka osoittavat järjestelmässä käytettävissä olevien resurssien lukumäärän, kun taas monitori on abstrakti tietotyyppi mikä sallii vain yhden prosessin suorittamisen kriittisessä osassa kerrallaan.
  2. Semaforin arvoa voidaan muuttaa odota() ja signaali() vain käyttö. Toisaalta monitorilla on jaetut muuttujat ja vain proseduurit, joiden kautta prosessit voivat käyttää jaettuja muuttujia.
  3. Semaforissa, kun prosessi haluaa käyttää jaettuja resursseja, prosessi suorittaa odota() käyttää ja estää resursseja ja kun se vapauttaa suorittamansa resurssit signaali() operaatio. Monitorissa, kun prosessin on käytettävä jaettuja resursseja, sen on käytettävä niitä monitorin menettelyjen kautta.
  4. Monitorityypillä on tilamuuttujat jolla semaforilla ei ole.

johtopäätös:

Monitorit on helppo toteuttaa kuin semafori, ja monitorissa on vähän virhevirheitä verrattuna semaforiin.