Что касается литературы по семафорам, я никогда не видел (с моими ограниченными знаниями) кого-либо, кто использовал бы FIFO или какую-либо форму упорядочения в качестве критерия слабой / сильной категоризации. На самом деле, голодная свобода тоже не всегда критерий. Первоначальная литература (из-за того, что Моррис ('79) , Мартин и Дж. Р. Берч ('85) , Уддинг ('86) , Фридберг и Петерсон ('87) и Халдар и Субраманиан ('88) ) использовали определенные характеристики операций 'P' и 'V' определить слабый семафор. Интересно, что все определения цитируемых исследователей в конечном итоге предполагают возможное голодание в случае слабых семафоров. Кроме того, хотя FIFO гарантирует свободу от голода, ссылка на термин FIFO или некоторая форма упорядочения, на мой взгляд, ограничивает поведение семафора. Одна из форм ограничения может заключаться в том, что, например, упорядочение FIFO подразумевает, что к семафору прикреплен какой-то буфер, чтобы отслеживать заблокированные процессы / потоки в операции 'P' . , Для аппаратной реализации семафоров это определение может быть слишком ограничительным. Другая форма ограничений может заключаться в том, что вместо рассмотрения всех возможных схем упорядочения с одинаковым ограниченным обгоном k (т. Е. Ни один процесс не будет обгонен более чем k раз), можно ограничиться Рассмотрите каждую схему как один другой вид семафора. Таким образом, мое личное мнение состоит в том, чтобы определить слабый семафор как тот, который НЕ гарантирует свободу от голода (но гарантирует свободу тупиков). Тем не менее, если вы более глубоко погружены в исследовательскую деятельность, то вы всегда можете использовать более математические и / или детализированные определения по своему усмотрению.