Razlika između semafora i muteksa

Razlika između semafora i muteksa
Razlika između semafora i muteksa

Video: Razlika između semafora i muteksa

Video: Razlika između semafora i muteksa
Video: КАК ВЫБРАТЬ ТЕЛЕСКОП? СОВЕТЫ ОТ АСТРОНОМА 2024, Novembar
Anonim

Semaphore vs Mutex

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. Mutex (Mutual Exclusion Object) se također koristi za izbjegavanje pristupa zajedničkom resursu u isto vrijeme od strane nekoliko istovremenih procesa.

Š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 Mutex?

Kada se pokrene računarska aplikacija, kreiraće mutex i priložiti ga resursu. Kada nit koristi resurs, on je zaključan i druge niti ga ne mogu koristiti. Ako druga nit želi koristiti isti resurs, morat će podnijeti zahtjev. Tada će ta nit biti stavljena u red dok prva nit ne završi sa resursom. Kada prva nit završi sa resursom, zaključavanje će biti uklonjeno i nit koja čeka u redu može dobiti pristup resursu. Ako postoji više niti koje čekaju u redu, njima se daje pristup na rotirajućoj osnovi. Praktično, kada mutex izmjenjuje pristup resursu između nekoliko niti, to će biti vidljivo kako više niti istovremeno konzumira resurs. Ali interno samo jedna nit pristupa resursu u datom trenutku.

Koja je razlika između semafora i muteksa?

Iako se i semafori i mutex objekti koriste za postizanje međusobnog isključivanja u okruženjima paralelnog programiranja, oni imaju neke razlike. Mutex objekat dozvoljava samo jednoj niti da konzumira resurs ili kritičnu sekciju, dok semafori dozvoljavaju ograničen broj istovremenih pristupa resursu (ispod maksimalno dozvoljenog broja). Sa mutex objektima, druge niti koje žele pristupiti resursu moraju čekati u redu dok se trenutna nit ne završi korištenjem resursa.

Preporučuje se: