Zalecane, 2022

Wybór Redakcji

Różnica między przerwaniem i odpytywaniem w systemie operacyjnym

Mamy wiele urządzeń zewnętrznych podłączonych do procesora, takich jak mysz, klawiatura, skaner, drukarka itp. Te urządzenia również wymagają uwagi procesora. Załóżmy, że procesor jest zajęty wyświetlaniem pliku PDF i kliknięciem ikony okna odtwarzacza multimedialnego na pulpicie. Chociaż procesor nie ma pojęcia, kiedy wystąpi takie zdarzenie, ale musi odpowiadać na takie wejścia z urządzeń I / O. Przerwanie i odpytywanie to dwa sposoby radzenia sobie z zdarzeniami generowanymi przez urządzenia, które mogą wystąpić w dowolnym momencie, gdy procesor jest zajęty wykonywaniem innego procesu.

Odpytywanie i przerywanie pozwalają CPU zatrzymać to, co aktualnie robi i odpowiedzieć na ważniejsze zadanie. Odpytywanie i przerywanie różnią się od siebie pod wieloma względami. Ale podstawową kwestią odróżniającą odpytywanie od przerwania jest to, że w procesie odpytywania procesor kontynuuje sprawdzanie urządzeń wejścia / wyjścia w regularnych odstępach czasu, czy wymaga obsługi procesora, podczas gdy w przerywaniu, urządzenie we / wy przerywa procesor i mówi procesorowi, że potrzebuje usługi procesora . Omówiłem niektóre różnice pomiędzy Przerwaniem i odpytywaniem w poniższej tabeli porównawczej, proszę spojrzeć.

Wykres porównania

Podstawa do porównaniaPrzerwaćAnkieta
PodstawowyUrządzenie powiadamia procesor, że potrzebuje uwagi procesora.CPU stale sprawdza stan urządzenia, czy potrzebuje on uwagi procesora.
MechanizmPrzerwanie jest mechanizmem sprzętowym.Odpytywanie jest protokołem.
SerwisowanieObsługa przerwań obsługuje urządzenie.CPU obsługuje urządzenie.
WskazanieLinia żądania przerwania wskazuje, że urządzenie wymaga obsługi.Gotowy do użycia bit wskazuje, że urządzenie wymaga serwisowania.
procesorProcesor jest zakłócany tylko wtedy, gdy urządzenie wymaga obsługi, co oszczędza cykle procesora.Procesor musi poczekać i sprawdzić, czy urządzenie wymaga serwisowania, co powoduje utratę wielu cykli procesora.
WystępowaniePrzerwanie może nastąpić w dowolnym momencie.Procesor odpytuje urządzenia w regularnych odstępach czasu.
WydajnośćPrzerwanie staje się nieefektywne, gdy urządzenia ciągle przerywają procesor.
Odpytywanie staje się nieefektywne, gdy CPU rzadko znajduje urządzenie gotowe do pracy.
PrzykładNiech dzwoni dzwonek, a następnie otwórz drzwi, aby sprawdzić, kto przyszedł.Ciągle otwieraj drzwi, aby sprawdzić, czy ktoś przyszedł.

Definicja przerywania

Przerwanie to mechanizm sprzętowy, który umożliwia procesorowi wykrycie, że urządzenie wymaga uwagi. CPU ma linię żądania przerwania przewodowego, która jest sprawdzana przez CPU po wykonaniu każdej instrukcji. Kiedy procesor wykrywa sygnał przerwania na linii żądania przerwania, CPU zatrzymuje aktualnie wykonywane zadanie i odpowiada na przerwanie wysyłane przez urządzenie I / O przekazując sterowanie do obsługi przerwań . Obsługa przerwań rozwiązuje przerwanie poprzez obsługę urządzenia.

Chociaż procesor nie jest świadomy, kiedy wystąpi przerwanie, które może wystąpić w dowolnym momencie, ale musi reagować na przerwanie, gdy tylko wystąpi.

Kiedy przerywnik zakończy wykonywanie przerwania, to CPU wznawia wykonywanie zadania, które zostało zatrzymane w celu odparcia przerwania. Oprogramowanie, sprzęt, użytkownik, niektóre błędy w programie itp. Mogą również generować przerwanie. Przerwania w obsłudze natury procesora prowadzą do wielozadaniowości, tzn. Użytkownik może wykonywać wiele różnych zadań w tym samym czasie.

Jeśli do procesora zostanie wysłanych więcej niż jedno przerwanie, obsługa przerwań pomaga w zarządzaniu przerwaniami, które czekają na przetworzenie. Gdy program obsługi przerwania zostanie wywołany przez odbiór przerwania, priorytetowo traktuje przerwań oczekujących na przetwarzanie przez procesor i umieszcza je w kolejce, aby uzyskać serwis.

Definicja sondowania

Jak widzieliśmy w przerwaniach, dane wejściowe z urządzeń wejścia / wyjścia mogą w dowolnym momencie uzyskać żądanie procesora do jego przetworzenia. Odpytywanie to protokół, który powiadamia procesor, na który urządzenie potrzebuje uwagi. W przeciwieństwie do przerwania, gdy urządzenie mówi procesorowi, że potrzebuje przetwarzania procesora, w procesie odpytywania CPU ciągle pyta urządzenie we / wy, czy potrzebuje przetwarzania procesora.

CPU nieustannie testuje każde podłączone do niego urządzenie w celu wykrycia, czy jakiekolwiek urządzenie wymaga uwagi procesora. Każde urządzenie ma gotowy do komendy bit, który wskazuje stan tego urządzenia, tj. Czy ma jakieś polecenie do wykonania przez CPU, czy nie. Jeśli bit polecenia jest ustawiony na 1, to ma pewne polecenie do wykonania, jeśli bit jest równy 0, to nie ma żadnych poleceń. Procesor ma ruchliwy bit, który wskazuje status procesora, czy jest zajęty, czy nie. Jeśli bit zajęty jest ustawiony na 1, to jest on zajęty wykonywaniem polecenia jakiegoś urządzenia, inaczej jest to 0 .

Algorytm do odpytywania

  • Kiedy urządzenie ma jakieś polecenie do wykonania przez CPU, ciągle sprawdza bit zajętości CPU, aż stanie się czysty (0).
  • Gdy bit ruchliwości staje się czysty, urządzenie ustawia bit zapisu w swoim rejestrze poleceń i zapisuje bajt w rejestrze danych wyjściowych.
  • Teraz urządzenie ustawia (1) bit gotowy do uruchomienia.
  • Gdy procesor sprawdza bit polecenia gotowy do urządzenia i znajduje go (1), ustawia (1) swój zajęty bit.
  • CPU odczytuje następnie rejestr poleceń urządzenia i wykonuje polecenie urządzenia.
  • Po wykonaniu polecenia, CPU wyczyści (0) gotowy do uruchomienia bit, bit błędu urządzenia, aby wskazać pomyślne wykonanie polecenia urządzenia, a następnie wyczyści (0) swój zajęty bit, aby wskazać, że procesor jest wolny do wykonania polecenie innego urządzenia.

Kluczowe różnice między przerwaniem i odpytywaniem w systemie operacyjnym

  1. W przerwaniu urządzenie powiadamia procesor, który potrzebuje obsługi, podczas gdy w procesie odpytywania procesora wielokrotnie sprawdza, czy urządzenie wymaga naprawy.
  2. Przerwanie jest mechanizmem sprzętowym , ponieważ procesor ma przewód, linię żądania przerwania, która sygnalizuje, że wystąpiło przerwanie. Z drugiej strony, Polling to protokół, który ciągle sprawdza bity kontrolne, aby powiadomić, czy urządzenie ma coś do wykonania.
  3. Przerwanie obsługi obsługuje przerwań generowanych przez urządzenia. Z drugiej strony, podczas odpytywania, CPU obsługuje urządzenie, gdy jest ono potrzebne.
  4. Przerwania są sygnalizowane przez linię żądania przerwania . Jednak bit " Gotowy na polecenia" oznacza, że ​​urządzenie wymaga serwisowania.
  5. W przerwaniach CPU jest zakłócany tylko wtedy, gdy jakiekolwiek urządzenie je przerywa. Z drugiej strony, podczas odpytywania, CPU marnuje wiele cykli procesora, powtarzając kilkakrotnie kontrolę gotowości każdego urządzenia.
  6. Przerwanie może nastąpić w dowolnym momencie, podczas gdy procesor kontynuuje odpytywanie urządzenia w regularnych odstępach czasu .
  7. Odpytywanie staje się nieefektywne, gdy procesor kontynuuje odpytywanie urządzenia i rzadko znajduje jakiekolwiek urządzenie gotowe do serwisowania. Z drugiej strony, przerywanie staje się nieefektywne, gdy urządzenia ciągle przerywają procesor.

Wniosek:

Zarówno odpytywanie, jak i przerywanie są wydajne w obsłudze urządzeń wejścia / wyjścia. Ale mogą one stać się nieefektywne w pewnym stanie, jak omówiono powyżej.

Top