Под семафором понимается переменная, принимающая целые неотрицательные значения.
Семафорная технология:
Дейкстра и Деккер предложили 2 семафорных примитива
S={0;1} – семафор
P(S) – понижающий примитив
V(S) – повышающий примитив
При помощи семафорных примитивов проблема критической секции решается следующим образом:
Процесс 1: программа 11; P(S); CS1; V(S); программа 12; goto L1.
Процесс 2: программа 21; P(S); CS2; V(S); программа 22; goto L2.