Go up to Top
Go forward to Process Management

The Kernel

The kernel you implement will have three main functions. It will implement the process abstraction by multiplexing the CPU among processes and providing a primitive to create new processes. It will support communication among processes by implementing mailboxes and send and receive primitives. Finally, it will make it possible to handle interrupts outside the kernel by sending messages to system defined mailboxes when interrupts occur.

The execution of your complete project will begin with the kernel which must complete the initialization of kernel data structures before initiating system and user processes.

This kernel is patterned after a kernel name KMOS described in the operating systems text by Milenkovic. At least one copy of this text will be on reserve in the Math/CS library. You may find it useful to read chapters 9 and 10 of this text which discuss KMOS. In particular, Milenkovic includes Pascal code for many of the procedures you will need to write. BEWARE, however, that the kernel I am asking you to write is NOT IDENTICAL to KMOS. In places where the mechanisms described in this handout differ from those of KMOS, follow the handout (or ask me)!

So that we can avoid confusion when discussing the differences between the kernel you will implement and KMOS, we obviously need a name for our design. Using a few choice letters from the title of this handout ("A MUltiprocessing Kernel") suggests that AMUK is the obvious choice (pronounced so that when we talk about running AMUK it sounds right).



Up Next