В каких ОС / платформах реализована оптимизация ожидания трансформации?
На каких основных ОС / платформах реализовано преобразование ожидания?
Этот вопрос возник, когда я заметил, что нет четкого передового опыта о том, следует ли сигнализировать переменную условия с заблокированным мьютексом или нет. Типичная рекомендация - сигнализировать, удерживая блокировку, если профилирование не показывает существенного улучшения производительности от разблокировки (путем удаления дополнительного переключателя контекста).
IIUC, единственный недостаток удержания блокировки во время сигнализации - это дополнительные два переключателя контекста; Преимущества заключаются в более низком риске ошибки и более легком достижении предсказуемости в реальном времени.
Таким образом, кажется, что если реализуется морфинг ожидания, практика удержания блокировки во время сигнализации будет строго лучше.
1 ответ
Он не поддерживается в Linux. Марк Моссберг исследовал его здесь, и он по-прежнему актуален для мастера glibc сегодня (9 июня 2022 г.).