Extra Notes
Interrupt Processing
Hardware
- Tests for interrupt signal, and removes the signal if there is one
- Saves the PSW and the location of the next instruction onto a control stack
- Load the program counter with the location of the interrupt handler routine
- After the routine is finished, restore the PSW and PC
Software
- Saves the contents of all registers onto the stack
- PC updated to the beginning of the routine
- Processes the interrupt
- Restores all the register values
I/O Tables
- Manage the I/O devices and channels of the computer system
- Maintains the status of the I/O operation and the location in main memory being used as the source/destination of the I/O transfer
Process Control Block
- Unqiue identifier
- State
- Priority
- Program counter (next instruction in the process)
- Memory pointers
- Context data
- I/O status information
- Accounting information
Microkernel
- Kernel only performs vital functions
- Server provides the rest
- Servers can run in user mode
- Decouples kernel and server development
Messaging Examples
Non-blocking send - concurrent programs, printing
Block receive - more natural on concurrent programs
- May be blocked indefinetly if the message is lost
Linux Process Diagram
Running - executing or ready to execute
Interruptible - a blocked state; the process is waiting for an event, so as the end of an I/O operation, the availability of a resource, or a signal from another process
Uninterruptible - a blocked state; process is waiting directly on hardware conditions and does not receive any signals
Stopped - the process has been halted an can only resume by positive action from another process. For example, a process
Zombie - the process is terminated but still has it's task structure in the process table