next up previous
Next: I/O Buffering Up: No Title Previous: Polled Input/Output

Interrupt Handling for devices

In the kernel process definition, the first thing performed is the initialisation of data structures (PCBs), and the installation of the interrupt vector table. The latter works as follows :

PROCEDURE Install(H:proc; vector:address; priority:integer)

 set vector to jump to flih
 set PSW in vector+2 {interrupts disabled}
 handlers[vector] := H {H is the handler}
 set priority field in PSW {needed for nested interrupts}
 pswtable[vector] := PSW {interrupts}
END

This allows for variable priority interrupt handlers, but FLIH runs with all interrupts disabled.



Omer F Rana
Fri Feb 14 18:33:29 GMT 1997