Next: Testing : Running
Up: No Title
Previous: What to Turn
- If your system call implementations did not work correctly, you
must fix them to get this lab to work.
- 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.
- If you implement paging, use the bitmap to keep track of which
pages in memory are in use. 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 a 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 have not done so already or have not read it recently, read
Section 3.1 also.
- 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.