© Thomas Kunz 2000
SCE 574
180
Processes and Interrupt Handling Implementation
äTo implement processes the OS maintains a process table
äExamples of important information in the table
äProcess management    Memory management           File Management
äRegisters                              Pointers to segments            Root directory
äProgram counter                  Process id                             Working directory
äStack pointer                        Exit status                            File descriptors
äProcess start time                    ....                                      ....
äCPU time used   
äMessage queue pointers
ä
äInterrupt handling is accomplished as follows
ä1. Interrupt: hardware stacks program counter, etc.. of current program
ä2. Hardware loads new program counter from interrupt vector (table)
ä3. Assembly language routine saves registers in process table (above)
ä4. Assembly language routine procedures sets up new stack for C handler
ä5. C procedure marks interrupt service process as ready in the above table
ä6. Scheduler decides which process to run next (choose highest priority)
ä7. C procedure returns to assembly code
ä8. Assembly languages procedure starts up next process
Uses the interrupt
number
We implement
most things in
a high level
language