10 likes | 120 Vues
This document presents an overview of the kernel structure related to interrupt handling, focusing on system calls and specific device access without return calls. It highlights the execution flow from the master handlers to sub-handlers for keyboard and display operations. Key caveats include the disregard for exceptions beyond system calls and interrupts, and a serial representation of device interactions. By using this original version by Mark D. Hill (2001), readers can gain insights into kernel processes relevant for systems programming and embedded systems courses.
E N D
E R R R R R E CS/ECE 354 Interrupt Kernel Structure 0x80000080 kernel start switch(ExcCode) Original Version by Mark D. Hill 14 Nov 2001 Caveats: Ignores exceptions beyond syscalls and interrupts. Ignores printing, errors, warnings, dumping, and halting. Revisions: <none yet> KEY: jump without return call that will return device access 1-7,9-15 8 0 _k_handleSys syscall master handler switch(syscall #) _k_handleInt interrupt master handler calls all specific handlers _k_handleOTHER other master handlers ignored here CLOCK 11 4 12 10 _k_Getc getc syscall sub-handler _k_Done done syscall sub-handler _k_Putc putc syscall sub-handler _k_Puts puts syscall sub-handler halts (to finish printing) _k_DPenQ enqueues a char on display’s _k_DP_q _k_KBdeQ dequeues a char from keyboard’s _k_KB_q (if empty) (if busy waiting) (if full & at end) _k_DP_handler display device driver: dequeues a char from _k_DP_q for display _k_KB_handler keyboard device driver: enqueues a char from keyboard on _k_KB_q _k_Return kernel end returns to user code (echo char) DISPLAY KEYBOARD