Может ли планировщик или некоторые критические потоки ядра быть вытеснены в вытесняемом ядре Linux? А как насчет обработчика прерывания (верхняя половина или нижняя половина)?
Может ли планировщик или некоторые критические потоки ядра быть вытеснены в вытесняемом ядре Linux?
comment
Планировщик не является задачей ядра (но он управляет этими приоритетными задачами)
- person Basile Starynkevitch   schedule 19.01.2015
comment
Так что же такое планировщик? Программа пользовательского пространства, если не задача ядра?
- person WindChaser   schedule 19.01.2015
comment
Планировщик - важная часть ядра, но не задача ядра.
- person Basile Starynkevitch   schedule 19.01.2015
comment
Не могли бы вы сказать мне разницу? Спасибо.
- person WindChaser   schedule 19.01.2015
comment
Вам потребуется несколько часов, чтобы прочитать материал об операционной системе и ядре.
- person Basile Starynkevitch   schedule 19.01.2015
comment
Я не могу найти концептуальную задачу ядра при поиске нескольких книг по ядру Linux (с использованием сопоставления строк) ...
- person WindChaser   schedule 19.01.2015
Ответы (2)
Ядро вызывает __schedule () для фактического переключения контекста. Он всегда вызывает это с отключенным приоритетом. Вы можете найти вызывающих абонентов и заметить звонок preempt_disable
перед звонком __schedule
. Таким образом, это не может быть вытеснено.
Кроме того, обработчик прерывания не может быть вытеснен. Вытеснение здесь отключено. Но ядро Linux является вытесняемым, что означает, что потоки ядра и другой код могут быть вытеснены, если это безопасно.
person
bornfree
schedule
11.04.2019
Любой поток ядра или, вообще говоря, любая часть кода может быть вытеснена:
- Нитью с более высоким приоритетом
- Пока не в секции, защищенной от прерываний и прерывания
Так что да, даже планировщик может быть вытеснен, например, аппаратным прерыванием.
person
MSI
schedule
19.01.2015