NWEN301 (2019) - Operating Systems Design


This course addresses the design and implementation of operating sytems, and examines fundamental concepts such as resource management, concurrency, protection and security. Examples drawn from a range of modern operating systems illustrate these concepts and project work provides practical experience in the design and implementation of operating systems.

Course learning objectives

Students who pass this course should be able to:

  1. Explain what an operating system is, what it does, and how it is designed and constructed,
  2. Explain the process concept, lifecycle and concurrency models central to OS design,
  3. Explain process scheduling, interprocess communication, process synchronization and deadlock handling,
  4. Explain memory management schemes, such as segmentation, paging and virtual memory, and
  5. Explain basic mechanisms for protection and system security.
  6. Demonstrate the ability to write operating system code (GA 3(d) & 3(f)),
  7. Explain the design choices such as the selection of algorithms within an operating system kernel (GA 3(b)),
  8. Establish a practical understanding of a large body of production quality code (GA 3(f)), and,
  9. Demonstrate familiarity with UNIX/Linux, C programming, APIs and System Calls (GA 3(f)).

Withdrawal from Course

Withdrawal dates and process:


Qiang Fu (Coordinator)

Teaching Format

During the trimester there will be two lectures per week and three one-hour lab sessions per week from week 2 to week 12. Tutorials will be scheduled as needed.

Student feedback

Student feedback on University courses may be found at:  www.cad.vuw.ac.nz/feedback/feedback_display.php

Dates (trimester, teaching & break dates)

  • Teaching: 08 July 2019 - 13 October 2019
  • Break: 19 August 2019 - 01 September 2019
  • Study period: 14 October 2019 - 17 October 2019
  • Exam period: 18 October 2019 - 09 November 2019

Class Times and Room Numbers

08 July 2019 - 18 August 2019

  • Monday 13:10 - 14:00 – LT118, Laby, Kelburn
  • Tuesday 15:10 - 16:00 – LT118, Laby, Kelburn
  • Thursday 15:10 - 16:00 – LT118, Laby, Kelburn
02 September 2019 - 13 October 2019

  • Monday 13:10 - 14:00 – LT118, Laby, Kelburn
  • Tuesday 15:10 - 16:00 – LT118, Laby, Kelburn
  • Thursday 15:10 - 16:00 – LT118, Laby, Kelburn

Other Classes

Three one-hour lab sessions per week from week 2 to week 12. Tutorials will be scheduled as needed.


  • Andrew S Tanenbaum Herbert Bos, Modern Operating Systems: Global Edition (4e),
    Pearson Higher Ed. (Copies are held in the library.)

Mandatory Course Requirements

In addition to achieving an overall pass mark of at least 50%, students must:

  • achieve a minimum D grade in the examination.

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.


This course will be assessed through the following:

  • Homework
  • Projects
  • Final Examination
Four homework assignments will be set from the text book. These will help focus your learning and exam preparation and contribute 2.5% ea to your final mark.
There are three projects for NWEN301. All projects use Pintos, which is a simple operating system framework for the 80x86 architecture. It supports kernel threads, loading and running user programs, and a file system, but it implements all of these in a very simple way. In the Pintos projects, you will extend the core Pintos implementation to make the OS much more functional (and useable). These projects are challenging, and require you to brush up on your C skills as well as your understanding of operating systems - the best advice is to start them early and attend your labs.
  • In project 1 you will familiarize yourself with the Pintos development environment, permitting you to compile, build, execute and debug your kernel. You will also implement a more efficient thread wait (alarm).
  • In project 2 you will implement a better thread scheduler.
  • In project 3 you will implement a range of system calls, which will then allow you to write your own simple user programs which will execute on Pintos. Congratulations, your OS is limited, but operational!
The programming projects have been selected to emphasise and cement important operating systems concepts through practice, in particular fulfil learning objects 6-9.
The exam will focus on learning objectives 1-5, in particular your ability to demonstrate you understanding of the broader operating systems concepts and related theory.

Assessment ItemDue Date or Test DateCLO(s)Percentage
Homework (x4)Weeks 3, 6, 9, 12CLO: 10%
Project 1Week 4CLO: 5%
Project 2Week 8CLO: 15%
Project 3Week 12CLO: 15%
Final Examination (2 hours)CLO: 55%


Project work will be penalised at a rate of 10% per day late, up to a limit of 5 days late, after which the work will not be accepted for marking.
Homework will not be accepted after the tutorial at which the solutions are distributed. Work submitted late, but prior to the tutorial will be penalised at 10% per day.


Individual extensions will only be granted in exceptional personal circumstances, and should be negotiated with the course coordinator before the deadline whenever possible. Documentation (eg, medical certificate) may be required.

Submission & Return

All homework must be submitted online in PDF - work submitted in any other format will NOT be marked. Hand written and/or annotated work can be scanned to PDF for submission. Our goal is to return homework to you within 3 weeks of submission.
All project works must be submitted via the electronic submission system.


In order to maintain satisfactory progress in NWEN 301, you should plan to spend an average of 10 hours per week on this paper. A plausible and approximate breakdown for these hours would be:

  • Lectures: 2 hours
  • Project work: approx. 3 hours
  • Homework assignment: 1 hour
  • Independent study: approx. 4 hours

Teaching Plan

See https://ecs.victoria.ac.nz/Courses/NWEN301_2019T2/LectureSchedule

Communication of Additional Information

All online material for this course can be accessed at https://ecs.victoria.ac.nz/Courses/NWEN301_2019T2/

Offering CRN: 17180

Points: 15
Prerequisites: NWEN 241, 342 (or 242)
Duration: 08 July 2019 - 10 November 2019
Starts: Trimester 2
Campus: Kelburn

This topic: Courses/NWEN301_2019T2 > CourseOutline
Topic revision: 26 Jul 2017, christo