CECS Home | ANU Home | Search ANU
The Australian National University
ANU College of Engineering and Computer Science
Research School of Computer Science
Printer Friendly Version of this Document

UniSAFE

Operating Systems Implementation

Introduction

Without Operating Systems todays computers would be nothing more than ugly expensive paper weights. Operating systems are programs that act as intermediaries between user programs and the physical hardware of the computer. First, they provide a layer which simplifies and standardizes the operation of the computer system. Second, they act as resource managers controlling the resources of the computer system. These resources include the following: CPU, memory, keyboards, screens, printers, storage devices, etc, or even more abstract resources such as: file systems, windows, processes, etc. The purpose of a good operating system is to provide these services in a reliable, convenient and efficient manner. The Operating System is a non-trivial program and quickly descends into the tar-pit of complexity.

This unit takes a detailed look at the services provided by, and the internals of, an existing operating system to see how each part is constructed and integrated into the whole.

The lectures will also address recent literature describing advances in operating systems.

The following topics are addressed: system programming and its facilities (including I/O, signals, job control, interprocess communication, sockets, transport layers, remote operations), system calls and their relation to the system libraries, process management and coordination, implementation of message passing, memory management, interrupt handling, real-time clocks, device-independent input/output, serial-line drivers, network communication, disk drivers, deadlock avoidance, scheduling paradigms, file systems, security.

Lecturers

Dr Eric McCreath - email : ericm@cs.anu.edu.au - room : N227 (Chair of Examiners)
Bob Edwards - email : bob@cs.anu.edu.au - room N211

Unit Prerequisites

COMP2300 and COMP2310, and 6 units of 2000 level MATH/STAT/EMET, or COMP2600

Note that, it is expected that students :

  • have a basic understanding of concurrent issues covered in Concurrent and Distributed Systems (COMP2310),
  • are able to program in c, and
  • can use UNIX (from a users perspective).

Objectives

At the completion of this unit the students will be able to:
  • Identify and describe the features of the system library of a particular operating system, and be able to apply this knowledge to program small applications.
  • Describe and analyse the actual algorithms and data structures that are used in a particular operating system.
  • Describe and analyse the structure of operating systems in general, especially those that support communicating processes.
  • Identify and describe the reasons for many architectural features of contemporary machines.
  • Have the experience of understanding and modifying a large software system.

Text Book

The set text is Operating Systems 7th edition, by William Stallings, Prentice Hall, 2012. I recommend students obtain a copy of the text book.

Assessment

The final mark is composed of the following components :
Final Exam 60%
Labs 5%
Tutorials 5%
Assignment 1 10%
Assignment 2 20%

Note that consistent scaling across all students may occur with these marks. Final marks are moderated at a Reseach School of Computer Science examiners meeting.

Students must get a minimum final overall mark of at least 50% to pass the subject.

Please check the Undergraduate Handbook and the web for policy statements concerning special consideration and special, further and supplementary examinations.

Quality and integrity are expected from all students. Students should also expect this from the lecturing/tutorial staff. Please read over the ANU's policy on this matter. See http://academichonesty.anu.edu.au/

Assignment Due Dates

Assignment Due Date
Assignment 1 week 7 - Friday 10pm (7/9/2012)
Assignment 2 week 12 - Sunday 10pm (29/10/2012)