Блокировка конвоя
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2016 г. ) |
В информатике конвой блокировок — это проблема производительности, которая может возникнуть при использовании блокировок для управления параллелизмом в многопоточном приложении.
Конвой блокировок возникает, когда несколько потоков с одинаковым приоритетом неоднократно конкурируют за одну и ту же блокировку. [1] [2] В отличие от ситуаций тупиковой и активной блокировки , потоки в колонне блокировок продолжают выполняться; однако каждый раз, когда поток пытается получить блокировку и терпит неудачу, он освобождает остаток своего кванта планирования и принудительно переключает контекст. Накладные расходы на повторные переключения контекста и недостаточное использование квантов планирования снижают общую производительность.
Конвои блокировок часто возникают, когда примитивы управления параллелизмом, такие как блокировки, сериализуют доступ к часто используемому ресурсу, например куче памяти или пулу потоков . Иногда их можно решить, используя альтернативы без блокировки, такие как алгоритмы без блокировки , или путем изменения относительных приоритетов конкурирующих потоков.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Зильбершац, Авраам (2013). Концепции операционной системы . John Wiley & Sons Inc. ISBN 978-1118129388 .
- ^ Блазген, Майк; Грей, Джим; Митома, Майк; Блазген, Майк; Митома, Лайк (1979). «Феномен конвоя». Обзор операционных систем . 13 (2): 20–25. CiteSeerX 10.1.1.646.921 . дои : 10.1145/850657.850659 . S2CID 40305779 .