UNSW   Faculty of Engineering myCSEPRINT VERSIONSITE MAP  
cse | School of Computer Science and Engineering (CRICOS Provider No. 00098G)
    #About CSE     #Undergraduate Study     #Postgraduate Study     #Timetables & Courses     #Research & Publications     #People & Work Units     #Help & Resources     #News & Events     #High School Portal

Last updated 24.07.00

COMP9242 Advanced Operating Systems

Session 2, 2000


To provide students with a deep understanding of modern operating system technology, implementation techniques and research issues.



Provide in-depth coverage of modern operating system issues, such as:

  • microkernels and IPC,
  • user-level OS servers,
  • design and implementation of microkernel-based systems,
  • performance,
  • kernel design and implementation,
  • user-level page-fault handlers,
  • device drivers,
  • scheduling for real-time,
  • symmetric multiprocessing,
  • effects and control of hardware caches,
  • alternative protection and security models,
  • alternative OS designs (persistent systems, single-address-space operating systems) and resulting issues (such as dealing with large, sparse address spaces).


  • Exposing students to current operating systems research and modern OS technology.
  • Providing experience in the construction of a small and efficient operating system from a minimal microkernel.
  • Providing experience in low-level systems programming in a realistic development environment.
  • Providing experience in reading and evaluating research papers.
  • Encouraging interest in further study and research in the area.


  • Working in an environment and on problems similar to a professional OS or embedded systems implementor in industry.
  • Building a whole system almost from the hardware up.
  • Understanding lowest-level OS code and its interaction with hardware.



  • Students are expected to be highly competent in programming in C. Students not familiar with C will be expected to learn it on their own (quickly).
  • Students are expected to be familiar with assembly language programming. Assignments/labs will not require assembly programming, but for debugging and understanding of calling conventions this knowledge is required. Furthermore, the lectures will examine low-level kernel code, most of which is written in assembler.
  • Students are expected to be familiar with basic computer architecture concepts and the main characteristics of a modern RISC processor. The labs will be based on a MIPS R4600-based 64-bit computer.

Course Pre- and Co-requisites

  1. a credit grade in COMP3231 or COMP9201 Operating Systems (pre-requisite)
  2. COMP9211 or COMP3211 Computer Architecture (co-requisite)



A rough outline of the lectures is (subject to change):

Introduction and Overview

Introduction to the L4 Microkernel
L4 system calls and usage (to get you started on the project)

A close look at selected OS issues
  • Protection, capabilities
  • Caching, and its implications for OS
  • Page tables for wide address spaces
  • SMP issues: locking, cache coherence, scheduling
  • File systems

Microkernels and User-level Servers
History and motivation for microkernel systems, Hydra, Mach, discussion, experiences; second-generation microkernel systems, L4, Exokernel, Spin; design and implementation of microkernel-based systems, including user-level page fault handling and device drivers

Microkernel Implementation
A detailed look at the internals of a real microkernel (L4 in MIPS R4x00)

Persistent systems and Single-address-space operating systems
Concepts and examples; UNSW Mungi project


Lab work forms a major component of the course. This will be carried out in the Advanced Systems Teaching (ASysT) Lab, commencing from Week 2. The lab features locally developed U4600 computers based on a 64-bit MIPS R4600 processor. These nodes are set up to run a locally developed implementation of the L4 microkernel. They are connected to UNIX hosts (PCs running Solaris) running an L4 development environment. OS code is developed and compiled there and then downloaded to the 64-bit systems, which present a minimum environment ideally suited for low-level systems programming exercises. Documentation as well as sample code will be provided.

Students will also be able to run their system on simulated MIPS hardware, thanks to the locally developed CPU simulator Sulima. This allows working outside the ASysT Lab, including at home. However, any project demonstrations must be done on actual hardware, not on a simulator.

A beta-version of the kernel is also available for students who own an Alpha-based machine (such as a Multia). Alpha-based project demonstrations are permissible.

After some ``warm-up'' experiments students will work in groups of two on a project, which constructs various OS component, with the ultimate aim of producing a small (and very efficient) operating system. A series of milestones will be defined to aid the implementation.

Milestones and the final project will be demonstrated to School staff and the code submitted for assessment. Complete system documentation will form the final deliverable.

Details will be published in due course. Milestones must be demonstrated (and the code submitted) during the week in which they are due. Milestones deadlines missed by less than one week will cause a loss of 25% of the mark for that particular milestone, if missed by more that one week the penalty is 50%, up to a maximum of two weeks. No submissions/demos will be accepted later than two weeks after the deadline. Cheating will be severely dealt with.

As this is supposed to be a challenging course, I am quite concerned about boring students who already have a strong background in L4 and therefore might find the project too easy. For this reason, I am offering the possibility of alternative projects for such students. An alternative project must be discussed with me in detail and approved in advance. The main criteria for approval will be that, given the students' backgrounds, the project should present a similar challenge than the ``standard'' project would present to students with no OS knowledge beyond what is defined by the prerequisites.

Final Exam

There will be a final exam, in the form of a 24h take-home. Students will be given one day to read and analyse two recent research papers relevant to the material covered in the course, and submit a critical report on it. See the 1999 Exam for an example.

Supplementary assessments

Supplementary exams will only be awarded in well justified cases, in accordance with School policy, not as a second chance for poorly performing students. In particular, it is unlikely that a supplementary will be awarded to students who have actually sat the proper exam. Make up your mind whether or not you are sick before attempting the exam!

Supplementary exams will have the same format as the normal exam, and will be held on the day after the written supplementary exams held for other courses.


Assignments count for 65%, the exam for 35% of the final mark. A minimum mark of 14 (i.e., 40% of the maximum) is required in the exam to receive a passing grade.



There is no textbook for this course, as no published book covers the material in sufficient depth. Plenty of handouts will be provided.

Reference Books

  • A. Tannenbaum, A. Woodhull: Operating Systems: Design and Implementation, 2nd ed. 1997, Prentice Hall.
  • Curt Schimmel: UNIX Systems for Modern Architectures, 1994, Addison Wesley.
  • M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R. Magnus, and D. Verworner: Linux Kernel Internals, 1997, Addison Wesley.
  • Marshall K. McKusik, Keith Bostic, Michael J. Karels, John S. Quarterman: The Design and Implementation of the 4.4BSD Operating System, 1996, Addison Wesley.
  • Helen Custer: Inside Windows NT, 1993, Microsoft Press.
    2nd version authored by David A. Solomon, (1998), 3rd version authored by David A. Solomon and Mark Russinovich titled ``Inside Windows-2000'' (2000).
  • Helen Custer: Inside the Windows NT File System, 1994, Microsoft Press.
  • Scott Maxwell: Linux Core Kernel Commentary, 1999, CoriolisOpen Press.
  • John Lions: Commentary on UNIX 6th edition with source code, 1996, Peer-to-Peer Communications. (The famous Lions Book, identical to the 1977 UNSW TR.)
  • Selected research papers as referred to in class.
  • L4 source code in ~cs9242/l4/mipsL4.

Reference manuals for labs

The following will be provided in hardcopy as reference for the project component:

  • K. Elphinstone, G. Heiser, J. Liedtke: L4 Reference Manual, MIPS R4x00, UNSW 1998.
  • A. Au, G. Heiser: L4 User Manual, UNSW 1998.

Other material

Lecture notes and other information can be found under the course's WWW home page at URL http://www.cse.unsw.edu.au/~cs9242/.

STAFFING in Session 2 2000

Lecturer-in-charge is Gernot Heiser, who will be delivering most of the lectures.

Some lectures may be delivered by visitors or research students.

COMP9242, School of Computer Science and Engineering, University of New South Wales

This page is maintained by gernot@cse.unsw.edu.au. Last modified: Monday, 24-Jul-2000 11:33:46 AEST

Top Of Page

Site maintained by webmistress@cse.unsw.edu.au
Please read the UNSW Copyright & Disclaimer Statement

 Last modified: Monday, 24-Jul-2000 11:33:46 AEST