Next: Testing : Running
Up: No Title
Previous: What to Turn
- If your system call implementation did not work correctly, fix it.
- You will have to make changes to system.cc and timer.cc in
order to implement the time slice option. Note the variable randomYield
in system.cc.
- You will have to do some book-keeping now that each process can create
other processes. First, you will need to keep track of what processes are
currently in the system. Second, for each process you will need to maintain
some information like the id of its parent, whether its parent is waiting for
it to finish etc.. Most of this information will be used when a process calls
Exit.
- Use the bitmap to keep track of what pages in memory are used. See bitmap.cc and bitmap.h in the userprog directory.
- Note that there should be only one console and synchConsole object in
the system. You should not create the synchConsole or the Console
object inside your system calls. Both of these should be global variables
that are created upon system initialization.
- Read Section 4 and 6.3 in Thomas Narten's handout. If you
haven't done so already, read Section 3.1 as well.
-
If you are unclear about how to compile and run test programs for Nachos, see
the handout for Lab3.
When you finish making changes to the file, compile in the usual way -
type gmake depend and then gmake nachos to create a new
executable. Note that the -x option provided by Nachos runs a
user program on top of Nachos.