В портале Duetgroup Вы будете проинформированы о технологии и программирования на базе Linux.
А также о комплектации программ, о процессе разработки ПО, о скорости обработки данных и решении практических задач.

Бинарные семафоры

Бинарные семафорыКроме бинарных семафоров существуют так называемые семафоры-счетчики. Значение этого семафора представляет собой неотрицательное целое число. Над таким семафором определено две операции. Операция V останавливает выполнение процесса в случае, если его значение меньше либо равно нулю, или уменьшает значение семафора на единицу в противном случае. Операция Р увеличивает значение семафора на единицу и уведомляет остановленные процессы об увеличении значения семафора, вызывая повторную проверку значения.
Семафоры-счетчики служат для совместного доступа к ограниченному количеству однотипных ресурсов, например к печатающим устройствам, подключенным к одному компьютеру. Количество доступных устройств записывается в качестве начального значения семафора-счетчика.
Перед тем как занять одно из устройств, процесс выполняет над семафором операцию V. В случае если осталось хотя бы одно доступное устройство, значение счетчика уменьшается на единицу, отражая таким образом уменьшение количества доступных устройств. Если не осталось ни одного доступного устройства, выполнение процесса приостанавливается до тех пор, пока устройство не освободится и значение счетчика не станет положительным. Поскольку ожидающих освобождения устройства процессов может быть несколько, то они организуются в очередь и доступ к устройству при увеличении значения счетчика получает первый в этой очереди процесс. После освобождения ресурса процесс выполняет над семафором операцию Рг тем самым увеличивая значение счетчика на единицу.