Co to jest proces „Przerwania systemu” w systemie Windows?

16

Mój system to notebook z procesorem AMD A10 5750m, kartą graficzną R9 M290X, 8 GB, 1 TB. Zauważyłem zawsze aktywny proces o nazwie „Przerwania systemu”, który w tym momencie zużywa średnio 1,5% procesora.

Szukałem wszędzie, ale nie znalazłem nic na temat tego procesu. Znalazłem ludzi, których proces zużywa ekstremalnie wysokie wartości procesora, co nie jest moim przypadkiem. Jest to normalne? Czy będzie cały czas aktywny, zużywa (nawet) minimalną część procesora?

Daniel
źródło

Odpowiedzi:

29

„Przerwania systemowe” nie są procesem w tradycyjnym tego słowa znaczeniu, ale próbują wyjaśnić użytkownikowi, że komputer wydaje 1,5% zasobów procesora na przetwarzanie żądań przerwania. Przerwania występują poniżej poziomu systemu operacyjnego, więc nie są powiązane z żadnym konkretnym procesem.

Istnieją przerwania (IRQ) , dzięki którym komponenty sprzętowe systemu mogą powiedzieć procesorowi takie rzeczy, jak „wystąpił błąd” lub „żądane dane są już dostępne” lub „to urządzenie chce wysłać dane”. Za każdym razem, gdy urządzenie lub oprogramowanie musi powiedzieć procesorowi coś o wykonywanym zadaniu lub poinstruować procesor, aby coś zrobił, wywołuje przerwanie, które procesor odbiera i obsługuje . Kiedy tak się dzieje, procesor natychmiast zatrzymuje to, co robi, i przetwarza przerwanie.

Gdy są postrzegane jako proces, kolejnym powiązanym elementem są odroczone wywołania procedur (DPC) , które są funkcjami systemu operacyjnego wywoływanymi bezpośrednio lub pośrednio w odpowiedzi na podniesione przerwanie, w sposób asynchroniczny. Przez dodanie Przerwań systemowych i przetwarzania DPC można ogólnie oszacować ilość używanych zasobów w odpowiedzi na obsługę przerwań IRQ.

Są dobre i złe. Jeśli spędzasz dużo czasu na przetwarzaniu przerwań, istnieje duże prawdopodobieństwo, że awaria co najmniej jednego sprzętu. Z drugiej strony wiele urządzeń używa przerwań IRQ do pomiaru czasu i innych cennych celów. Na przykład magistrala PCI wykorzystuje przerwania IRQ do kontrolowania, które urządzenie używa magistrali w danym momencie, dzięki czemu każde urządzenie efektywnie współdzieli szynę.

Przy 1,5% wszystko wydaje mi się normalne.

Frank Thomas
źródło
1
Dziękuję za odpowiedź. Jaki procent zużycia powinien mnie martwić? Gdybym miał problem, skąd mam wiedzieć, który element sprzętowy ulega awarii?
Daniel
naprawdę zależy od częstotliwości twojego procesora. Miałem systemy, które tylko siedziały na 1,5, a inne na mniej niż 0,10 - 0,20. Byłbym naprawdę zmartwiony, gdybyś używał więcej niż 10% na nowoczesnej maszynie.
Frank Thomas
Mój procesor działa z częstotliwością 2,5 GHz. To dziwne, czasami wynosi 1,5% (jak powiedziałem: średnia) i na przykład teraz wynosi 0,3%, ale widziałem to w 5%. Przyjmę radę JakeGoulda i nie będę już nad tym zastanawiał ... mój komputer jest w porządku :) A teraz wiem o tym trochę więcej. Dzięki!!
Daniel
2
w przeważającej części tak nie jest, chyba że istnieje problem sprzętowy, który zdiagnozujesz i naprawisz. możesz uniknąć woluminów USB dla dysków twardych (zamiast instalować dysk na porcie SATA), ponieważ USB używa przerwań do udostępniania magistrali, ale inne niż tego rodzaju rzeczy, chyba że coś jest nie tak, potrzebujesz przerwań. Nie są konfigurowalne przez użytkownika, może poza adresami, z których korzysta każde urządzenie, i to wszystko, co można zrobić 20 lat temu.
Frank Thomas
2
@Devilathor, niewiele. Cała architektura komputerów oparta jest na przerwaniach, a wymuszone ograniczenie ich wykorzystania przez procesor (jeśli to możliwe) po prostu zawiesiłoby lub spowolniło cały system. Jedynym bezpiecznym sposobem na zmniejszenie liczby przerwań jest zmniejszenie liczby części sprzętowych wysyłających przerwania do procesora. W tym celu możesz usunąć / odłączyć / wyłączyć cały niepotrzebny sprzęt i sprawdzić, czy to robi różnicę. Jeśli niektóre urządzenia nie są usuwalne, poszukaj ustawień, które spowodowałyby mniej „odświeżania” z nich (tryb gotowości, jeśli to możliwe).
Hoki,
4

„Przerwania systemu” - znane również jako „przerwy” i „przerwania IRQ” - to procesy na poziomie systemu operacyjnego, które zarządzają sposobem komunikacji sprzętu z systemem. Jak wyjaśniono tutaj na Wikipedii :

W programowaniu systemów przerwanie to sygnał do procesora emitowany przez sprzęt lub oprogramowanie, wskazujący zdarzenie wymagające natychmiastowej uwagi. Przerwanie ostrzega procesor o stanie o wysokim priorytecie, wymagającym przerwania bieżącego kodu wykonywanego przez procesor. Procesor odpowiada, zawieszając bieżące działania, zapisując swój stan i wykonując funkcję zwaną modułem obsługi przerwań (lub procedurą obsługi przerwań ISR) w celu obsługi zdarzenia. Ta przerwa jest tymczasowa i po zakończeniu procedury obsługi przerwania procesor wznawia normalne działania.

Jest to więc niezbędna część podstawowej konfiguracji systemu. A jeśli użycie procesora wystrzeli przez dach, oznacza to po prostu, że występuje problem z komunikacją systemu ze sprzętem.

JakeGould
źródło
Dzięki. Jak mogę monitorować, jakie zdarzenia powodują te przerwy? Jeśli coś jest nie tak, powinien istnieć sposób, aby dowiedzieć się, co się dzieje, prawda?
Daniel
1
Nie w 100% pewny na komputerach z systemem Windows. Ale nigdy nie słyszałem o żadnych administratorach systemu Windows, o których tyle pracowałem. Być może zastanawiasz się nad tym. Więcej informacji od Microsoft. technet.microsoft.com/en-us/library/cc940374.aspx
JakeGould
2
generalnie nie można wyświetlić informacji o przerwaniu w systemie operacyjnym, ponieważ występują one poniżej poziomu systemu operacyjnego. to naprawdę nie jest duży problem, chyba że twój procesor jest naprawdę wysoki do przetwarzania IRQ lub DPC.
Frank Thomas
1
@Devilathor Cóż, jednym z powodów, dla których nie jestem już tak pewny co do przerwań, jest to, że ostatnio naprawdę sobie z nimi poradziłem - poważnie - w 1992 roku, kiedy po raz pierwszy pracowałem nad IT na 486 maszynach. A ustawienie IRQ czasami oznaczało kombinację BIOS-u i fizycznych zmian ustawień zworek. Myślę więc, że mój mózg nie ma sensu rozumieć tych rzeczy w dzisiejszych czasach, kiedy to wszystko jest naprawdę za kulisami w większości systemów.
JakeGould
1
Przerwania IRQ mają poważne znaczenie dla operacji, które nie dotyczą użytkownika. Nie obchodzi mnie, kiedy mój procesor wykonuje przełącznik kontekstowy, aby uruchomić inny wątek, podczas gdy operacja DMA dla wstrzymanego wątku czeka na asynchroniczne przerwanie wywołania zwrotnego, aby wskazać, że dane są gotowe do użycia. Takie rzeczy dzieją się dosłownie milion razy na sekundę.
Frank Thomas