3071579133

3071579133



Obsługa przerwania wolnego - pseudokod

irq(irq_num,irq_controller)

{

SAVE_ALL // zapisz na stosie wszystkie rejestry procesora. ++intr_count; // zwiększ liczbę zagnieżdżonych przerwań sti ();    // odblokuj przerwania

do_irq(irq_num); // wywołaj handler. cli();    // zablokuj przerwania

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

—intr_count;

goto ret_from_sys_call // 0 tym bedzie za chwile

•    Natychmiast po zgłoszeniu przerwania przerwania są automatycznie blokowane.

•    Zakładamy, że do momentu potwierdzenia przerwania kontroler nie zgłosi drugiego przerwania tego samego typu.

•    retfromsyscall - ewentualne wywołanie planisty, obsługa dolnych połów, sygnałów i kolejek zadań.

Wojciech Kwedlo, Systemy Operacyjne I


-9-


Wydzial Informatyki




Wyszukiwarka

Podobne podstrony:
Obsługa przerwania szybkiego - pseudokod irq(irq_num,irq_controller) { SAVE_MOST // 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