Вытеснение ядра
компьютерной операционной системы В конструкции вытеснение ядра — это свойство, которым обладают некоторые ядра , при котором ЦП может быть прерван в середине выполнения кода ядра и назначен другим задачам (из которых он позже возвращается для завершения своих задач ядра).
Подробности
[ редактировать ]В частности, планировщику разрешено принудительно выполнять переключение контекста (от имени работающего процесса с более высоким приоритетом ) для драйвера или другой части ядра во время его выполнения, вместо совместного ожидания драйвера или функции ядра ( например системный вызов ), чтобы завершить его выполнение и вернуть управление процессором планировщику после завершения. [1] [2] [3] [4] Он используется в основном в монолитных и гибридных ядрах , где все или большинство драйверов устройств запускаются в пространстве ядра . Linux является примером операционной системы с монолитным ядром и вытеснением ядра.
Основное преимущество вытеснения ядра состоит в том, что оно решает две проблемы, которые в противном случае были бы проблематичными для монолитных ядер, в которых ядро состоит из одного большого двоичного файла . [5] Без вытеснения ядра существуют две основные проблемы для монолитных и гибридных ядер:
- Драйвер устройства может войти в бесконечный цикл или другое невосстановимое состояние, что приведет к сбою всей системы. [1]
- Некоторые драйверы и системные вызовы в монолитных ядрах могут выполняться медленно и не могут вернуть управление процессором планировщику или другой программе до завершения выполнения. [2]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Преимущество под Linux» . kernelnewbies.org . 22 августа 2009 г. Проверено 10 июня 2016 г.
- ^ Перейти обратно: а б Джонатан Корбет (24 февраля 2003 г.). «Портирование драйверов: вытесняемое ядро» . LWN.net . Проверено 10 июня 2016 г.
- ^ «Справочник по архитектуре FreeBSD, глава 8. Проектный документ SMPng, раздел 8.3. Общая архитектура и проектирование» . freebsd.org . Проверено 10 июня 2016 г.
- ^ Роберт Лав (1 мая 2002 г.). «Снижение задержки в Linux: введение вытесняемого ядра» . Linux-журнал . Проверено 10 июня 2016 г.
- ^ Роберт Лав (2010). Разработка ядра Linux (3-е изд.). Пирсон Образование. ISBN 978-0672329463 .