В каких ОС / платформах реализована оптимизация ожидания трансформации?

На каких основных ОС / платформах реализовано преобразование ожидания?

Этот вопрос возник, когда я заметил, что нет четкого передового опыта о том, следует ли сигнализировать переменную условия с заблокированным мьютексом или нет. Типичная рекомендация - сигнализировать, удерживая блокировку, если профилирование не показывает существенного улучшения производительности от разблокировки (путем удаления дополнительного переключателя контекста).

IIUC, единственный недостаток удержания блокировки во время сигнализации - это дополнительные два переключателя контекста; Преимущества заключаются в более низком риске ошибки и более легком достижении предсказуемости в реальном времени.

Таким образом, кажется, что если реализуется морфинг ожидания, практика удержания блокировки во время сигнализации будет строго лучше.

1 ответ

Он не поддерживается в Linux. Марк Моссберг исследовал его здесь, и он по-прежнему актуален для мастера glibc сегодня (9 июня 2022 г.).

Другие вопросы по тегам