[CSE]  Advanced Operating Systems 
 COMP9242 2003/S2 

PRINTER Printer-Friendly Version
- Notices
- Course Intro
- Consultations
- Survey Results
- Lectures
- Selected Papers
- Milestone 0
- Project Spec
  (Milestones 1, 2, ...)
- Project FAQ
- Exam
- ASysT Lab
- L4Ka::Pistachio FAQ
# L4 source browser
- Sulima ISA Simulator
R4x00 ISA Summary 
MIPS R4700 ReferenceMIPS R4000 User Manual 
- GT64111
# Network Driver
Related Info
- Aurema OS Prize
- OS Hall of Fame
- 2002
- 2000
- 1999
- 1998
- Gernot Heiser (LiC)
- Kevin Elphinstone
- Guest Lecturers (TBA)
- Student Reps

Valid HTML 4.0!

M7: Process management

Currently your operating system has only been able to run one process, probably sosh. In this milestone you will implement the process related system calls: process_create, process_delete, my_id, process_status and process_wait. Obviously each new process should run it its own address space. This will require you to carefully manage L4 memory spaces.

Currently process_create need only run executables contained within the DIT image, and need only run these executables in-place, and only run them successfully once.

The code update will gives you a dit_lookup function which will find a named entry from the dite image.

The code update also includes a new sosh which has an exec command. This command provides a simple interface to the process_create system call. In a similar style to UNIX shells, if the third argument to exec is an & then it will run the process in the background. Otherwise sosh will use process_wait to wait until the child process has finished executing.

Design issues

As with most milestones, a lot of the design work will be working out suitable data structures to hold process information. You may also need to extend other data structures in your operating system to handle multiple processes.

You also probably want to change your crt so that when a process's main function exits it will kill itself.

Code updates

There is a new code update available.

This update contains libelf which will be used in milestone 8, and updated copy of sosh, a new sos.h header file, some additions to the dite library, and bug fixes for lwip. If you have modified sosh you may want to keep a backup of it as this update will overwrite it.


You should show sosh executing a sub-process and show that the ps command works. As processes will be running in-place you need only execute each one once.

You may want to add a kill command to sosh to show that process_delete works.

As always you should be able to explain the data structures and algorithms used.

Last modified: 09 Oct 2003.