Przerwania Flashcards
Do czego potrzebne są przerwania?
Przerwanie umożliwia wykonywanie innej czynności przez system, podczas gdy jakaś została już uruchomiona.
Jak działają przerwania?
Dane jest pewne urządzenie zewnętrzne jest gotowe do obsługi (czyli np. przyjmowania danych od procesora, czy też - z wprowadzającego przykładu - zmieniło się położenie myszki i chce ona poinformować o tym procesor). Wtedy moduł wejścia/wyjścia (ang. I/O, Input/Output) tego urządzenia wysyła sygnał żądania przerwania do procesora (dzwoni dzwonek telefonu). W odpowiedzi procesor zawiesza działanie bieżącego programu (odkładamy pióro) i wykonuje skok do programu obsługi przerwania (ang. interrupt handler) obsługującego to urządzenie (rozmawiamy przez telefon). Po obsłużeniu urządzenia następuje powrót do programu, który został przerwany (wracamy do pisania). Żeby opisany wyżej schemat działania był możliwy, potrzebna jest jeszcze współpraca z systemem operacyjnym - współcześnie to on odpowiada za obsługę wszystkich przerwań.
Czym jest wektor przerwań i po co jest potrzebny?
Przerwania powinny być obsługiwane szybko, system posługuje się tablicą wskaźników do procedur obsługujących przerwania. Owa tablica nazywana jest wektorem przerwań (ang. interrupt vector) i jest indeksowana jednoznacznym numerem urządzenia.
Co się dzieje z cyklem rozkazowym w wyniku występowania przerwań?
Występowanie przerwań modyfikuje nieco schemat cyklu rozkazowego. Do cyklu rozkazu dodawany jest cykl przerwania. W trakcie cyklu przerwania procesor sprawdza, czy nie pojawiły się jakieś przerwania. Jeśli przerwania nie są wykonywane, procesor pobiera następny rozkaz danego programu. Jeśli natomiast wystąpi zgłoszenie przerwania procesor:
- Zawiesza wykonywanie bieżącego programu i zachowuje jego kontekst, czyli przesyła do specjalnie wydzielonego obszaru pamięci zawartość rejestrów oraz adres następnego rozkazu (zawartość licznika rozkazów). Ten wydzielony obszar pamięci nazywa się stosem systemowym.
- Licznik rozkazów jest ustawiany na początkowy adres programu obsługi przerwań.
Następnie procesor pobiera pierwszy rozkaz z programu obsługi przerwań i zaczyna go wykonywać..
Czym jest schemat priorytetów?
Specjalny schemat, który system operacyjny wykorzystuje do określania priorytetów - czyli jak ważna jest obsługa danego urządzenia. Przerwanie o wyższym priorytecie będzie obsługiwane również wtedy, gdy jest w trakcie wykonywane przerwanie o priorytecie niższym, zaś przerwania o tym samym lub niższym priorytecie będą maskowane (ang. masked interrupt).