Semafori ja monitori erinevus OS-is

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 5 Mai 2024
Anonim
MARSEILLE - Episode 4 | Crime Investigation | ORIGINAL SERIES | english subtitles
Videot: MARSEILLE - Episode 4 | Crime Investigation | ORIGINAL SERIES | english subtitles

Sisu


Semafor ja Monitor võimaldavad mõlemal protsessil juurdepääsu ühistele ressurssidele vastastikuse välistamise korral. Mõlemad on protsessi sünkroonimise tööriist. Selle asemel on nad üksteisest väga erinevad. Kus Semafor on täisarv, mida saab peale initsialiseerimise juhtida ainult ootamise () ja signaali () toimimisega. Teisest küljest Ekraan tüüp on abstraktne andmetüüp, mille konstruktsioon võimaldab ühel protsessil korraga aktiveeruda. Selles artiklis käsitleme semafori ja monitori erinevusi allpool toodud võrdlusdiagrammi abil.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusSemafor Ekraan
Põhiline Semaphores on täisarv muutuja S.Monitor on abstraktne andmetüüp.
TegevusSemafori S väärtus näitab süsteemis saadaolevate jagatud ressursside arvuMonitori tüüp sisaldab jagatud muutujaid ja protseduure, mis toimivad jagatud muutujaga.
JuurdepääsKui mõni protsess pääseb juurde jagatud ressurssidele, teostab see S-i ootamisoperatsiooni ja kui jagatud ressursid vabastab, teostab S Signaali () -operatsiooni.Kui mõni protsess soovib juurdepääsu monitori jagatud muutujatele, peab ta sellele juurde pääsema protseduuride kaudu.
Seisundi muutujaSemaforil pole tingimuste muutujaid.Monitoril on seisundimuutujad.


Semafori määratlus

Olles protsessi sünkroonimisriist, Semafor on täisarv muutuja S See täisarv muutuja S lähtestatakse väärtuseks ressursside arv esinevad süsteemis. Semafori S väärtust saab muuta ainult kahe funktsiooni abil oota() ja signaal() peale initsialiseerimise.

Ootuse () ja signaali () toimingud muudavad semafori S väärtust jagamatult. Mis tähendab, et kui protsess muudab semafori väärtust, ei saa ükski teine ​​protsess samaaegselt semafori väärtust muuta. Lisaks eristab operatsioonisüsteem semafori kahes kategoorias Semafooride loendamine ja Binaarne semafoor.

Sisse Semafori loendamine, semafori S väärtus lähtestatakse süsteemis olevate ressursside arvuga. Kui protsess soovib juurdepääsu jagatud ressurssidele, toimib see oota() operatsioon semaforil, mis dekreedid semafori väärtus ühe võrra. Jagatud ressursi vabastamisel teostab see a signaal() operatsioon semaforil, mis juurdekasvu semafori väärtus ühe võrra. Kui semafori arv läheb 0, see tähendab kõik ressursid on hõivatud protsesside poolt. Kui protsess peab ressurssi kasutama, kui semaforide arv on 0, käivitab see oot () ja hangi blokeeritud kuni jagatud ressursse kasutav protsess selle vabastab ja semafori väärtus ületab 0.


Sisse Binaarne semafor, on semafori väärtus vahemikus 0 kuni 1. See sarnaneb mutexi lukustusega, kuid mutex on lukustusmehhanism, samas kui semafor on signaalimismehhanism. Binaarses semaforis, kui protsess soovib ressursile juurde pääseda, teostab see semafori ja dekreedid semafori väärtus vahemikus 1 kuni 0. Kui protsess ressursi vabastab, teostab see a signaal() toiming semaforil ja suurendab selle väärtust 1-ni. Kui semafori väärtus on 0 ja protsess soovib ressursile juurde pääseda, viib ta läbi ootamisoperatsiooni () ja blokeerib end, kuni ressursse kasutav praegune protsess vabastab ressursi.

Monitori määratlus

Ajastamise vigade ületamiseks, mis tekivad protsessi sünkroniseerimisel semafori kasutamisel, on teadlased kasutusele võtnud kõrgetasemelise sünkroniseerimiskonstruktsiooni, st. monitori tüüp. Monitori tüüp on abstraktne andmetüüp mida kasutatakse protsesside sünkroonimiseks.

Kuna tegemist on abstraktse andmetüübi monitoritüübiga, siis see sisaldab jagatud andmemuutujad mida jagavad kõik protsessid ja mõne programmeerija määratletud operatsioonid mis võimaldavad protsesse monitoril vastastikku välistades teostada. Protsess võib pole otsest juurdepääsu monitori jagatud andmete muutuja; protsess peab sellele juurde pääsema protseduuride kaudu kuvaris määratletud, mis võimaldab monitori jagatud muutujatele korraga juurdepääsu vaid ühel protsessil.

Monitori süntaks on järgmine:

monitori monitorinimi {// jagatud muutuja deklareerimise protseduur P1 (..) {} protseduur P2 (...) {} protseduur Pn (...) {} initsialiseerimiskood (...) {}}

Monitor on selline konstruktsioon, et monitoris on korraga aktiivne ainult üks protsess. Kui mõni muu protsess proovib monitoril ühiskasutatavale muutujale juurde pääseda, blokeeritakse see ja see rivistatakse järjekorda, et saada juurdepääs ühistele andmetele, kui protsessile eelnev juurdepääs selle vabastab.

Tingimuslikud muutujad võeti kasutusele täiendava sünkroonimismehhanismi jaoks. Tingimuslik muutuja võimaldab protsessil monitori sees oodata ja võimaldab ooteprotsessil jätkata kohe, kui teine ​​protsess ressursid vabastab.

tinglik muutuja saab käivitada ainult kaks toimingut oota() ja signaal(). Kui kui protsess P kutsub esile ootamise () operatsiooni korral see peatatakse monitoril kuni muu protsessini Q kutsusignaal () operatsioon, st signaali () toiming, millele protsess kutsub, jätkab peatatud protsessi.

  1. Põhiline erinevus semafori ja monitori vahel on see, et semafor on täisarv muutuja S mis näitavad süsteemis saadaolevate ressursside arvu, samas kui ekraan on abstraktne andmetüüp mis võimaldab kriitilises sektsioonis korraga teostada ainult ühte protsessi.
  2. Semafori väärtust saab muuta oota () ja signaal() ainult operatsioon. Teisest küljest on kuvaril ühised muutujad ja protseduurid, mille kaudu protsessid saavad ühiskasutatavaid muutujaid juurde pääseda.
  3. Semaforis, kui protsess soovib juurdepääsu ühistele ressurssidele, seda protsess täidab oota() toimib ja blokeerib ressursid ning vabastab need, mida ta täidab signaal() operatsioon. Monitorides, kui protsess peab juurde pääsema jagatud ressurssidele, peab ta neile juurde pääsema monitori protseduuride kaudu.
  4. Monitori tüübil on seisundimuutujad mida semaforil pole.

Järeldus:

Monitorid on hõlpsasti rakendatavad kui semaforid ja võrreldes semafooridega on monitorides vähe eksimisvõimalusi.