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: Tipovi Monitora LCD LED IPS (OBJAŠNJENO) 2024, Studeni
Anonim

Semafor protiv Monitora

Semaphore je struktura podataka koja se koristi kako bi se osiguralo da više procesa istovremeno ne pristupa zajedničkom resursu ili kritičnom odjeljku, u paralelnim programskim okruženjima. Semafori se koriste za izbjegavanje mrtvih brava i uvjeta utrke. Monitor je konstrukcija programskog jezika koja se također koristi za izbjegavanje istovremenog pristupa višestrukim procesima zajedničkom resursu, stoga jamči međusobno isključivanje. Monitori koriste uvjetne varijable za postizanje ovog zadatka.

Što je semafor?

Semafor je struktura podataka koja se koristi za međusobno izuzeće kritičnih odjeljaka. Semafori uglavnom podržavaju dvije operacije koje se nazivaju čekanje (povijesno poznato kao P) i signal (povijesno poznato kao V). Operacija čekanja blokira postupak dok se semafor ne otvori i operacija signala ne omogući ulazak drugog procesa (niti). Svaki je semafor povezan s redom procesa čekanja. Kad nit poziva operaciju čekanja, ako je semafor otvoren, nit može nastaviti. Ako je semafor zatvoren kada nit poziva operaciju čekanja, nit je blokirana i mora čekati u redu. Operacija signala otvara semafor i ako u redu već čeka nit, taj se postupak može nastaviti, a ako u redu nema niti koja čeka, signal se pamti za sljedeće niti. Postoje dvije vrste semafora koji se nazivaju mutex semafori i koji broje semafore. Mutex semafori omogućuju jedan pristup resursu, a semafori s brojanjem omogućuju više niti da pristupe resursu (koji ima nekoliko dostupnih jedinica).

Što je monitor?

Monitor je konstrukcija programskog jezika koja se koristi za kontrolu pristupa zajedničkim podacima. Monitori enkapsuliraju dijeljene podatkovne strukture, postupke (koji djeluju na zajedničkim podatkovnim strukturama) i sinkronizaciju između istodobnih poziva poziva. Monitor osigurava da njegovi podaci ne budu suočeni s nestrukturiranim pristupima i jamči da gazne slojeve (koji pristupe podacima monitora putem svojih postupaka) komunicira na legitiman način. Monitor jamči uzajamno izuzeće dopuštanjem da samo jedna nit izvršava bilo koji postupak nadzora u određeno vrijeme. Ako druga nit pokušava pozvati metodu na monitoru, dok nit već izvršava proceduru na monitoru, tada je drugi postupak blokiran i mora pričekati u redu. Postoje dvije vrste monitora nazvane Hoare monitori i Mesa monitori. Oni se uglavnom razlikuju u svojoj semantici rasporeda.

Koja je razlika između Semaphore i Monitora?

Iako se i semafori i monitori koriste za postizanje međusobnog isključivanja u paralelnim programskim okruženjima, oni se razlikuju u tehnikama korištenim za postizanje ovog zadatka. Kod monitora kod koji se koristi za postizanje međusobnog izuzeća nalazi se na jednom mjestu i strukturiraniji je, dok se kod za semafore distribuira kao pozivi funkcije čekanja i signala. Također, vrlo je lako pogriješiti prilikom implementacije semafora, dok je vrlo mala šansa za pogrešku prilikom implementacije monitora. Nadalje, monitori koriste varijable stanja, dok semafori ne.

Preporučeno: