Вытеснение ядра - Kernel preemption

Вытеснение ядра метод, используемый в основном в монолитный и гибридный ядра где все или большинство драйверы устройств вбегают пространство ядра, посредством чего планировщик разрешено принудительно выполнить переключатель контекста (т. е. превентивное планирование; от имени работающего процесса с более высоким приоритетом) на драйвере или другой части ядра во время его выполнения, а не кооперативно ожидание драйвера или функции ядра (например, системный вызов ), чтобы завершить его выполнение и вернуть управление процессором планировщику.[1][2][3][4]

У этого метода есть два основных преимущества в монолитных и гибридных ядрах, и он отвечает на одну из основных критических замечаний в отношении монолитных ядер со стороны микроядро адвокатов, а именно:

  • Драйвер устройства может войти в бесконечный цикл или в другое неисправимое состояние, что приведет к сбою всей системы.[1]
  • Некоторые драйверы и системные вызовы на монолитных ядрах выполняются медленно и не могут вернуть управление процессором планировщику или другой программе, пока они не завершат выполнение.[2]

Смотрите также

Рекомендации

  1. ^ а б «Вытеснение под Linux». kernelnewbies.org. 2009-08-22. Получено 2016-06-10.
  2. ^ а б Джонатан Корбет (24 февраля 2003 г.). «Перенос драйверов: вытесняемое ядро». LWN.net. Получено 2016-06-10.
  3. ^ «Руководство по архитектуре FreeBSD, глава 8. Документ по проектированию SMPng, раздел 8.3. Общая архитектура и дизайн». freebsd.org. Получено 2016-06-10.
  4. ^ Роберт Лав (2002-05-01). «Снижение задержки в Linux: введение вытесняемого ядра». Linux журнал. Получено 2016-06-10.