przerwanie jest sygnałem emitowanym przez sprzęt lub oprogramowanie, gdy proces lub zdarzenie wymaga natychmiastowej uwagi. Alarmuje procesor o wysokim priorytecie wymagającym przerwania bieżącego procesu roboczego. W urządzeniach We / Wy jedna z magistral sterujących jest dedykowana do tego celu i nazywana jest procedurą przerwania (Interrupt Service Routine, ISR).
Kiedy urzÄ … dzenie wywoĹ 'uje przerwanie na powiedzmy proces i, procesor najpierw zakoĹ” czy wykonanie instrukcji i. nastÄ ™ pnie wczytuje Licznik programu (PC) z adresem pierwszej instrukcji ISR. Przed załadowaniem licznika programu z adresem, adres przerwanej instrukcji jest przenoszony do tymczasowej lokalizacji. Dlatego po wykonaniu przerwania procesor może kontynuować proces i+1.
podczas gdy procesor obsługuje przerwania, musi poinformować urządzenie, że jego żądanie zostało rozpoznane, tak aby przestało wysyłać sygnał żądania przerwania. Ponadto zapisywanie rejestrów tak, aby przerwany proces mógł zostać przywrócony w przyszłości, zwiększa opóźnienie między odebraniem przerwania a rozpoczęciem wykonywania ISR. Nazywa się to przerwaniem Lattency.
przerwania sprzętowe:
w przerwaniu sprzętowym wszystkie urządzenia są podłączone do linii żądania przerwania. Pojedyncza linia żądania jest używana dla wszystkich N urządzeń. Aby zażądać przerwania, urządzenie zamyka powiązany z nim przełącznik. Gdy urządzenie żąda przerwań, wartość INTR jest logiczną wartością or żądań z poszczególnych urządzeń.
sekwencja zdarzeń związanych z obsługą IRQ:
- urządzenia wywołują IRQ.
- procesor przerywa aktualnie wykonywany program.
- urządzenie jest informowane, że jego żądanie zostało rozpoznane i urządzenie dezaktywuje sygnał żądania.
- wykonywana jest żądana akcja.
- przerwanie jest włączone i przerwany program jest wznawiany.
Obsługa wielu urządzeń:
gdy więcej niż jedno urządzenie podnosi sygnał żądania przerwania, potrzebne są dodatkowe informacje, aby zdecydować, które urządzenie ma być rozważane jako pierwsze. Do wyboru urządzenia używane są następujące metody: Polling, vectored Interrupts i Interrupt Nesting. Są one wyjaśnione w następujący sposób poniżej.
- odpytywanie:
w odpytywaniu pierwszym urządzeniem napotkanym z ustawionym bitem IRQ jest urządzenie, które ma być najpierw obsługiwane. Odpowiedni ISR jest powołany do obsługi tego samego. Jest łatwy do wdrożenia, ale wiele czasu marnuje się, przesłuchując bit IRQ wszystkich urządzeń. - vectored Interrupts:
w vectored interrupts urządzenie żądające przerwania identyfikuje się bezpośrednio poprzez wysłanie specjalnego kodu do procesora przez magistralę. Umożliwia to procesorowi identyfikację urządzenia, które wygenerowało przerwanie. Specjalnym kodem może być adres początkowy ISR lub miejsce, w którym ISR znajduje się w pamięci i jest nazywany wektorem przerwań. - Interrupt Nesting:
w tej metodzie urządzenie I / O jest zorganizowane w strukturę priorytetową. Dlatego żądanie przerwania z urządzenia o wyższym priorytecie jest rozpoznawane tam, gdzie nie jest to żądanie z urządzenia o niższym priorytecie. Aby zaimplementować ten proces/urządzenie (nawet procesor). Procesor akceptuje przerwania tylko z urządzeń / procesów mających większy priorytet niż on.
priorytet procesora jest zakodowany w kilku bitach PS (rejestr stanu procesu). Można go zmienić za pomocą instrukcji programu, które zapisują się do PS. Procesor jest w trybie nadzorowanym tylko podczas wykonywania procedur systemu operacyjnego. Przełącza się w tryb użytkownika przed wykonaniem programów aplikacji.
Uwaga czytelniku! Nie przestawaj się uczyć. Zdobądź wszystkie ważne koncepcje teorii CS dla SDE wywiady z kursem teorii CS w cenie przyjaznej dla studentów i przygotuj się na branżę.