Ero Semaforin Ja Näytön Välillä

Ero Semaforin Ja Näytön Välillä
Ero Semaforin Ja Näytön Välillä

Video: Ero Semaforin Ja Näytön Välillä

Video: Ero Semaforin Ja Näytön Välillä
Video: Näyttö ammatillisessa koulutuksessa 2024, Saattaa
Anonim

Semafori vs. näyttö

Semafori on tietorakenne, jota käytetään varmistamaan, että useat prosessit eivät pääse yhteiseen resurssiin tai kriittiseen osaan samanaikaisesti rinnakkaisissa ohjelmointiympäristöissä. Semaforeja käytetään kuolleiden lukkojen ja kilpailuolosuhteiden välttämiseen. Monitor on ohjelmointikielirakenne, jota käytetään myös välttämään useita prosesseja pääsemästä yhteiseen resurssiin samanaikaisesti, mikä takaa keskinäisen poissulkemisen. Monitorit käyttävät ehdollisia muuttujia tämän tehtävän saavuttamiseksi.

Mikä on semafori?

Semafori on tietorakenne, jota käytetään keskinäisen poissulkemisen tarjoamiseksi kriittisille osioille. Semaforit tukevat pääasiassa kahta operaatiota, joita kutsutaan odotukseksi (historiallisesti nimellä P) ja signaaliksi (historiallisesti tunnetaan nimellä V). Odotustoiminto estää prosessin, kunnes semafori on auki ja signaalitoiminto antaa toisen prosessin (ketjun) päästä sisään. Jokainen semafori liittyy odotusprosessien jonoon. Kun odotusoperaatio kutsutaan ketjulla, jos semafori on auki, ketju voi jatkua. Jos semafori suljetaan, kun lanka kutsuu odotusoperaation, lanka estetään ja sen on odotettava jonossa. Signaalitoiminto avaa semaforin ja jos jonossa jo odottaa ketju, prosessin annetaan edetä ja jos jonossa ei ole odottavia ketjuja, signaali muistetaan seuraaville säikeille. On olemassa kahden tyyppisiä semaforeja, joita kutsutaan mutex-semaforeiksi ja laskeviksi semaforeiksi. Mutex-semaforit sallivat yhden pääsyn resurssiin ja laskemisen semaforit mahdollistavat useiden säikeiden pääsyn resurssiin (jossa on useita yksiköitä).

Mikä on näyttö?

Näyttö on ohjelmointikielirakenne, jota käytetään jaettujen tietojen käytön hallintaan. Monitorit kapseloivat jaetut tietorakenteet, menettelyt (jotka toimivat jaetuissa tietorakenteissa) ja synkronoinnin samanaikaisten menettelytapojen välillä. Näyttö varmistaa, että sen tietoihin ei liity strukturoimattomia pääsyjä, ja takaa, että kulutuspinnat (jotka käyttävät monitorin tietoja menettelyjen kautta) ovat vuorovaikutuksessa laillisella tavalla. Näyttö takaa molemminpuolisen poissulkemisen sallimalla vain yhden langan suorittaa minkä tahansa monitorimenettelyn tiettynä ajankohtana. Jos toinen ketju yrittää kutsua menetelmää näytössä, kun säie jo suorittaa prosessia monitorissa, toinen toimenpide estetään ja sen on odotettava jonossa. On olemassa kahden tyyppisiä näyttöjä nimeltä Hoare-näytöt ja Mesa-näytöt. Ne eroavat lähinnä aikataulutussematiikassaan.

Mitä eroa on semaforilla ja näytöllä?

Vaikka sekä semaforeja että näyttöjä käytetään keskinäisen poissulkemisen aikaansaamiseen rinnakkaisissa ohjelmointiympäristöissä, ne eroavat toisistaan tekniikoissa, joita käytetään tämän tehtävän saavuttamiseen. Näytöissä koodi, jota käytetään keskinäisen poissulkemisen aikaansaamiseen, on yhdessä paikassa ja on jäsennelty, kun taas semaforien koodi jaetaan odotus- ja signaalitoimintojen kutsuna. Lisäksi semaforien toteuttamisessa on erittäin helppoa tehdä virheitä, kun taas monitorien toteuttamisessa on hyvin vähän mahdollisuuksia tehdä virheitä. Lisäksi monitorit käyttävät ehtomuuttujia, kun taas semaforit eivät.

Suositeltava: