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
Zdarzenie Z1
z procedury
P1 - Procedura
Przerwanie
obslugi
obslugi
przerwania
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 Z2
Przyjecie obslugi
przerwania
Z2
Obsluga
Obsluga
przerwania
przerwania
P0 - Proces
Z1
Z2
glówny
P0
P0
Dwa przerwania obsługiwane w systemie jednopoziomowym Obsluga
przerwania
Z1
Obsluga
zawieszona
przerwania
Zdarzenie Z1
Zdarzenie Z2
Z1
wznowiona
Obsluga
Obsluga
Kontynuacja
przerwania
przerwania
obslugi
Z1
Z2
przerwania
P0
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 procedura
wątek obsługi
obsługi
wątek
przerwania
Czas
przerwania
event
przerwanie
ISR
odblokowanie
wątku
Procedura obsługi przerwania wykonuje część pracy a następnie odblokowuje wątek
wątek obsługi
wątek
przerwania
event
przerwanie
odblokowanie
wątku
Czas
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ę urządzenie nazywane kontrolerem przerwań ( ang. Interrupt Controller) RAM
Procedura
Linie
obslugi
NMI
przerwan
P1
przerwania
Urzadzenie
IRQ0
IRQ1
255
INTA
Kontroler
VH7
IRQi
INT
Procesor
przerwan
INT
Tablica
V
Kontroler
wektorów
VH1
IRQ7
urzadzenia
przerwan
VH0
IMR
CR
0
V = B + i
Baza B
i - numer lini IRQ
kontrolera
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
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
IRQ Wektor
Urządzenie
Master Slave HEX
0
8
Timer – generuje przerwania
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 przerwania w komputerze AT
PDF created with pdfFactory trial version www.pdffactory.com
PDF created with pdfFactory trial version www.pdffactory.com