Innholdsfortegnelse:
Definisjon - Hva betyr Semaphore?
En semafor er et synkroniseringsobjekt som kontrollerer tilgang ved flere prosesser til en felles ressurs i et parallelt programmeringsmiljø. Semaforer er mye brukt for å kontrollere tilgang til filer og delt minne. De tre grunnleggende funksjonalitetene som er knyttet til semaforer er satt, sjekk og vent til den blir klar for å stille den inn igjen. |
Semaforer brukes til å adressere referansesynkroniseringsproblemer.
Begrepet semafor ble lagt frem av den nederlandske informatikeren Edsger Dijkstra.
Techopedia forklarer Semaphore
Semaforer er ikke-negative heltallverdier som støtter operasjonene semafor-> P () og semafor-> V (). P er en atomoperasjon som venter på at en semafor skal være positiv og deretter dekrementerer den med en, mens V er en atomoperasjon som øker en semafor etter en, noe som innebærer at den vekker en ventende P. Test og sett tilknyttet semafor er rutiner implementert i maskinvare for å koordinere kritiske seksjoner på lavere nivå.
Semaforer implementeres normalt ved hjelp av filbeskrivelser. Semaforekreasjoner er ikke atomiske. Hvis to prosesser prøver å opprette, initialisere og bruke en semafor på samme tid, opprettes en rasetilstand. Semaforer opprettes og initialiseres til en positiv verdi for å vise tilgjengeligheten til en ressurs som skal brukes. Semaforer kan implementeres ved avbrytelser eller ved bruk av testsettoperasjoner.
Hver semafor har sett med tillatelser. Det begrenser antall tråder som får tilgang til ressursene. Semaforer med bare en tillatelse og initialisert til en fungerer som gjensidig utelukkelseslåser. De blir referert til som sådan fordi de bare har to stater: tillatelse tilgjengelig eller null tillatelse tilgjengelig. Dette omslutter eiendommen slik at en lås kan frigjøres av en annen tråd enn eieren, noe som hjelper til med gjenoppretting av dødelås. Semaforer brukes til gjensidige utelukkelser der semaforen har en begynnelsesverdi på en, og P () og V () kalles før og etter de kritiske seksjonene.
