KWALIFIKACJA ELM2 + ELM5 - CZERWIEC 2008

PYTANIE NR 18.
Przerwanie w procesorze to
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Przerwanie to mechanizm, w którym procesor chwilowo wstrzymuje wykonywanie bieżącego programu, aby obsłużyć ważne zdarzenie (zwykle o wyższym priorytecie). Po zakończeniu procedury obsługi przerwania procesor wraca do przerwanego miejsca programu. Nie jest to uśpienie ani awaryjne zatrzymanie po błędzie.

Pełne wyjaśnienie:

Przerwanie w procesorze to mechanizm asynchronicznej reakcji na zdarzenie: procesor na krótko przerywa wykonywanie bieżących instrukcji, zapisuje niezbędny kontekst (np. część rejestrów/stan), a następnie uruchamia procedurę obsługi przerwania. Dzięki temu CPU może szybko zareagować na zdarzenia wymagające natychmiastowej obsługi, często z uwzględnieniem priorytetów.

Odpowiedź "zawieszenie obsługiwanego programu, aby wykonać zadanie o wyższym priorytecie" opisuje istotę przerwania: czasowe wstrzymanie bieżącego kodu na rzecz obsługi zdarzenia. W praktyce takim "zadaniem" jest procedura obsługi przerwania wywołana przez sprzęt lub system.

  • "wejście procesora w stan uśpienia po wykryciu błędnych danych wejściowych" jest błędne, bo uśpienie to tryb oszczędzania energii, a nie definicja przerwania; ponadto przerwania często właśnie wybudzają procesor.
  • "zamiana aktualnie obsługiwanego programu na inne o tym samym priorytecie" opisuje raczej przełączanie zadań (planowanie) w systemie operacyjnym, a nie klasyczny mechanizm przerwania, który ma obsłużyć zdarzenie i wrócić do miejsca przerwania.
  • "zatrzymanie działania programu po napotkaniu błędu w oprogramowaniu" dotyczy awarii/wyjątku lub błędu wykonania; przerwanie nie oznacza trwałego zakończenia programu, tylko krótką zmianę przepływu sterowania.

W nauce do egzaminu warto odróżniać: przerwanie (obsługa zdarzeń, priorytety, powrót do programu) od uśpienia (tryb zasilania), od przełączania kontekstu (zarządzanie zadaniami) oraz od błędu/wyjątku (nieprawidłowe wykonanie instrukcji lub stan programu).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Przerwanie to mechanizm, w którym procesor chwilowo przestaje wykonywać bieżący kod, aby obsłużyć zdarzenie (np. timer, wejście zewnętrzne, transmisję). Po wykonaniu procedury obsługi przerwania zwykle wraca do miejsca, w którym przerwał program.
Priorytety pozwalają zdecydować, które zdarzenie jest ważniejsze, gdy wystąpi kilka naraz. Zdarzenia krytyczne (np. bezpieczeństwo, precyzyjne timery) mogą przerwać obsługę mniej istotnych, aby system reagował w odpowiednim czasie.
Po zgłoszeniu przerwania procesor zapisuje minimalny kontekst (stan wykonania), przechodzi pod adres procedury obsługi i wykonuje jej instrukcje. Na końcu wykonywana jest instrukcja powrotu z przerwania, która przywraca stan i kontynuuje przerwany program.
Uśpienie to tryb oszczędzania energii, w którym procesor ogranicza aktywność. Przerwanie to mechanizm obsługi zdarzeń i zmiany przepływu sterowania. W praktyce przerwanie często służy do wybudzenia procesora z uśpienia.
Nie. Przerwania najczęściej nie są błędem, tylko normalnym sposobem reagowania na zdarzenia sprzętowe (timer, komunikacja, wejścia). Błędy programu wiążą się raczej z wyjątkami lub awariami, które mogą zatrzymać program lub wymagać obsługi błędu.
Typowe źródła to: przepełnienie timera, zmiana stanu na pinie wejściowym, zakończenie transmisji UART/SPI/I2C, zdarzenia z ADC oraz przerwania systemowe. Dzięki nim nie trzeba stale odpytywać peryferiów w pętli głównej.
Przerwania są lepsze, gdy zdarzenia są rzadkie, a reakcja musi być szybka lub przewidywalna czasowo. Odpytywanie bywa prostsze, ale marnuje czas procesora i może powodować opóźnienia w reakcji, jeśli pętla główna jest długa.
Najczęstsze błędy to: zbyt długie procedury obsługi (blokowanie systemu), brak ochrony współdzielonych danych (warunki wyścigu), niewłaściwe czyszczenie flag przerwań oraz mylenie przerwań z planowaniem zadań w systemie operacyjnym.
Maskowanie to czasowe blokowanie wybranych przerwań (lub wszystkich), aby nie przerywały krytycznego fragmentu kodu. Stosuje się je ostrożnie, bo zbyt długie maskowanie może powodować utratę zdarzeń lub pogorszenie reakcji czasowej.
Opanuj definicję przerwania, sens priorytetów i ideę "zapisz kontekst → obsłuż zdarzenie → wróć do programu". Ćwicz rozróżnianie przerwania od uśpienia, błędu programu i przełączania zadań. Pomaga też analiza prostych przykładów z timerem i GPIO.
info

To pytanie poprawnie rozwiązuje 69% zdających egzamin. średnie

Według specjalistów z branży: "Przerwanie to mechanizm, w którym procesor chwilowo wstrzymuje wykonywanie bieżącego programu, aby obsłużyć ważne zdarzenie (zwykle o wyższym priorytecie)."

Źródła:

  • Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, rozdział "Interrupt and Exception Handling" (aktualne wydania producenta)
  • ARM Architecture Reference Manual (np. ARMv7-A/R lub ARMv8-A), część dotycząca wyjątków i przerwań (Exceptions/Interrupts) – dokumentacja ARM
  • David A. Patterson, John L. Hennessy, "Computer Organization and Design", rozdziały o obsłudze wyjątków/przerwań (Exception Handling/Interrupts)

Materiały:

  • Podręczniki z architektury komputerów i mikrokontrolerów (rozdziały o przerwaniach)
  • Dokumentacje mikrokontrolerów (opis kontrolera przerwań i wektorów)
  • Ćwiczenia laboratoryjne: konfiguracja przerwań timera i zewnętrznych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego