SOP wyk nr 6-Slajd25

Z Studia Informatyczne
Wersja z dnia 10:50, 28 sie 2006 autorstwa Dwa (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Poziomy obsługi przerwań

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.


<< Poprzedni slajd | Spis treści | Następny slajd >>