по кд крутится и проверяет доступен ресурс или нет? условно значение какой-то перменной: тру\фолс.
Многие статьи приводят "типичную" реализацию мьютекса следующую например
acquire() {
while (!available)
/* schedule another process */
available = false
}
и это же по сути busy-waiting, а мьютекс сам по себе подразумевает блокировку процесса, чтобы тот не кушал ресурсы процессора. Получается может какая-то команда\сискол для процесса вызывется вместо цикла или как?
Да, это так
Это ЛОГИЧЕСКАЯ схема работы мьютекса, реализация на самом деле НЕ ТАКАЯ. странно, что тебя не смущает текст в комментарии... Если его учитывать, уже никакого busy wait не получится.
Обсуждают сегодня