Multiprocessing Make it possible for more than one user program to run simultaneously (using time sharing) under the control of a minimal operating system, and using virtual memory. I suggest that you set up the required number of processes before allowing any of them to run. Your operating system should provide an interactive interface allowing the user to command these basic tasks. Example: > load prog1.exe > load prog2.exe > run This would cause the OS to create two processes ready to run, with code drawn from the files prog1.exe and prog2.exe. When the user types run, they start, taking turns as determined by a timer interrupt, and we see their results. Your minimal OS should handle page faults appropriately. When a user process needs more stack memory, it should be given it if possible. Page faults caused by improper memory accesses should be treated as fatal errors. Halthandler and syscall_exit must be modified so that a running process can end (or call exit()) voluntarily, without affecting any other process.