Витіснення коду ядра () — це властивість деяких ядер операційних систем, за якої процесор може бути перерваний посеред виконання коду ядра і призначений для виконання інших завдань (після чого згодом повертається до завершення виконання коду ядра).

Реалізація Зокрема, планувальнику дозволяється примусово виконувати перемикання контексту (на користь готового до виконання процесу з вищим пріоритетом) для драйвера або іншої частини ядра під час їх виконання, замість того щоб кооперативно чекати, доки драйвер або функція ядра (наприклад, системний виклик) завершить виконання й поверне керування процесором планувальнику. Цей механізм використовується переважно в монолітних і гібридних ядрах, де всі або більшість драйверів пристроїв виконуються в просторі ядра. Linux є прикладом операційної системи з монолітним ядром, що підтримує витіснення ядра.

Основна перевага витіснення ядра полягає в тому, що воно розв'язує дві проблеми, які інакше були б характерними для монолітних ядер, де ядро складається з одного великого виконуваного двійкового файла. Без підтримки витіснення ядра в монолітних і гібридних ядрах виникають дві основні проблеми: Драйвер пристрою може потрапити в нескінченний цикл або інший невідновний стан, що призведе до аварійного завершення роботи всієї системи. Деякі драйвери та системні виклики в монолітних ядрах можуть виконуватися повільно і не здатні повернути керування процесором планувальнику або іншій програмі до завершення свого виконання.

Примітки