Course syllabus

Operating Systems: COMPSCI 340 Semester 2 2019, City Campus


An operating system is the software which makes a raw computer more or less usable by people. To most people who use computers, the operating system is indistinguishable from the hardware; they never experience the machine by itself. It is the operating system's job to communicate with the people who use it, to look after their files, to do sensible things when they do silly things, and generally to look after all the jobs that must be done but which are too complicated or changeable to be built into the hardware.

This course looks at general principles of operating systems, but we do look at some low level details as well. You are expected to be a competent programmer in a language such as Java or Python and at least have an introductory knowledge of C. Some assignments this year will use C.

Contents of the course
  • Introduction to operating systems
  • Operating system history
  • Virtual machines
  • C programming review
  • Processes, threads and process states
  • Real-time processes
  • The problems of concurrency and some of the solutions
  • Communicating processes
  • Deadlock
  • Devices
  • Memory management
  • Virtual memory
  • File systems
  • Networked operating systems
  • Distributed operating systems
  • Protection and Security
  • Device management


% of final mark



Test - date : 27th August


Three assignments


In order to pass the paper, you must:

  • Pass test and exam combined - the pass mark is 50% (35/70)
  • Get an overall pass of 50% (this includes the exam, test and assignment marks)

N.B. The assignments are worth 30% and the test and exam will have questions based on the work in the assignments.

Either Canvas or the Assignment Drop Box system will be used for the submission of assignments. This will be detailed in the assignment specifications.


Lectures are held at the following times and places (as of the time this document was prepared):

  •  Tuesday 8am - Human Sciences - North,Rm 346

  •  Wednesday 8am - Owen G Glenn, Room 098

  •  Thursday 8am - Human Sciences - North,Rm 346

Lecturer and Topics

Dr Robert Sheehan

  • Introduction to the course - OS structure

  • History of OSs - up to batch systems

  • History of OSs - time-sharing systems, PCs, the Web and smaller OSs

  • Virtualization,
  • Systems programming languages

  • Processes and threads - implementation

  • PCBs, Process states, Process creation

  • Running, waiting and stopping

  • Scheduling

  • Real-time scheduling

  • The problem of concurrency - locks and semaphores

  • Readers/writers, monitors

  • Dining Philosophers, Equivalence of concurrency constructs

  • IPC, Distributed concurrency control

  • Deadlock

  • File Systems

  • Representing files on disk

  • File allocation techniques

  • Versioning File Systems

  • Distributed File Systems

  • Distributed Services: two phase commit, remote procedure call

  • Memory management, Pages, Segments

  • Virtual memory, page faults

  • Page allocation algorithms

  • Meltdown and Spectre
  • Protection and the access matrix

  • Capabilities and Access Control Lists

  • Cryptography and Authentication, Kerberos

  • Intro to mobile security

  • Device drivers

  • Linux modules and general device services

  • Disks as special devices, disk scheduling


There is only one tutorial per week.

  • Thursday 9am - SCIENCE B303, Room 101.

The textbook is the 9th edition of "Operating System Concepts". The book is referenced throughout the course.

You can get a physical version of the book from ubiq (was UBS) Operating System Concepts. Electronic copies can be purchased from Wiley and from ubiq.

Handling illness or absence
  • If you must leave for family emergencies etc., PLEASE talk to the lecturer, or somehow get a message to the department. Very few problems are so urgent that we cannot be told quite quickly.

  • For problems affecting assignments or tests, see the lecturer, as soon as reasonably possible.

  • For illness during exams (or other problems that affect exam performance) students MUST contact the University within ONE WEEK of the last affected examination, to apply for an aegrotat pass (for illness) or compassionate pass (other problems).

Refer to the "Exams affected by personal circumstances (aegrotat and compassionate consideration)" section of the University websit for further information.

Online presence

All lecture notes, assignment handouts, other documents, and lecture recordings will be available on Canvas.

Your coursework grades for the assignments and the test will also be on Canvas.

There is a class Piazza page, accessible through Canvas. This will be where the lecturer and tutors respond to questions. Students are also encouraged to respond to questions. There will be a delay of up to 24 hours before tutors or lecturers respond, allowing time for students to answer first. Robert will only be checking Piazza once per day.

Academic Integrity

The University of Auckland will not tolerate cheating, or assisting others to cheat, and views cheating in coursework as a serious academic offence. The work that a student submits for grading must be the student's own work, reflecting his or her learning. Where work from other sources is used, it must be properly acknowledged and referenced. This requirement also applies to sources on the world-wide web. A student's assessed work may be reviewed against electronic source material using computerised detection mechanisms. Upon reasonable request, students may be required to provide an electronic version of their work for computerised review.

Please refer to


Every member of the University has a right to dignity and respect. Please see the policy on harassment and complaints:  

Top Top

Course summary:

Date Details