Różnica między przerwaniem a wyjątkiem

Różnica między przerwaniem a wyjątkiem

Przerwanie i wyjątek są dwoma różnymi pojęciami, ale są podobne w pewnym sensie, że oba powodują, że procesor zatrzymuje normalny przepływ wykonywania instrukcji w celu wykonania innego programu w przestrzeni jądra, aby je obsłużyć. Kluczową różnicą jest to, jak radzą sobie z nieoczekiwanymi zdarzeniami, które występują gdzieś w systemie, procesorze lub w samym programie.

Przerywać

Przerwanie to sygnał wysłany do procesora z urządzeń zewnętrznych podłączonych do komputera lub programu z systemu, który wymaga od systemu operacyjnego interweniowania w trwającym procesie. Przerwania, jak sama nazwa wskazuje, to nagle zdarzenia, które zatrzymują normalny przepływ wykonywania instrukcji. Skłania system operacyjny do natychmiastowego podjęcia działań na temat tego, co dalej. Te nieoczekiwane zdarzenia są zwykle powiązane z urządzeniem we/wy, które głównie dotyczy świata zewnętrznego. Na przykład, po naciśnięciu klawisza na klawiaturze lub przesuwaniu myszy, uruchamia przerywające sprzęt, które powodują, że procesor odczytuje klawisze lub ruch myszy. Tak więc, gdy nastąpi przerwanie, procesor prowadzi specjalną „procedurę przerywania przerywania” lub „przerywnika”, aby zająć się wydarzeniem, które spowodowało to przede wszystkim. Kontrola jest przenoszona do systemu operacyjnego, gdy tylko nastąpi przerwanie, co skłoniło do natychmiastowego podjęcia działań. Przerwy są priorytetowo traktowane, co oznacza, że ​​przerwania z wysokim priorytetem wymagają natychmiastowej uwagi i należy je najpierw załatwić.

Wyjątek

Termin wyjątek jest krótki dla wyjątkowych zdarzeń i odnosi się do nieoczekiwanych zdarzeń, które istnieją gdzieś w systemie, procesorze lub w ramach programu, który wymaga uwagi procesora. Wyjątki, podobnie jak przerwania, zakłócają normalny przepływ instrukcji, ale występują podczas wykonywania programu, które są wyjątkowe i których nie można obsłużyć w samym programie. Na przykład, jeśli nakazasz procesorowi podzielenie liczby przez zero, da on wyjątek podziału, powodując, że komputer zatrzymuje obliczenia lub wyświetli komunikat o błędzie. Gdy wystąpi wyjątek, procesor przerywa trwający proces i natychmiast odpowiada na wyjątek, wywołując określoną funkcję obsługi wyjątków, w zależności od rodzaju wykonania. Wyjątki można ogólnie zaklasyfikować jako wyjątki wykryte przez procesor i zaprogramowane wyjątki. Ten pierwszy występuje, gdy procesor wykrywa jakakolwiek anomalia podczas wykonywania instrukcji, podczas gdy drugi jest generowany na żądanie programisty.

Różnica między przerwaniem a wyjątkiem

Definicja

- Przerwania, jak sugeruje nazwa to nieoczekiwane zdarzenia, które zatrzymują normalny przepływ wykonywania instrukcji, zmieniając sekwencję instrukcji wykonanych przez procesor. Kontrola jest przenoszona do systemu operacyjnego, gdy tylko nastąpi przerwanie, co skłoniło do natychmiastowego podjęcia działań. Z drugiej strony wyjątki to wyjątkowe zdarzenia, które zakłócają normalny przepływ instrukcji, ale występują podczas wykonywania programu, które są wyjątkowe i których nie można obsłużyć w samym programie. Informacje o wyjątku, w tym jego źródło i jego typ, są przechowywane w obiekcie zwanym obiektem wyjątkowym.

Źródło

- Po naciśnięciu klawisza na klawiaturze lub myszy, uruchamia przerwy sprzętowe, które skłoniły procesor do odczytania na klawisze lub ruch myszy. Przerwania oprogramowania mogą być wywoływane przez błędy realizacji programu i często nazywane są wyjątkami. Wyjątki są generowane gdzieś w systemie, procesorze lub w ramach programu, który wymaga uwagi procesora. Na przykład, jeśli nakazasz procesorowi podzielenie liczby przez zero, da on wyjątek podziału, powodując, że komputer zatrzymuje obliczenia lub wyświetli komunikat o błędzie.

Typ

- Przerwania można ogólnie klasyfikować jako synchroniczne i asynchroniczne przerwania. Synchroniczne przerwania są wyzwalane za każdym razem, gdy instrukcja jest wykonywana przez procesor i są nazywane synchronicznym, ponieważ procesor wydaje je dopiero po zakończeniu wykonania instrukcji. Przerwanie asynchroniczne występują, gdy zewnętrzna anomalia przerywa procesor. Wyjątki można ogólnie zaklasyfikować jako wyjątki wykryte przez procesor i zaprogramowane wyjątki. Ten pierwszy występuje, gdy procesor wykrywa jakakolwiek anomalia podczas wykonywania instrukcji, podczas gdy drugi jest generowany na żądanie programisty.

Obsługiwanie

- Przerwanie jest klasą wyjątku, a wyjątek jest podzielony głównie na cztery klasy: przerwanie, usterka, pułapka i aborcja. Zarówno przerwania i wyjątki nagle zwiększają prądowy przepływ wykonywania instrukcji. Przerwania są priorytetowe, co oznacza, że ​​przerwania o wysokim priorytecie wymagają natychmiastowej uwagi i są obsługiwane jako pierwsze. Po wykryciu przerwania lub wyjątku procesor wykonał przerywnik lub obsługę wyjątków podczas zawieszenia trwającego procesu. Procesor wznawia kontrolę przerwanego procesu, gdy tylko wykonanie modułu obsługi.

Przerwanie vs. Wyjątek: wykres porównawczy

Streszczenie

Zarówno przerwania, jak i wyjątki są nieoczekiwanymi zdarzeniami, które występują gdzieś w systemie, procesorze lub w ramach programu, który wymaga natychmiastowej uwagi procesora. Oba nagle wprowadzają bieżący przepływ wykonywania instrukcji. Po wykryciu przerwania lub wyjątku procesor wykonał przerywnik lub obsługę wyjątków podczas zawieszenia trwającego procesu. Procesor wznawia kontrolę przerwanego procesu, gdy tylko wykonanie modułu obsługi. Jeśli istnieje wiele przerwań, przerwanie o najwyższym priorytecie powinny być najpierw uchwytami. Jedną kluczową różnicą między tymi dwoma warunkami jest to, że przerwania są wywoływane przez zdarzenia zewnętrzne, podczas gdy wyjątki są uruchamiane z procesora.