Книга: Разработка ядра Linux
Сравнение спин-блокировок и семафоров
Сравнение спин-блокировок и семафоров
Понимание того, когда использовать спин-блокировки, а когда семафоры является важным для написания оптимального кода. Однако во многих случаях выбирать очень просто. В контексте прерывания могут использоваться только спин-блокировки, и только семафор может удерживаться процессом, который находится в состоянии ожидания. В табл. 9.6 показан обзор требований того, какой тип блокировок использовать.
Таблица 9.6. Что следует использовать: семафоры или спин-блокировки
Требование | Рекомендуемый тип блокировки |
---|---|
Блокировка с малыми накладными затратами (low overhead) | Спин-блокировки более предпочтительны |
Малое время удержания блокировки | Спин-блокировки более предпочтительны |
Длительное время удержания блокировки | Семафоры более предпочтительны |
Необходимо использовать блокировку в контексте прерывания | Необходима спин-блокировка |
Необходимо переходить в состояние ожидания (steep) при захваченной блокировке | Необходимо использовать семафоры |
Оглавление статьи/книги
- Атомарные операции
- Спин-блокировки
- Спин-блокировки чтения-записи
- Семафоры
- Семафоры чтения-записи
- Сравнение спин-блокировок и семафоров
- Условные переменные
- BKL: Большая блокировка ядра
- Секвентные блокировки
- Средства запрещения преемптивности
- Барьеры и порядок выполнения
- Резюмирование по синхронизации
Похожие страницы
- 10.16. Реализация с использованием семафоров System V
- 3.2. Сравнение операционных систем
- 2. Позиционное сравнение
- 8.1.4. Сравнение массивов
- 4.2 Сравнение SAN и NAS
- Сравнение C# и C++
- Установка значений спин-счетчиков
- Реализация семафоров в Linux
- Сравнение ценностных профилей партнеров
- Синхронизация с помощью семафоров
- 5.2.4. Отладка семафоров
- Большое сравнение: Fedora, openSUSE, Ubuntu