SOFTENG 370

Operating Systems

Summary


Semester

Semester 2, 2018

Staff

Extra teaching assistants

Tutors associated with the course:
Luman Wang - lwan353@aucklanduni.ac.nz
Nacha Chondamrongkul - ncho604@aucklanduni.ac.nz
Shyamli Sindhwani - ssin820@aucklanduni.ac.nz

Teaching schedule

The first 3 weeks of lectures are given by Dr Wanqing Tu.
The remaining 9 weeks are given by Dr Robert Sheehan.

Contents


Calendar notes

History of operating systems. Multi-user systems. Scheduling. Concurrent processes, threads and synchronisation. Memory allocation and virtual memory. Managing files, disks and other peripherals. Security, protection and archiving. Engineering distributed systems; location, migration and replication transparency. Real-time programming and embedded systems. Prerequisite: COMPSYS 201 or SOFTENG 252, 250Restriction: COMPSCI 340

Further notes

Introduction
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 (at the moment) 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 C++. Some assignments this year will use C.

Lecturer and Topics

Dr Wanqing Tu
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
Distributed File Systems
Networked Operating Systems
Networked File Systems
Distributed Services: two phase commit, remote procedure call
Cloud Computing: a general introduction, SaaS, PaaS, IaaS
Cloud Operating Systems: challenges of cloud computing, cloud operating systems, a case study

Dr Robert Sheehan
Systems programming languages
Virtualization, 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
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

Outcome mapping


Intended learning outcomes
Related graduate attributes
Related assessments

Able to describe the stages of OS development and comment on them.

ENGA06: engineering and society (1)
ENGA12: lifelong learning (2)

No related assessments

Able to discuss different implementations of the process and thread model.
Able to describe different types of process scheduling and apply different scheduling algorithms. Able to write programs with interprocess communication.

ENGA03: design and solution development (3)
ENGA05: modern tool usage (4)

No related assessments

Able to reason about a concurrency problem and the common concurrency constructs.
 Able to apply a suitable construct to solve a problem involving concurrency. Able to discuss different deadlock solutions.

ENGA01: engineering knowledge (3)
ENGA02: problem analysis (2)
ENGA03: design and solution development (3)

No related assessments

Able to discuss file system operations. Able to describe the implementation of a simple file system. 
Able to compare different file systems including distributed systems.

ENGA02: problem analysis (2)
ENGA03: design and solution development (3)

No related assessments

Able to compare the main methods of managing memory.
 Able to describe in detail how virtual memory works. Able to apply simple page replacement algorithms.

ENGA01: engineering knowledge (3)
ENGA02: problem analysis (2)
ENGA03: design and solution development (3)
ENGK02: mathematical modelling (1)

No related assessments

Able to discuss the main problems associated with protection and security and provide a variety of 
solutions. 
Able to interpret access matrices.

ENGA02: problem analysis (2)
ENGA06: engineering and society (1)
ENGA08: ethics (0)

No related assessments

Able to describe different methods of incorporating device drivers into OSs. Able to discuss low-level disk scheduling algorithms.

ENGA01: engineering knowledge (3)

No related assessments

Assessment


Coursework

Assignment 1 - due 9:30pm Monday the 13th of August (worth 5% of course total)
Assignment 2 - due 9:30pm Friday the 21st of September (worth 8% of course total)
Assignement 3 - due 9:30pm Friday the 12th of October (worth 7% of course total)

Test - in class 9:00am Thursday the 23rd of August (worth 10% of course total)

Exam rules

To pass the course you need to get > 50% overall and > 50% on the test and exam combined.

Exam
Worth 70% of the course total
2 hours long
Closed book
No calculators

Inclusive learning

Students are urged to discuss privately any impairment-related requirements face-to-face and/or in written form with the course convenor/lecturer and/or tutor.

Other assessment rules

A2 and A3 will have a graduated penalty scheme for late submission.
-5% of earned mark for 1 day late
-10% of earned mark for 2 days late
-15% of earned mark for 3 days late
No assignments accepted after that except in verified cases of ill health or similar circumstance.

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.

All students enrolled at the University of Auckland are required to complete a compulsory Academic Integrity course, usually in their first semester/year of enrolment. The University of Auckland’s full guidelines on procedures and penalties for academic dishonesty are available here.

This site intends to guide you through your chosen specialisation at the Faculty of Engineering. The semester links lets you view detailed course information for your chosen course. Please note that the structure displayed for your specialisation here will reflect what’s available over the upcoming semesters, but detailed information may be from a previous year.

All the information here is accurate at the time of publication, but you are are advised to additionally consult our official document, the University of Auckland Calendar, for accurate academic regulations, requirements, and policies.