Razlika između semafora i monitora u OS-u

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 5 Svibanj 2024
Anonim
Ukrajinska Istina - Ono Što Ne Žele Da Znate !  Pravi Razlog Sukoba
Video: Ukrajinska Istina - Ono Što Ne Žele Da Znate ! Pravi Razlog Sukoba

Sadržaj


I Semaphore i Monitor omogućuju postupcima pristup zajedničkim izvorima u međusobnoj isključenosti. Oboje su alat za sinkronizaciju procesa. Umjesto toga, oni se međusobno jako razlikuju. Gdje Semafor je cjelobrojna varijabla koja se može pokretati samo operacijom čekanje () i signal () osim inicijalizacije. S druge strane Monitor type je apstraktni tip podataka čija konstrukcija omogućuje da se jedan proces može aktivirati odjednom. U ovom ćemo članku raspravljati o razlikama između semafora i monitora uz pomoć usporedne tablice koja je prikazana u nastavku.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbuSemafor Monitor
Osnovni, temeljni Semafore su cjelobrojna varijabla S.Monitor je apstraktna vrsta podataka.
RadnjaVrijednost Semaphore S označava broj zajedničkih resursa koji postoje u sustavuVrsta monitora sadrži zajedničke varijable i skup postupaka koji djeluju na zajedničkoj varijabli.
PristupKad bilo koji proces pristupi zajedničkim resursima, on izvodi operaciju wait () na S i kad ispušta zajedničke resurse, on izvršava signal () operaciju na S.Kad bilo koji postupak želi pristupiti zajedničkim varijablama u monitoru, mora mu pristupiti kroz postupke.
Varijabla stanjaSemafor nema varijable stanja.Monitor ima varijable stanja.


Definicija Semafore

Kao alat za sinkronizaciju procesa, Semafor je cijela varijabla S. Ova cijela varijabla S inicijalizira se u broj resursa prisutni u sustavu. Vrijednost semafora S može se mijenjati samo pomoću dvije funkcije čekati() i signal() osim inicijalizacije.

Operacija čekanja () i signala () nerazdvojivo mijenja vrijednost semafora S. Što znači kada proces mijenja vrijednost semafora, nijedan drugi proces ne može istovremeno mijenjati vrijednost semafora. Nadalje, operativni sustav razlikuje semafor u dvije kategorije Brojanje semafora i Binarni semafor.

U Brojanje Semafore, vrijednost semafora S inicijalizira se na broj resursa prisutnih u sustavu. Kad god proces želi pristupiti dijeljenim resursima, on se izvodi čekati() operacija na semaforu koji umanjenje broja doza vrijednost semafora po jedan. Kada pusti zajednički resurs, izvodi a signal() operacija na semaforu koji koracima vrijednost semafora po jedan. Kad se semafor prebrodi 0, to znači svi resursi su zauzeti po procesima. Ako proces treba koristiti resurs kada je broj semafora 0, on izvršava wait () i get blokiran dok se proces koji koristi zajedničke resurse ne oslobodi i vrijednost semafora ne postane veća od 0.


U Binarni semafor, vrijednost semafora kreće se između 0 i 1. To je slično zaključavanju muteksa, ali mutex je mehanizam za zaključavanje, dok je semafor signalni mehanizam. U binarnom semaforu, ako proces želi pristupiti resursu, on obavlja operaciju wait () na semaforu i umanjenje broja doza vrijednost semafora od 1 do 0. Kada proces oslobodi resurs, izvodi a signal() rad na semaforu i povećava njegovu vrijednost na 1. Ako je vrijednost semafore jednaka 0, a proces želi pristupiti resursu, on obavlja operaciju wait () i blokira se dok trenutni proces koji koristi resurse ne oslobodi resurs.

Definicija monitora

Da bi se prevladale vremenske pogreške koje se javljaju tijekom korištenja semafora za sinkronizaciju procesa, istraživači su uveli konstrukt sinkronizacije na visokoj razini, tj. vrsta monitora, Vrsta monitora je apstraktni tip podataka koji se koristi za sinkronizaciju procesa.

Budući da je apstraktni tip monitora za vrstu podataka sadrži dijeljene varijable podataka koje treba dijeliti u svim procesima i definirano nekim programerom operacije koji omogućuju da se procesi izvršavaju u međusobnoj isključenosti unutar monitora. Proces može a ne izravno pristupiti zajednička varijabla podataka u monitoru; postupak mu mora pristupiti kroz postupke definirani u monitoru koji omogućuju samo jednom procesu pristup zajedničkim varijablama u monitoru.

Sintaksa monitora je sljedeća:

monitor monitor_name {// postupak deklaracije varijable varijable P1 (.) {} postupak P2 (..) {} postupak Pn (.) {} inicijalizacijski kôd (..) {}}

Monitor je konstrukcija kao što je istovremeno, samo jedan proces aktivan unutar monitora. Ako drugi proces pokušava pristupiti zajedničkoj varijabli u monitoru, ona se blokira i postroji se u redu da bi se dobio pristup dijeljenim podacima kada je prethodno pristupio procesu.

Uvjetne varijable uvedene su za dodatni mehanizam sinkronizacije. Uvjetna varijabla omogućava tijeku čekanja unutar monitora i omogućava da se postupak čekanja nastavi odmah kad drugi proces oslobodi resurse.

uvjetna varijabla mogu pozvati samo dvije operacije čekati() i signal(). Gdje ako proces P poziva na čekanje () rad se zaustavlja u monitoru do drugog procesa Q pozvati signal () operacija, tj. rad signala (), na koji poziva proces, nastavlja obustavljeni proces.

  1. Osnovna razlika između semafora i monitora je ta semafor je cijela varijabla S koji pokazuju broj resursa koji su dostupni u sustavu dok monitor je apstraktna vrsta podataka što omogućava da se u kritičnom presjeku istovremeno izvrši samo jedan postupak.
  2. Vrijednost semafora može se mijenjati za čekati() i signal() samo rad. S druge strane, monitor ima zajedničke varijable i postupke samo kroz koje procesi mogu pristupiti zajedničkim varijablama.
  3. U programu Semaphore kada proces želi pristupiti zajedničkim resursima koje proces izvodi čekati() upravljanje i blokiranje resursa i kad se oslobode resursa koje obavlja signal() rad. U monitorima kada proces treba pristupiti zajedničkim resursima, mora im pristupiti kroz postupke u monitoru.
  4. Vrsta monitora ima varijable stanja kojeg semafor nema.

Zaključak:

Monitore je jednostavnije implementirati nego semafor, a mala je vjerojatnost da će se dogoditi pogreška u nadzoru u odnosu na semafore.