Course Introduction

Course Staff

Name Function Contact
Thomas Sewell Lecturer in Charge cs3231@cse.unsw.edu.au
Gernot Heiser Lecturer for Extended OS cs3231@cse.unsw.edu.au
Alwin Joshy Course Admin cs3231@cse.unsw.edu.au
Michael Mospan Course Admin cs3231@cse.unsw.edu.au

Note: Please use the forum to ask questions when possible, unless the issue is sufficiently personal that it shouldn't be visible to all tutors. This is so that answers can benefit others. Personal emails can be sent to the class account cs3231@cse.unsw.edu.au which is read by all the lecturing and admin staff.

Also note: this is a summary of overview information for the course. For the central outline entry which details official information regarding assessments etc, use the UNSW outline finder.

Course Information

Units of Credit: 6

Course Delivery

COMP3231/9201/3891/9283 are taught in parallel. The lectures are common for all courses.

For students doing Extended Operating Systems (COMP3891/9283), your tutorial is an advanced tutorial where lecture topics are covered in extended depth, and new topics are introduced and discussed.

Course Aims

Operating systems are an essential part of computer systems, a course on operating systems is an essential part of any computer science or computer engineering program. This course exposes students to the essential concepts and issues that underlie operating systems and their design.

In general terms, the course aims to educate students in the basic concepts and components of operating systems, the relevant characteristics of hardware, and the trade-offs between conflicting objectives faced by the operating systems in efficiently supporting a wide range of applications.

This course provides an understanding of the underlying operating systems which students have implicitly relied upon when developing applications in the foundational courses within Computer Science and Engineering. The knowledge gained will continue to be relevant in future careers when developing systems and applications. The course also builds upon COMP2121/9032 Microprocessors and Interfacing by illustrating how more complex software systems are supported on microprocessor-based systems.

Specific Aims and Outcomes

Technical

Understand the key concepts and mechanisms of modern operating systems:

Educational

Understand the reasons why operating systems are built the way they are, and what the implications and lessons are for other software systems. Specific learning objectives are:

Professional

The tutorial format gives students the opportunity to present and discuss course content to an audience of their peers. Furthermore, the whole course encourages critical examination and analysis of "standard" solutions.

The assignments give students an opportunity to develop the skills required to work as a team on a technical project, and the opportunity to work with a substantial body.

Teaching Approach

Our approach to teaching operating systems is

Course Development

We strive to continually improve this course by actively seeking feedback both during session, and via various evaluation surveys (CATEI and my own) at the end of the course. The results of surveys and any feedback are taken seriously and are actively used as input to further improvements in the course. See the survey archive for what students thought about the course, and how the course is evolving based on their feedback.

Prerequisites and Assumed Knowledge

Technical Knowledge

It is assumed that an enroled student is familiar with the organisation of a general-purpose computer (in particular, CPU, memory, bus, registers, machine instructions, interrupts/exceptions).

Students are assumed to be competent using the C programming language. More specifically, students should understand pointers, function pointers, memory allocation (malloc()), and be comfortable navigating around an existing code base. They should be confident implementing data structures and algorithms, and able to debug their implementation.

Students are assumed to be familiar with the git revision control system or capable of learning the basics quickly.

Course Prerequisites

Course Exclusions

Enroling in one of the following courses excludes you from enrolling in any of the other three courses.

Course Components

Broadly, the course consists of lectures, tutorials, assignments, and a final exam.

Lectures

The lecture delivery (4 hours per week) and material covered is common for all operating system students, independent of the course code enrolled under.

Lectures will cover roughly the following topics (although not in this order):

A detailed list of lecture topics and the slides used for the lectures will be posted on the course website as session progresses.

Tutorials

Tutorials start in Week Two. Part of the allocated tutorial time will be devoted towards solving problems and discussing solutions related to lecture topics. The remaining time will be used to discuss topics relevant to assignments.

For students doing Extended Operating Systems (COMP3891/9283), the tutorial is an advanced tutorial where lecture topics are covered in extended depth, and new topics are introduced and discussed.

Assignments

There will be three main assignments ASST1 - ASST3 plus a warm up assignment to encourage you to set up you development environment. The assignments are due approximately in weeks 4, 7 and 10. Note that the warmup assignment is a really trivial familiarisation exercise, and should not be used to judge the difficulty of the other assignments. The warmup and ASST1 are completed as individuals, ASST2 and ASST3 can be done in groups of two.

Assignments will use the OS/161 educational operating system running on a simulated MIPS R3000 computer called System/161. Both the operating system and the simulator were developed at by the Systems Research at Harvard group. The simulator is relatively platform independent. Assignment solutions in C code will be submitted as git repositories. Details will be released in due course.

The assignments have advanced components which provide a significantly higher level of challenge than the standard assignments (which most students find fairly challenging already). We want students to do the advanced assignments for the challenge rather than the marks, therefore the opportunity to earn marks is intentionally kept small compared to the amount of extra work required. The marks are limited to 10% of the class mark component of the course, see the Assessment section below for details.

Students have, unfortunately, a tendency to underestimate the time required to do the assignments. Experience from the last few years shows that the assignments in this course are considered challenging, and they consume a fair amount of time. It is important to start early. If you start on them on the weekend before the deadline you'll almost certainly miss the deadline. As a tip, the majority of the assignment is learning how to solve the problem (approx. 75% of the effort). The programming component is actually the minority of the work required (approx 25%).

Mid-Session Quiz

There will be no mid-session quiz.

Final Exam

A two hour written final examination will be conducted. Note: Extended and normal OS have different exams with approximately 80% common content.

Supplementary assessments

Supplementary exams will only be awarded in well justified and documented cases of illness or misadventure, in accordance with School policy for Special Consideration, 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!

Assessment

The assignments have relative weights of 10% for ASST1, 20% for ASST2 and ASST3 and 50% for the exam. Bonus marks from the extended components of the assignments can offset lost marks on the other assignments. The exam mark has a hurdle set at 40%. You must get at least 40% marks on the exam to pass the course.

We reserve the right to moderate mark components of the individual courses (COMP3231/9201/3891/9283) separately where appropriate.

More information about assessment is hosted on the official course outline. Search for the UNSW outline finder to look up the course code you are enrolled in.

Differences between Extended (3891/9283) and regular OS

Students enrolling in the extended OS variants are expected to engage with the material in somewhat greater depth than students in the regular versions.

Students in the extended variants are not enrolled in a tutorial, and instead have an additional interactive lecture/seminar covering additional course content.

The exam is mostly the same as for the main cohort. One part of the exam is replaced for students in the extended variants, with different questions that specifically cover content from the Extended-OS lectures. This makes it mandatory for these students to view the lectures (by attending or online) and to learn this material.

The marking scheme for assignments is the same as for the main cohort. In addition, students in the extended variants are required to attempt at least 3 of the advanced components mentioned above. Each assignment has at least 2 such optional advanced components. These components will usually require students to submit a short description of their design in addition to their code. A working submission that passes tests will receive bonus marks. This is not a seperate mark, and treated more like a hurdle constraint. A design that plausibly fulfils the requirements of the specification and code that plausibly attempts to implement that design will be considered a valid attempt but not earn bonus marks.

Academic Honesty and Plagiarism

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.

If you haven't done so yet, please take the time to read the full text of

The pages below describe the policies and procedures in more detail:

Text and Reference Books

Textbook

Reference Books

For Operating Systems:

For the C language:

Copies of lecture slides and other information can be found under the course's WWW home page at URL http://www.cse.unsw.edu.au/~cs3231/.