The initial exercise (``milestone 0'') is a
``warm-up'' designed to get you into the swing of L4. It is due in
week 3 and timely demonstration will be worth 4 marks. Further
milestones constitute parts of the project. Milestone 0 is best
done individually, but I will allow demonstrations individually as well
as by groups.
The other milestones constitute the major project SOS: A Simple Operating System.
The project is to be done in groups of two. You will need explicit
approval from the LiC for any other group size. Try to get your group
organised. Contact me if
you have not found a partner by the end of Week 3.
Almost half of the marks obtainable by project work can be obtained for
timely and complete demonstration of the intermediate milestones. The
remaining marks will be determined by our assessment of your project and
documentation. The assessment involves:
testing your code and its conformance with specifications,
inspecting your code as to how well and efficiently it is written,
perusing your documentation as to its completeness, appropriateness
and consistency with your implementation.
Olympics break arrangements: As far as milestone demonstrations and
submissions are concerned, the Olympics break is considered
non-existent. For example, demonstrating Milestone 5 in Week 9 will cost you
Notes on bonus marks:
No bonus marks will be awarded on a ``sympathy'' basis for a
well-intended attempt - your code implementing a bonus feature must
completely work (except for maybe some minor details) in order to
qualify for a bonus.
Bonus marks can also be obtained by finding bugs in L4: The
first student who proves an as-yet-unkonwn bug in our L4
implementation will receive two bonus marks. This bonus only
applies to L4 kernel bugs, not library bugs. Any student who
fixes an L4 kernel bug will also receive two bonus
The maximum number of bonus marks that can be accumulated is
10, no matter how they have been earned.
Bonus marks (for L4 bugs or for doing a bonus component of the
project) can be used to make up for lost project marks, up to the
maximum project mark possible (65). If your total project marks,
including bonus, exceeds 65, the surplus can be used at half face
value for marks lost in the exam.
Bonus marks cannot be used if the raw exam mark is less
than 40%, a 40% raw exam mark is an absolute prerequisite for
passing the course!
Make sure you check these first before asking us. We'll send you
straight back to do your homework if you ask questions which are already
Some students are tempted to write some tricky or obscure code for these
projects. Other students run into problems by trying to do too much.
I can only reiterate that the debugging environment you have on the
U4600s is extremely spartanic. You will not do yourself a favour by
writing obscure or particularly tricky code. You'll most likely end up
getting hoplessly tangled up in your own code. Don't do this.
Write your code as clearly, obviously and straightforward as
possible. This is the best safeguard against obscure bugs. I believe
that the project is challenging enough as it is, there is no need to
make it harder.
Furthermore, when doing the final project marking I will obviously
not look with much sympathy upon code I find difficult to understand.
The same applies for implementing features beyond the project
specifications. You are welcome to do this, but, in your own interest,
you are strongly advised to implement the required features
first. First make it work, then go for the extras! The only students
who have failed the course to date have ignored this rule — at their
Your are to show that your project
passes the milestone requirements by demonstrating its operation to
either Gernot Heiser or Alan Au in one of their consultation timesduring the week the
milestone is due. In addition, you are to submit your source
code using the give system.