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