Sadržaj:
Definicija - Što znači semafor?
Semafor je sinkronizacijski objekt koji kontrolira pristup višestrukim procesima zajedničkom resursu u paralelnom programskom okruženju. Semafore se široko koriste za kontrolu pristupa datotekama i zajedničkoj memoriji. Tri osnovne funkcije povezane sa semaforima su postavljene, provjerite i pričekajte dok se ne ukloni da biste je ponovo postavili. |
Semafore se koriste za rješavanje problema sinkronizacije referentnih vrijednosti.
Koncept semafora iznio je nizozemski informatičar Edsger Dijkstra.
Tehopedija objašnjava Semaphore
Semafori su ne-negativne cjelobrojne vrijednosti koje podržavaju operacije semafor-> P () i semafor-> V (). P je atomska operacija koja čeka da semafor bude pozitivan, a zatim ga smanji za jedan, dok je V atomska operacija koja povećava semafor za jednim, što znači da budi P. koji čeka, a test i postavljen povezan sa semaforom su rutine implementirano u hardver za koordiniranje kritičnih odjeljaka niže razine.
Semafore se obično provode pomoću deskriptora datoteka. Kreacije semafora nisu atomske. Ako dva procesa pokušaju stvoriti, inicijalizirati i koristiti semafor istovremeno, stvara se stanje utrke. Semafore se stvaraju i inicijaliziraju na pozitivnu vrijednost kako bi se pokazala dostupnost resursa koji se koristi. Semafore se mogu provesti prekidima ili pomoću operacija skupa ispitivanja.
Svaki semafor održava niz dozvola. Ograničava broj niti koji pristupaju resursima. Semafore sa samo jednim dopuštenjem i inicijalizirane na jedno služe kao brave za međusobno isključenje. Nazivaju se takvima jer imaju samo dva stanja: raspoloživa dozvola ili nulta dozvola. Ovo uključuje svojstvo tako da se zaključavanje može osloboditi nit koja nije vlasnik, a pomaže u oporavku iz zastoja. Semafori se koriste za međusobno isključivanje gdje semafor ima početnu vrijednost jedna, a P () i V () se nazivaju prije i nakon kritičnih presjeka.
