aoreh (27.11.2013 16:01, просмотров: 385) ответил ыыыыыыы на выступлю за противный :) лагерь: если в нашем случае (с задачами 1,2,3) во время ожидания задачей 3 семафора, произошло событие и запустились задачи 4,5 (приоритеты 5>4>3) и 5 задача полезла за тем же семафором, после завершения задачи 1 (уже с 5
не-не-не, после освобождения семафора его старому владельцу просто возвращается свой приоретет. а семафором начинает владеть самая приоритетная задача из ожидающих, т.е.5-я, 3-я в это время опять курит.
другими словами, никакой стек приоритетов не нужен, приоритет просто каждый раз повышается до самой приоритетной ожидающей, а в памяти семафора хранится исходный приоритет задачи-владельца