PRZERWANIA 1. Obsługa zdarzeń poprzez Obsługa polega na przerwaniu aktualnie wykonywanego procesu i wykonaniu procedury przypisanej danemu zdarzeniu gdy takie zdarzenie zajdzie. Procedura nazywa się procedurą obsługi (ang. interrupt handler). Często używany jest też skrót ISR (ang. Interrupt Service Routine). Zdarzenie Przerwanie P1 - Procedura P1 Powrót z procedury - Proces glówny Obsługa zdarzenia poprzez procedurę obsługi 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 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ń.
Zdarzenie Zdarzenie Z2 Przyjecie Z2 - Proces glówny Z2 Dwa obsługiwane w systemie jednopoziomowym Zdarzenie Zdarzenie Z2 zawieszona wznowiona Z2 Kontynuacja a obsługiwane w systemie wielopoziomowym Dw 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 mi, jest równy maksymalnemu czasowi zablokowania przerwań Tdmax czyli Tmax = Tdmax.
Obsługa zdarzeń poprzez ma dla systemu komputerowego daleko idące konsekwencje. Istnieją dwie strategie obsługi zdarzeń poprzez : 1. Zdarzenie obsługiwane jest przez procedurę obsługi. 2. Procedura obsługi odblokowuje wątek który wykonuje obsługę zdarzenia. wątek procedura obsługi przerwanie ISR powrót z procedury obsługi Obsługa zdarzenia poprzez procedurę obsługi Czas wątek procedura obsługi wątek obsługi ISR event przerwanie odblokowanie wątku Procedura obsługi wykonuje część pracy a następnie odblokowuje wątek wątek wątek obsługi event przerwanie Czas odblokowanie wątku Przerwanie zamieniane w zdarzenie które odblokowuje wątek.
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 IRQ (ang. Interrupt Request). Liczba urządzeń mogących zgłosić przerwanie jest większa. Aby rozwiązać ten problem stosuje się urządzenie nazywane kontrolerem przerwań (ang. Interrupt Controller) Procedura Tablica wektorów przerwan 255 RAM P1 VH7 VH1 VH0 INT V NMI Procesor INTA INT Kontroler przerwan IMR CR Linie przerwan IRQ0 IRQ1 IRQi IRQ7 Urzadzenie Kontroler urzadzenia 0 Baza B kontrolera 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.
Funkcje kontrolera przerwań: 1. Arbitraż przerwań. 2. Maskowanie przerwań. 3. Tworzenie powiązania pomiędzy pobudzeniem linii 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 ). Na tej podstawie procesor wykonuje instrukcję INT V a zatem i procedurę obsługi IRQi. Adres procedury obsługi IRQi procesor pobiera z wektora VHi = V. IRQ IRQ Wektor Urządzenie Master Slave HEX 0 8 Timer generuje zegarowe 1 9 Klawiatura 8 70 Zegar czasu rzeczywistego RTC 2 9 71 W kontrolerze master wejście z kontrolera slave W kontrolerze slave wolne 10 72 wolne 11 73 wolne 12 74 wolne 13 75 Koprocesor 14 76 Kontroler 1 dysków IDE 15 77 Kontroler 2 dysków IDE 3 B Układ transmisji szeregowej COM2 4 C Układ transmisji szeregowej COM1 5 D Port drukarki LPT1 6 E Kontroler dysków elastycznych 7 F Port drukarki LPT2 Tablica linii przerwań, wektorów przerwań i urządzeń generujących w komputerze AT