Disk Interrupt Handler
Description¶
Hardware sends an interrupt on completion of a load/store operation. This interrupt is handled by the Disk Interrupt Handler. The data structure updated is the Disk Status Table.
Algorithm¶
Switch to the Kernel Stack. /* See kernel stack management during system calls */
Save the value of SP to the USER SP field in the Process Table entry of the process.
Set the value of SP to the beginning of User Area Page.
Backup the register context of the current process using the BACKUP instruction.
In the Disk Status Table, set the STATUS field to 0, indicating that the disk is no longer busy.
Wake up all processes waiting for the disk.
1. Search the Process table for processes in (WAIT_DISK, _ ) state.
2. Change the state of the processes to (READY, _ ).
Restore the register context of the process using RESTORE instruction.
Restore SP to the value stored in USER SP field of the process table.
ireturn;