Przerwanie
Przerwanie jest wtedy, gdy mikroprocesor robi coś, czego nie kazano mu robić z powodu rzeczy, które dzieją się poza tym, co program ma robić. Przerwania zdarzają się najczęściej, ponieważ procesor otrzymuje sygnał ze sprzętu, ale mogą one również pochodzić z oprogramowania, które jest uruchamiane wraz z programem. Wśród wielu rzeczy, które mogą powodować przerwania, są naciśnięcia klawiszy na klawiaturze, wyłączenie wbudowanego timera, transfer danych lub inne zdarzenia, które wymagają natychmiastowego działania procesora. Przerwania mogą wystąpić w każdej chwili podczas działania programu, niezależnie od tego, w którym miejscu kodu źródłowego programu się znajdują.
Poniższy wykres pokazuje, co się dzieje, gdy wywoływane jest przerwanie
Jak działają przerwania
Sprzętowe lub programowe wywołanie przerwania (znane jako żądanie przerwania, lub IRQ) jest obsługiwane przez "obsługę przerwania" lub "procedurę obsługi przerwania" (ISR) w procesorze. Umieszcza on to, co robi w danym momencie na stosie, a następnie wykonuje pewne instrukcje, które wykonują dane zadanie w imieniu systemu, co nie musi być częścią programu, który wykonuje. Po zakończeniu wykonywania instrukcji, ISR odbiera to, co umieścił na stosie i kontynuuje to, co robił przed wystąpieniem przerwania.
Wiele kontrolerów przerwań z dzisiejszych procesorów używa wektora przerwań do sortowania przerwań w oparciu o to, skąd pochodzą, między innymi. Wektor zazwyczaj zawiera kod, który musi zostać uruchomiony w momencie wystąpienia przerwania. ISRs są zazwyczaj odpowiedzialne za obsługę przerwania, a także za utrzymywanie się w stanie gotowości do pracy.
Zastosowania przerwań
- Wyzwalanie zadań w regularnych odstępach czasu
- Serwisowanie urządzenia zewnętrznego, które może nastąpić w każdej chwili
- Usuń potrzebę synchronicznego pollingu
- Wyzwalanie systemu operacyjnego (OS) do podjęcia działania
Pytania i odpowiedzi
P: Co to jest przerwanie?
O: Przerwanie to działanie podejmowane przez mikroprocesor, które nie jest częścią wykonywanego programu z powodu zdarzeń zewnętrznych.
P: Co najczęściej powoduje przerwania w procesorze?
O: Przerwania występują najczęściej w procesorze z powodu odbierania sygnałów ze sprzętu.
P: Czy przerwania mogą być powodowane przez oprogramowanie?
O: Tak, przerwania mogą być również powodowane przez oprogramowanie działające równolegle do wykonywanego programu.
P: Proszę wymienić kilka przykładów zdarzeń, które mogą spowodować przerwanie.
O: Przykłady zdarzeń, które mogą wywołać przerwanie to naciśnięcie klawisza na klawiaturze, wyłączenie timera i transfer danych.
P: Czy przerwanie jest zależne od miejsca wykonywania programu?
O: Nie, przerwania mogą wystąpić w dowolnym momencie wykonywania programu, niezależnie od tego, gdzie program znajduje się w kodzie źródłowym.
P: Czy przerwanie jest pożądanym zdarzeniem dla mikroprocesora?
O: Przerwania są zazwyczaj niepożądanymi zdarzeniami dla mikroprocesora, ponieważ zakłócają wykonywanie programu i wymagają natychmiastowej uwagi.
P: W jaki sposób mikroprocesor reaguje na przerwanie?
O: Mikroprocesor tymczasowo zawiesza wykonywany program i wykonuje procedurę obsługi przerwania (ISR), aby obsłużyć przerwanie przed powrotem do wykonywanego programu.