M7: Process management
Currently your operating system has only been able to run one
sosh. In this milestone you will
implement the process related system calls:
process_wait. Obviously each new process should run
it its own address space. This will require you to carefully
manage L4 memory spaces.
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.
You are supplied with a
dit_lookup function which
will find a named entry from the dite image.
sosh has an
exec command. This command provides a
simple interface to the
call. In a similar style to UNIX shells, if the third argument
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
NOTE: The stime and
ctime fields of the process_t data structure
are optional. Pistachio does not maintain these values
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.
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
As always you should be able to explain the data structures and
18 Oct 2004.