next up previous
Next: About this document ...

Comp 730/242 Spring 2008

Teleconferencing (Due Thu April 24)

Use the OS you have implemented in the previous assignments to implement a special terminal whose descriptor is MASTER_CONSOLE (a constant). Every time a kernel creates a new process, it should print the kernel and process id of the new process on the MASTER_CONSOLE. Initially the MASTER_CONSOLE is bound to a default kernel (which depends on the value of this constant). This device should accept a user command to move the console to another kernel. To move the console, a user enters a move command of the form:

#m <kernel_id>

You can assume that kernel id will be a single digit and that exactly one blank will be entered before the kernel id. Thus, if a user enters

#m 4
at the master console, then the device moves to (the terminal attached to) kernel 4 and subsequent output to the MASTER_CONSOLE is directed there.

Use the OS to also support simple teleconferencing allowing users at one or more terminals to talk to each other. The teleconference is controlled from the MASTER_CONSOLE. We define another command, the join command, to add a kernel to the conference:

#j <kernel_id>

Thus, if a user enters

#j 4
#j 5
at the master console, then (the terminals attached to) kernel 4 and 5 are added to the conference. Any input entered at a terminal in the conference is echoed to all terminals in the conference. It is upto you whether you allow MASTER_CONSOLE to join the conference. In case you do, the # character before the command name allows you to distinguish commands from teleconference input.




next up previous
Next: About this document ...
Prasun Dewan 2008-04-23