semafor

(semaphore) – i programmering: en datatyp som håller räkning på till­gången till gemen­samma och begränsade resurser i ett it‑system. Sema­for­erna har två lägen som motsvarar ledig och upp­tagen. För varje resurs med semaforer finns det lika många semaforer som det maximala antalet processer som samtidigt kan använda resursen. Det maximala antalet markeras traditionellt med bokstaven S. (Om bara en process åt gången kan använda resursen talar man om en binär semafor, annars om räk­nande semaforer.) En process som använder en resurs skickar en in­struk­tion att en semafor ska markeras som upptagen (wait, traditionellt mark­e­rat med bokstaven P). När processen inte behöver resursen längre skickar den en instruktion om att en semafor ska slå om till ledig (signal, tra­di­tion­ellt mark­e­rat med bokstaven V). Och innan en process använder en resurs kollar den sema­for­erna för att se om det finns någon ledig plats; om ingen tillgång till resursen är ledig måste processen vänta. Sema­for­erna håller bara räkning på antalet lediga respektive upptagna resurser, inte på exakt vilka det är. –Ordet: Från början en mekanisk signal i form av en rörlig skylt, använd på järnvägar och avsedd att kunna avläsas på långt håll. Det är en förfranskning av grekiska sema, ’tecken’ och phoros, ’bärare’.

[programmering] [5 juni 2017]