|
Advanced Operating Systems COMP9242 2005/S2 |
UNSW
CRICOS Provider Number: 00098G |
Printer-Friendly
Version
|
M3: System call interfaceThe aim of this milestone is to design the RPC protocol for the
system call interface. You should implement both the client and
system side of this interface. This client side system call
interface must conform to the interface provided in
At this stage you will not actually be able to implement most
of the system calls, however you should be able to partially
implement Other system call should output Console deviceWhen a program opens the file Reading the console is a blocking operation. If a process reads from the console and there is no data available it should block until data becomes available. Be carefult not to implement the console device as a 'hack'. You should think about being able to support multiple serial ports and other stream devices in your design (although not necessarily implement them). You may once again find the documentation on libserial handy. Changing your Makefile
You will want to change your To add a new library you should create a new directory in the
LIBS := l4e c device serial tulip gt nfs lwipto include your new library. E.g.: LIBS := l4e c device serial tulip gt nfs lwip sos
To make sure a new application gets compiled you should change
the Design alternativesAt this stage of the project you will need to decide whether you want to have a simple single-threaded server, or to multi-thread it. A multi-threaded design could be advantageous to deal with the inherent concurrency your system will have (e.g. between paging, system calls, asynchronous I/O and clock interrupts), but it will require careful design of synchronisation in order to avoid race conditions and deadlocks. A single threaded model will require extra attention to ensure liveness. Another design descision is how to transfer data between the kernel and user processes. Some options you have are:
Whatever you do, remember the basic engineering rule: keep it simple, stupid!(KISS). AdviceThis milestone is larger than previous ones, and it is advisable that you split the workload between the group. AssessmentFor this assessment you should be able to demonstrate
As always you should be able to explain both the design and your implementation. Last modified: 29 Jul 2005. |