Wywłaszczalne jądro
Wcześniej: jądro nie wywłaszczalne - po obsłudze przerwania procesor wraca do tego samego procesu który był obsługiwany przed przerwaniem
Teraz: jądro wywłaszczalne - proces może zostać zmieniony po obsłudze przerwania
Skutki:
- znaczne przyspieszenie średniego czasu obsługi procesu:
- opóźnienia bez wywłaszczanego jądra:
- opóźnienia z wywłaszczalnym jądrem:
- inne aplikacje mogą działać nawet wtedy, gry w tle dzieje się coś głębszego, bardziej skomplikowanego. w praktyce, zwykli użytkownicy nie zauważą różnicy, jedynie takie rzeczy jak wczytywanie wejścia będzie ciut szybsze, nawet gdy system jest obciążony
- oczywiście są sytuacje w których nie można przerywać procesów jądra. wtedy stosuje się dodatkowe funkcje preempt_disable() i preempt_enable()
- ta zmiana zbliża linuxa do systemu RTOS (real-time operatind system - system operacyjny czasu rzeczywistego), czyli systemu w którym każda operacja jest wykonywana natychmiast. wynika to z tego, że po przerwaniu jakiegoś procesu w tle, do procesora uzyskuje dostęp proces właśnie zainicjowany. w praktyce oznacza to wykonanie każdej operacji w z góry ograniczonym czasie. przykłady prawdziwych RTOS-ów: VxWorks, QNX, Windows CE
- przykłady zastosowań:
- systemy, które muszą być gotowe na sytuacje kryzysowe
- procesy nieistotne , działające w tle ale mające nie zwalniać systemu (np. indeksowanie plików)
- hardware wymagający od procesora dodatkowy obliczeń