SOP wyk nr 6-Slajd25
Poziomy obsługi przerwań
Priorytety urządzeń wiążą się z priorytetami przerwań od nich, ale problem można uogólnić na priorytety innych zdarzeń, na które jądro musi reagować. W związku z powyższym wyróżnia się poziomy pracy jądra związane z reakcją na pewne zdarzenia. Na określonym poziomie pracy (poziomie priorytetu) jądro reaguje tylko na zdarzenia o wyższym priorytecie. Obsługa przerwania rozpoczyna się od odpowiedniego podniesienia poziomu pracy. W zaprezentowanym przykładzie (zbliżonym do rozwiązań w systemach rodziny UNIX):
- na poziomie 0 jądro reaguje na wszystkie zdarzenia (przerwania),
- na poziomie 1 ignoruje (kolejkuje, maskuje) żądania realizacji zadań okresowych,
- na poziomie 2 nie przetwarza danych protokołu sieciowego, ale obsługuje kartę sieciową (zaprzestaje reakcji dopiero na poziomie 5)
- na poziomie 3 nie obsługuje żądań od terminala,
- na poziomie 4 nie obsługuje żądań od dysku,
- na poziomie 5 nie obsługuje żądań od karty sieciowej,
- na poziomie 6 nie reaguje na przerwania od czasomierza (generatora interwałów),
- na poziomie 7 nie reaguje na żadne przerwania.
Na każdym wyższym poziomie jądro oczywiście nie reaguje również na zdarzenia przypisane do niższego poziomu.
W konkretnych implementacja tych poziomów może być więcej. W systemie Windows 2000/XP występują 32 tzw. poziomy zgłoszeń przerwań . W systemach Linux i Solaris do obsługi przerwań wykorzystywane są wątki jądra i ich priorytet decyduje o realizacji określonej procedury.