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

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

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

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

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

Ссылки

  1. ^ Зильбершатц, Абрахам (2013). Концепции операционной системы . John Wiley & Sons Inc. ISBN 978-1118129388.
  2. ^ Блазген, Майк; Грей, Джим; Митома, Майк; Блазген, Майк; Митома, Лайк (1979). «Феномен конвоя». Обзор операционных систем . 13 (2): 20–25. CiteSeerX 10.1.1.646.921 . doi :10.1145/850657.850659. S2CID  40305779. 
Взято с "https://en.wikipedia.org/w/index.php?title=Lock_convoy&oldid=1241518713"