Главная » Ядро Linux » Сравнение спин-блокировок и семафоров

0

Понимание  того, когда использовать спин-блокировки, а когда семафоры является важным для написания  оптимального  кода. Однако во многих случаях выбирать очень просто. В контексте  прерывания  могут использоваться  только спин-блокировки,  и только семафор  может удерживаться процессом,  который находится в состоянии  ожидания.  В табл. 9.6 показан  обзор требований того, какой тип блокировок использовать.

Таблица 9.6. Что следует использовать: семафоры или спин-блокировки

Требование                                                                  Рекомендуемый тип блокировки

Блокировка с малыми накладными затрата            Спин-блокировки  более предпочтительны ми (low overhead)

Малое время удержания блокировки                         Спин-блокировки  более предпочтительны

Длительное время удержания блокировки                 Семафоры более предпочтительны

Необходимо использовать блокировку в                   Необходима спин-блокировка контексте прерывания

Необходимо переходить в состояние ожи               Необходимо использовать семафоры дания (steep) при захваченной блокировке

Источник: Лав,  Роберт. Разработка ядра  Linux, 2-е  издание. : Пер.  с англ.  — М.  : ООО  «И.Д.  Вильяме» 2006. — 448 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии