Next: What to Turn Up: The Assignment Previous: The Assignment

Requirements

  1. Implement the system calls Exec() and Join(). The former provides a facility by which a new process in created; the latter provides a way by which a process waits for its children to finish.

  2. The synchConsole class you implemented in the last lab should now be able to handle multiple processes reading and writing from/to the console. You will use semaphores to provide synchronized access to the console (keyboard and display). Therefore, a user wanting to write, say, 10 bytes of data to the monitor will acquire the display semaphore and other processes will not be allowed to write to the display until it's done. Analogous operations occur for reading from the keyboard.

  3. Make whatever changes are necessary to your system call implementation. Note that now virtual addresses may be different than physical addresses.

  4. Implement a time-slice option for Nachos called time which specifies the time slice each process gets. Thus, we should be able to run Nachos as nachos -time 30 -x printa. Here each process in the system will get a time slice of 30 units.

  5. Implement a memory management scheme. You can either provide contiguous allocation or paging. If you implement the former, you must implement compaction.

  6. Provide test programs and instructions on how to run them. Your test programs should demonstrate all functionality that you have implemented.

  7. In your test programs have an explicit Join() for each Exec() call. When a process has joined with all its children, it should call Halt(). This is to ensure that Nachos quits when there are no more processes in the ready list. This is necessary because the console object places schedules some interrupts for the future which prevent Nachos from quitting even when there are no more processes on the ready list. Thus, a user process must explicitly halt the system when it is done joining with its children.



Next: What to Turn Up: The Assignment Previous: The Assignment


archna@mimas.cs.umass.edu
Tue May 13 12:29:25 EDT 1997