Semafoor
Semaphore: Semafoor is niets anders dan een term die wordt gebruikt in UNIX voor een variabele die fungeert als een teller. Zo kunnen er momenten waarop twee processen proberen om toegang te krijgen tot hetzelfde bestand tegelijk. In dit geval moeten we de controle van de toegang van het dossier bij de andere is de toegang tot. Dit gebeurt door het toekennen van waarde aan semafoor.
De waarde van de semafoor is geïnitialiseerd door het eerste proces wanneer het bestand wordt in de toegang heeft. Als het tweede proces proberen om toegang te krijgen tot het bestand controleert het systeem de waarde van de semafoor en, indien hij vaststelt de waarde zoals geïnitialiseerd het niet openen van het bestand. Na het eerste proces is voltooid reinitializes de semafoor waarde en nu de tweede proces gebruikt. Het bovenstaande voorbeeld is voor de twee processen, maar een semafoor kan worden gebruikt, zelfs wanneer het aantal processen proberen om toegang te krijgen tot hetzelfde dossier. Zo semaforen gebruikt worden voor de coördinatie van de toegang tot een bron van verschillende processen.
We hebben gezien dat semafoor kan worden gebruikt bij het aantal processen proberen om toegang te krijgen tot hetzelfde dossier. In dit geval moeten we de semafoor beschikbaar zijn toegankelijk voor alle processen, zodat ze kunnen lezen en controleren van de waarde en ook opnieuw initialiseren en de waarde van de semafoor adequaat. Om deze reden alleen de semafoor is opgeslagen in de kernel, zodat het kan worden geraadpleegd door alle processen.
De waarde van de semafoor is dus het aantal threads die niets anders dan processen. Met andere woorden, wij vinden dat, indien de waarde is positief dan hebben we draden te verlagen en gaan voor de uitvoering zonder schorsing. Als de waarde van de semafoor is negatief, dan betekent dat het aantal threads of proces geblokkeerd is en dat in zwevende toestand. Als de waarde van de semafoor is nul dan betekent dit dat er geen draden of processen in de wacht staat.
|