PRZERWANIA
Transkrypt
PRZERWANIA
PRZERWANIA 1. Obsługa zdarzeń poprzez przerwania Obsługa przerwania polega na przerwaniu aktualnie wykonywanego procesu i wykonaniu procedury przypisanej danemu zdarzeniu gdy takie zdarzenie zajdzie. Procedura nazywa się procedurą obsługi przerwania (ang. interrupt handler). Często używany jest też skrót ISR (ang. Interrupt Service Routine). Powrót z procedury obslugi przerwania Zdarzenie Z1 Przerwanie P1 - Procedura obslugi przerwania P1 P0 - Proces glówny P0 P0 Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1 Zachodzi potrzeba rozstrzygnięcia które zdarzenie ma obsługiwane gdy wiele z nich wystąpi naraz. Istnieją tu dwie podstawowe strategie postępowania: 1. Jednopoziomowy system przerwań. 2. Priorytetowy system przerwań. Gdy za obsługę oczekuje więcej nie obsłużonych przerwań wybór przerwania do obsługi może być dokonany według różnych zasad. 1. Poszczególnym przerwaniom mogą być przypisane priorytety. 2. Przerwania mogą być obsługiwane według kolejności zgłoszeń. PDF created with pdfFactory trial version www.pdffactory.com Zdarzenie Z1 P0 - Proces glówny Zdarzenie Z2 Obsluga przerwania Z1 Przyjecie obslugi przerwania Z2 Obsluga przerwania Z2 P0 P0 Dwa przerwania obsługiwane w systemie jednopoziomowym Obsluga przerwania Z1 zawieszona Zdarzenie Z1 Zdarzenie Z2 Obsluga przerwania Z1 P0 Obsluga przerwania Z1 wznowiona Obsluga przerwania Z2 Kontynuacja obslugi przerwania Z1 P0 Dw a przerwania obsługiwane w systemie wielopoziomowym Obsługa przerwań w systemie komputerowym jest czasami blokowana przez system operacyjny. Maksymalny czas zablokowania przerwań Tdmax jest podstawową miarą jakości systemu czasu rzeczywistego. Czas Tdmax powinien być jak najkrótszy. Maksymalny czas Tmax reakcji na zdarzenie, w systemie z przerwaniami, jest równy maksymalnemu czasowi zablokowania przerwań Tdmax czyli Tmax = Tdmax . PDF created with pdfFactory trial version www.pdffactory.com Obsługa zdarzeń poprzez przerwania ma dla systemu komputerowego daleko idące konsekwencje. Istnieją dwie strategie obsługi zdarzeń poprzez przerwania: 1. Zdarzenie obsługiwane jest przez procedurę obsługi przerwania. 2. Procedura obsługi przerwania odblokowuje wątek który wykonuje obsługę zdarzenia. wątek procedura obsługi przerwania przerwanie ISR powrót z procedury obsługi przerwania Obsługa zdarzenia poprzez procedurę obsługi przerwania Czas wątek procedura obsługi przerwania wątek obsługi przerwania event ISR przerwanie odblokowanie wątku Procedura obsługi przerwania wykonuje część pracy a następnie odblokowuje wątek wątek obsługi przerwania wątek event przerwanie Czas odblokowanie wątku Przerwanie zamieniane w zdarzenie które odblokowuje wątek. PDF created with pdfFactory trial version www.pdffactory.com 2. Obsługa przerwań w komputerach typu PC Procesory serii 80x86 stosowane w komputerach PC obsługują następujące rodzaje przerwań: 1. Przerwania zewnętrzne – generowane są przez urządzenia zewnętrzne i koordynowane przez kontroler przerwań. 2. Przerwania wewnętrzne - generowane są przez układy wewnętrzne procesora i zwykle związane z naruszeniem systemu ochrony. 3. Przerwania programowe – generowane przez oprogramowanie. Procesor posiada jedną linię zgłaszania przerwania IRQ (ang. Interrupt Request). Liczba urządzeń mogących zgłosić przerwanie jest większa. Aby rozwiązać ten problem stosuje się kontrolerem przerwań (ang. Interrupt Controller) urządzenie RAM Procedura obslugi przerwania 255 Tablica wektorów przerwan VH7 VH1 VH0 Linie przerwan NMI P1 INT V Procesor 0 Baza B kontrolera nazywane INTA INT Kontroler przerwan IRQ0 IRQ1 IRQi IRQ7 IMR CR Urzadzenie Kontroler urzadzenia V=B+i i - numer lini IRQ Obsługa przerwań w komputerze PC Linia IRQ0 posiada najwyższy priorytet, Linia IRQ7 najniższy. Kontroler posiada dwa dostępne z zewnątrz 8 bitowe rejestry: 1. Rejestr poleceń CR (ang. Control Register). Do rejestru CR system wpisuje polecenia i odczytuje zeń statusy. 2. Rejestr maski IMR (ang. Interrupt Maskl Register). Rejestr IMR pozwala na zamaskowanie przyjmowania przerwań. Gdy bit i IMR jest ustawiony na 1 przerwanie IRQi będzie ignorowane. Gdy bit i ustawimy na 0 przerwanie IRQi będzie przyjmowane. PDF created with pdfFactory trial version www.pdffactory.com Funkcje kontrolera przerwań: 1. Arbitraż przerwań. 2. Maskowanie przerwań. 3. Tworzenie powiązania pomiędzy pobudzeniem linii przerwania IRQi a wektorem przerwań VHi. Gdy przerwanie IRQi zostanie przyjęte, kontroler przekazuje do procesora bajt zawierający liczbę V = B + i (baza kontrolera + numer przerwania). Na tej podstawie procesor wykonuje instrukcję INT V a zatem i procedurę obsługi przerwania IRQi . Adres procedury obsługi przerwania IRQi procesor pobiera z wektora VHi = V. IRQ Wektor IRQ Master Slave HEX 0 8 1 2 8 9 10 11 12 13 14 15 3 4 5 6 7 9 70 71 72 73 74 75 76 77 B C D E F Urządzenie Timer – generuje przerwania zegarowe Klawiatura Zegar czasu rzeczywistego RTC W kontrolerze master wejście z kontrolera slave W kontrolerze slave wolne wolne wolne wolne Koprocesor Kontroler 1 dysków IDE Kontroler 2 dysków IDE Układ transmisji szeregowej COM2 Układ transmisji szeregowej COM1 Port drukarki LPT1 Kontroler dysków elastycznych Port drukarki LPT2 Tablica linii przerwań, wektorów przerwań i urządzeń generujących przerwania w komputerze AT PDF created with pdfFactory trial version www.pdffactory.com PDF created with pdfFactory trial version www.pdffactory.com