re-entrency прерываний в Linux

nogroup аналог группы к nobody пользователь. Это используется для непривилегированных процессов так, чтобы, даже если что-то идет не так, как надо, процесс не имел полномочий нанести любой серьезный ущерб важному пользователю или группе.

4
10.02.2011, 00:22
2 ответа

Ядро Linux повторно используемо (как все UNIX), который просто означает, что несколько процессов могут быть выполнены ЦП. Он не должен ожидать, пока чтение доступа к диску не обрабатывается смертельным медленным контроллером жесткого диска, ЦП может обработать некоторый другой материал, пока доступ к диску не закончен (который сам инициирует прерывание раз так).

Обычно прерывание может быть прервано другим прерыванием (вытеснение), это называют 'Вложенным Выполнением'. В зависимости от архитектуры существуют все еще некоторые критические функции, которые должны работать без прерывания (неупреждающего) путем завершенного отключения прерываний. На x86 они проходят некоторое время соответствующие функции (time.c, hpet.c) и некоторые xen материал.

Существует только два приоритетных уровня относительно прерываний: 'включите все прерывания', или 'отключают все прерывания', таким образом, я предполагаю, что Ваше "высокоприоритетное прерывание" является вторым. Это - единственное поведение, ядро Linux знает касающиеся приоритеты прерывания и не имеет никакого отношения к расширениям в реальном времени.

Если прерываемое прерывание (Ваше "низкоприоритетное прерывание") прервано другим прерыванием ("высоко" или "низко"), ядро сохраняет старый код выполнения прерванного прерывания и начинает обрабатывать новое прерывание. Это "вложение" может произойти многократно и таким образом может создать несколько уровней прерванных прерываний. Впоследствии, ядро перезагружает сохраненный код от старого прерывания и попыток закончить старую.

4
27.01.2020, 20:54

Невыгружаемый означает, что те обработчики не могут быть прерваны другим прерыванием.

Для non-preemtible обработчиков повторная входимость не, выходят, так как Вы не можете прервать их во-первых.

Относительно того, что ядро делает, просто проверьте ответ взмаха, я не могу прокомментировать как, он делает по этой теме.

1
27.01.2020, 20:54
  • 1
    На самом деле, согласно makelinux.net/ldd3/chp-10-sect-2.shtml только fast interrupts (those that were requested with the SA_INTERRUPT flag) are executed with all other interrupts disabled on the current processor –  Justin Ethier 09.02.2011, 19:38
  • 2
    @Justin: Вы правы, конечно, я сделал свой комментарий более общим - моя точка была теоретической: это имело целью обращаться к значению nonpreemtible и повторной входимости. –  asoundmove 10.02.2011, 00:00

Теги

Похожие вопросы