3071579115

3071579115



Obsługa przerwania szybkiego - pseudokod

irq(irq_num,irq_controller)

{

SAVE_MOST // zapisz na stosie większość rejestry procesora. ++intr_count; // zwiększ liczbę zagnieżdżonych przerwań do_irq(irq_num); // wywołaj handler.

ACK(irq_controller) // potwierdź kontrolerowi przerwań fakt // obsłużenia tego przerwania.

—intr_count;

RESTORE_MOST // odtwórz rejestry procesora

•    Aby maksymalnie przyspieszyć wykonanie handlera nie są zachowane wszystkie rejestry.

•    Zauważmy brak skoku do ret_from_sys_cal

Wojciech Kwedlo, Systemy Operacyjne I


-10-


Wydzial Informatyki




Wyszukiwarka

Podobne podstrony:
Obsługa przerwania wolnego - pseudokod irq(irq_num,irq_controller) { SAVE_ALL // zapisz na stosie
Handler obsługi przerwania void handler(int irq, void * dev_id, struct pt_regs *) Znaczenie parametr
img024 Zauważ stan bitu IF składany na stosie w trakcie wejścia w obsługę przerwania i stan IF w pP.
Slajd11 (176) MC68ooo OBSŁUGA PRZERWANIA AUTOWEKTOROWANEGO r»T T T T^PT^TA i t ’ yT < t r T ’ rr
cz3 Programowanie Rys. 22 Badanie liczby cykli obsługi przerwania że dokładnie co taki czas zmienna
obsługa przerwaniaproc dostaje przerwanie->adres ostatniego niewykonanego rozkazu na stos->sko
Przerwanie 1 Zapamiętuj e kontekst. -programowe (instrukcja w procedurze obsługi przerwania) odłożen
metro 31#14 W dalszym etapie program obsługi przerwania zewnętrznego, wywołany kolejnymi opadającymi
18333 MaszynaW 10 2. Maszyna EW 2.2.1.2. Obsługa przerwania w cyklu rozkazowym dla liniowej organiza
Przerwanie 3 Cykl obsługi przerwania: 1.    Zgłoszenie przerwania sygnałem INT 2.

więcej podobnych podstron