Razlika između semafora i monitora

Razlika između semafora i monitora
Razlika između semafora i monitora

Video: Razlika između semafora i monitora

Video: Razlika između semafora i monitora
Video: DUHOVNA OPASNOST OD MEDITACIJE - RAZLIKA IZMEĐU MEDITACIJE I MOLITVE / Jelenina online čitaonica 2024, Juli
Anonim

Semaphore vs Monitor

Semaphore je struktura podataka koja se koristi kako bi se osiguralo da više procesa ne pristupa zajedničkom resursu ili kritičnom dijelu u isto vrijeme, u okruženjima paralelnog programiranja. Semafori se koriste za izbjegavanje mrtvih brava i uvjeta utrke. Monitor je konstrukcija programskog jezika koja se također koristi da bi se izbjeglo više procesa koji istovremeno pristupaju zajedničkom resursu, stoga garantuje međusobno isključivanje. Monitori koriste uslovne varijable za postizanje ovog zadatka.

Šta je semafor?

Semafor je struktura podataka koja se koristi za pružanje međusobnog isključivanja kritičnih sekcija. Semafori uglavnom podržavaju dvije operacije koje se zovu čekanje (povijesno poznato kao P) i signal (povijesno poznato kao V). Operacija čekanja blokira proces dok se semafor ne otvori, a operacija signala dopušta drugom procesu (nit) da uđe. Svaki semafor je povezan s redom procesa na čekanju. Kada nit pozove operaciju čekanja, ako je semafor otvoren, nit se može nastaviti. Ako se semafor zatvori kada nit pozove operaciju čekanja, nit je blokirana i mora čekati u redu čekanja. Operacija signala otvara semafor i ako postoji nit koja već čeka u redu, tom procesu je dozvoljeno da nastavi, a ako nema niti koje čekaju u redu, signal se pamti za sljedeće niti. Postoje dvije vrste semafora koji se nazivaju muteks semafori i semafori za brojanje. Mutex semafori dozvoljavaju jedan pristup resursu, a semafori za brojanje dozvoljavaju višestrukim nitima da pristupe resursu (koji ima nekoliko dostupnih jedinica).

Šta je monitor?

Monitor je konstrukcija programskog jezika koja se koristi za kontrolu pristupa zajedničkim podacima. Monitori inkapsuliraju zajedničke strukture podataka, procedure (koje rade na zajedničkim strukturama podataka) i sinhronizaciju između istovremenih poziva procedura. Monitor osigurava da njegovi podaci ne budu suočeni s nestrukturiranim pristupima i jamči da treads (koji pristupaju podacima monitora putem njegovih procedura) stupaju u interakciju na legitiman način. Monitor garantuje međusobno isključivanje dozvoljavajući samo jednoj niti da izvrši bilo koju proceduru nadgledanja u datom trenutku. Ako druga nit pokuša da pozove metodu u monitoru, dok nit već izvršava proceduru u monitoru, tada je druga procedura blokirana i mora da čeka u redu čekanja. Postoje dvije vrste monitora pod nazivom Hoare monitori i Mesa monitori. Uglavnom se razlikuju po semantici rasporeda.

Koja je razlika između semafora i monitora?

Iako se i semafori i monitori koriste za postizanje međusobnog isključivanja u okruženjima paralelnog programiranja, oni se razlikuju u tehnikama koje se koriste za postizanje ovog zadatka. Kod monitora, kod koji se koristi za postizanje međusobnog isključivanja nalazi se na jednom mjestu i više je strukturiran, dok se kod za semafore distribuira kao čekanje i pozivi funkcije signala. Takođe, vrlo je lako pogrešiti prilikom implementacije semafora, dok je vrlo mala šansa da se pogreši prilikom implementacije monitora. Nadalje, monitori koriste varijable uslova, dok semafori ne koriste.

Preporučuje se: