Przerwanie to „niezwykłe” zdarzenie, które ma miejsce i musi zostać natychmiast przetworzone , bez względu na wszystko, co się dzieje. W cudzysłowie mówię „nietypowy”, ponieważ niekoniecznie są one nieoczekiwane lub złe, ale „nietypowe” z punktu widzenia procesora, ponieważ „po prostu się zdarzają”, gdy jest zajęty wykonywaniem kodu, który może nie być powiązany.
Procesor ma pewien mechanizm nasłuchiwania przerwań i pewien sposób skonfigurowania „co robić”, gdy występują różnego rodzaju przerwań. Pozwala to systemowi operacyjnemu ustalić, że będzie powiadamiany, gdy urządzenia wykonują różne czynności (w tym najważniejszy zegar sprzętowy, który po prostu generuje przerwania w regularnych odstępach czasu). Poprzez konfigurację obsługi przerwań CPU, wyznaczony kod w systemie operacyjnym przejmie kontrolę za każdym razem, gdy wystąpią przerwania.
Komputer jest w bardzo nieprzyjemnym stanie (dla programisty aplikacji), gdy zaczyna się obsługa programu obsługi przerwań; komputer był zajęty robieniem czegoś innego (co może być czymkolwiek ), a teraz system operacyjny został powiadomiony, że „coś się wydarzyło”. Musi gromadzić wszelkie inne informacje potrzebne do obsługi przerwania z dowolnego miejsca w maszynie, w którym powinien leżeć i wykonywać wszelkie wymagane operacje bez zakłócania działania „procesora”. Jeśli system operacyjny chce zmienić, który proces aplikacji jest aktualnie uruchomiony, będzie musiał zapisać wystarczającą ilość kontekstu, aby móc go później przywrócić (ponownie, bez zakłócania tego kontekstu), a następnie załadować inny kontekst, a następnie pozwolić procesorowi wznowić normalne działanie wykonanie w tym kontekście.
Jak wspomniano, przerwania służą do otrzymywania powiadomień z urządzeń (jedyną alternatywą byłoby ich okresowe sprawdzanie), śledzenia czasu i uzyskania gwarantowanej możliwości odzyskania kontroli nad procesem aplikacji (w celu przełączenia, która aplikacja jest uruchomiona) , odzyskiwanie z procesów aplikacji wykonujących nieprawidłowe instrukcje, a także w celu umożliwienia aplikacjom wysyłania żądań systemu operacyjnego. Te ostatnie są nazywane wywołaniami systemowymi. Aby aplikacje nie zepsuły komputera i siebie nawzajem, zwykle działają z maszyną w „trybie użytkownika”, co uniemożliwia aplikacji wykonywanie innych czynności poza odczytaniem i zapisaniem (wirtualnej) pamięci już do niej przydzielonej. Oznacza to, że zrobić wszystkow przeciwnym razie (odczyt / zapis plików, prośba o więcej pamięci, dostęp do urządzeń itp.) aplikacja musi wykonać wywołanie systemowe; robi to w zasadzie, pozostawiając informacje o tym, co chce zrobić gdzieś, o czym wie, że system operacyjny będzie ich szukał, a następnie wykonując instrukcje procesora, które powodują odpowiednie przerwanie. System operacyjny może następnie zobaczyć, co aplikacja próbowała zrobić, i ustalić, czy powinien wykonać to żądanie. Ta gwarancja, że system operacyjny będzie zaangażowany w próbę wykonania dowolnego procesu, który ma wpływ na cokolwiek poza procesem, jest jedynym sposobem na egzekwowanie zasad dostępu.
Zasadniczo tak, system operacyjny napędzany jest przerwaniami. „Abstrakcyjny” system operacyjny uruchamia maszynę w stan „normalnej pracy”, aw pewnym momencie przekazuje kontrolę nad „normalnym” procesem. W normalnych okolicznościach system operacyjny odzyska kontrolę tylko przez obsługę przerwań; ale ponieważ nic nie dzieje się bez przerwy, system operacyjny w zasadzie kontroluje wszystko przez cały czas.