Wywłaszczenie jądra (ang. Kernel preemption) – pojęcie używane w projektowaniu systemów operacyjnych, których jądro (rdzeń systemu operacyjnego) pozwala na wywłaszczenie własnego kodu. Czyli, w trakcie wykonywania kodu jądra, praca procesora może zostać przerwana i przydzielona do innych zadań (procesor potem wraca aby zakończyć wykonywanie kodu jądra).
Oznacza to, że planista niskopoziomowy może wymusić przełączanie kontekstu (w imieniu procesu o wyższym priorytecie) na sterowniku lub innej części jądra podczas jego wykonywania, zamiast czekać na sterownik lub zakończenie funkcji jądra (np. wywołania systemowego). Mechanizm wywłaszczenia jest używany głównie w jądrach monolitycznych i hybrydowych, w których wszystkie lub większość sterowników urządzeń jest uruchamiana w przestrzeni jądra. Przykładem takiego systemu z monolitycznym jądrem i mechanizmem wywłaszczenia jądra jest Linux.
Główną zaletą wywłaszczania jądra jest to, że rozwiązuje ono dwa problemy, które w innym przypadku byłyby problematyczne dla jąder monolitycznych. W takim systemie jądro składa się z jednego dużego pliku binarnego (zamiast wielu „usług”, jak w systemie operacyjnym opartym na mikrojądrze, takim jak Windows NT/Vista /7/10 lub macOS). Te dwa, główne problemy dla jąder monolitycznych i hybrydowych, to:
Sterownik urządzenia może wejść w pętlę nieskończoną lub inny krytyczny stan, powodując awarię całego systemu. Niektóre sterowniki i wywołania systemowe na jądrach monolitycznych mogą być stosunkowo wolne. W związku z tym przez dłuższy czas nie mogłyby zwrócić kontroli nad procesorem do programu planującego lub innego programu.
Zobacz też Wielozadaniowość Wielowątkowość
Przypisy
Kategoria:Jądro systemu operacyjnego