5 User Level Process

Till now, the execution of these kernel threads are similar to that of Java threads except that they are scheduled by the Nachos scheduler. We have yet dealt with simulation of MIPS instruction sets and user level processes. To allow multi-programming, each user level process should have its own address space. The physical memory needs to be allocated so that different processes do not overlap in their usages. Though the execution of any MIPS instruction is only possible when the memory address it refers to is eventually brought in the physical memory, virtual memory provides an illusion of infinite large memory space for each process. In this section, we discuss how user programs can be executed in Nachos; and in next section, we discuss the implementation of Nachos memory management.

 5.1 Developing and compiling user programs
 5.2 Loading COFF binaries
 5.3 User threads
 5.4 System calls and exception handling
 Exercise