Блокировать конвой - Lock convoy

В Информатика, а блокировать конвой это проблема производительности, которая может возникнуть при использовании замки за контроль параллелизма в многопоточный заявление.

Блокировка конвоя происходит, когда несколько потоки с равным приоритетом неоднократно борются за одну и ту же блокировку.[1] В отличие от тупик и лайвлок ситуации, потоки в конвои блокировок прогрессируют; однако каждый раз, когда поток пытается получить блокировку и терпит неудачу, он отказывается от оставшейся части своего кванта планирования и принудительно переключает контекст. Накладные расходы, связанные с повторяющимися переключениями контекста и недостаточным использованием квантов планирования, снижают общую производительность.

Конвои блокировок часто возникают, когда примитивы управления параллелизмом, такие как замки сериализовать доступ к часто используемому ресурсу, например куча памяти или пул потоков. Иногда их можно решить, используя неблокирующие альтернативы, такие как безблокирующие алгоритмы или изменяя относительные приоритеты конкурирующих потоков.


Смотрите также

Рекомендации

  1. ^ Зильбершатц, Абрахам (2013). Понятия операционной системы. John Wiley & Sons Inc. ISBN  1118129385.