Цілочисельні семафори

У згаданій роботі Дейкстри, крім двійкових семафорів, що приймають значення 0 і 1, було розглянуто також більш загальний тип семафорів зі значеннями на інтервалі від 0 до деякого N. Функція P (S) зменшує позитивне значення семафора на 1, а при нульовому значенні переходить в очікування, як і у випадку довічного семафора. Функція V (S) збільшує значення семафора на 1, але не більше N.

Область застосування цілочислових семафорів дещо інша, ніж у двійкових. Цілочисельні семафори застосовуються в задачах виділення ресурсів з обмеженого запасу. Величина N характеризує загальну кількість наявних одиниць ресурсу, а поточне значення змінної - кількість вільних одиниць. При запиті ресурсу процес викликає функцію V (S), при звільненні - P (S).

Для цілочисельних семафорів іноді зручно використовувати модифіковану функцію V (S, k), другим параметром якої є число одночасно запитуваних одиниць ресурсу. Така функція блокує процес, якщо значення семафора менше k.