UQ Students should read the Disclaimer & Warning

Note: This page dates from 2005, and is kept for historical purposes.

The University of Queensland
School of Information Technology and Electrical Engineering
Semester 1, 2004

COMP3300, COMP7303 – Operating Systems

Course Profile


This is version 1.0.2 of the COMP3300 course profile, dated Friday, 2 April 2004.

Changes since the last version

Error in assignment 1 due date and office number corrected.

Course Summary

Course Code(s): COMP3300, COMP7303
Unit Value: #2
Contact Hours: 4 hours per week (3L1T)
Purpose: COMP3300 aims to provide students with concepts and principles used in modern operating systems, including the notions of process and threads, scheduling of processes and devices, concurrent processes and concurrent programming, deadlock, virtual memory, and distributed systems. Students will learn to understand the functioning and rationale of the major components of modern operating systems, and the relationships between them.

Teaching Staff

Philip Machanick (Course Coordinator)
Office: 78-615
Phone: (07) 3365-2766
Fax: (07) 3365-4999
Email: philip[at]itee.uq.edu.au
Consultation Time: Monday 9am-11:30pm (make an appointment by email to be sure I will be available); other times by arrangement.


See course web site.

Course Goals

By the end of the course, students will have gained familiarity with a broad range of operating system concepts and will understand the importance of those concepts to their activities as programmers and system designers. Such knowledge will allow the student to make well-informed design decisions within the environments of widely-used operating systems such as Windows, Mac OS X and Unix. Specific concepts that will be covered include processes, threads, virtual memory, synchronisation, security, distributed systems, file systems, processor scheduling, and memory management.

It is expected that upon successful completion of the course, students will:

Students will have the option of two different styles of learning:

  1. broad survey -- understand the full range of concepts, be able to apply the concepts to evaluate operating system features, and understand how an operating system is implemented
  2. systems -- understand how an operating system is implemented, including the ability to code operating system features in C
Students focusing on option 1 will not spend as much time on understanding C programming concepts, but will instead make sure they understand the general concepts being presented. Students need not make a specific choice of option 1 or 2, but any student who fails to make a passing grade on the assignments will have their final grade based purely on the exam result, and the final grade in this case will be a maximum of 5.

Assumed Background

Pre: [(CS181 or COMP1500) + (3E211 or COMP1300 or COMP2300 or COMP2302)] or (IV121 or IENV1802)

Inc: COMP7303 or CS300 or 306

Knowledge of computer architecture or computer system structure is expected.



The required text is

Earlier editions are not a good substitute: content differs significantly.

Reference Texts

Students are not expected to purchase the following books, but may find them useful. Copies of some of these books are available in the library.

Handouts and Course Profile

Lecture notes will be made available in printable form at least one day before each lecture at: http://study.itee.uq.edu.au/publicweb/Lectures.

Tutorial exercises will be made available in printable form at least one day before each tutorial at: http://study.itee.uq.edu.au/publicweb/Tutorials

Solutions to these tutorials will be discussed during tutorials, and will be made available in printable form on the web site before the exam. Members of the class are encouraged to present their solutions for discussion.

No printed material will be provided – students are encouraged to print the lecture notes, and are required to print the tutorial exercise sheets in time for each tutorial. You are provided with a free print quota of 5 pages for each course by the School so that you can print this course profile.


While there are no formal practical sessions, you may want to make use of labs, either to work through examples or to use facilities like email. You will also need to submit assignments electronically. See the ITEE Student Guide 2004 for how you are expected to make use of equipment.


Consultation will be available every non-public-holiday-Monday during the semester. The lecturer will usually be available in room 78-615 between 9:00 and 11:30 on these days. Students should make an appointment for consultation with the lecturer via email. Extra consultation times may be made available if there is sufficient demand. 

Distribution of Notices

Students are required to monitor the uq.itee.comp3300 newsgroup regularly, as well as the course web site. These facilities will be used to communicate administrative details, as well provide a forum for discussion of topics raised during the course. The newsgroup is archived, so don’t worry if you miss something.


The course web site is at http://www.itee.uq.edu.au/~comp3300. The course web site will contain any updates on this Course Profile, lecture notes and tutorials.


The course newsgroup is uq.itee.comp3300. This group is available on both the University and School news servers (news.uq.edu.au and news.itee.uq.edu.au).

Students are free to post questions (and answers!) to the newsgroup. Copies of announcements will also be posted to the newsgroup. The teaching staff will monitor the newsgroup. Discussion is encouraged.

Teaching Activities


There are three lectures each week:
Lecture 1:
Monday 12:00-13:00 (24-S304)
Lecture 2:
Tuesday 9:00-10:00 (27A-Lecture Theatre)
Lecture 3:
Friday 8:00-9:00 (24-S304)

You should check mySI-net regularly until class numbers stabilize, in case the room booking is changed.


Students should sign-up (via mySI-net) for a weekly tutorial session (commencing in week 2). Tutorials will be used to reinforce understanding of the course material. Active student participation is expected. The available tutorial sessions are listed below (subject to change as student numbers stabilize – please check mySI-net); initially some duplicated or less popular times may not be available.

Tutorial Day Time Room
Ta Monday 8am-9am 78-344
Tb Monday 8am-9pm 32-207
Tc Monday 2pm-3pm 32-215
Td Monday 2pm-3pm 78-622
Te Tuesday 3pm-4pm 78-344
Tf Tuesday 3pm-4pm 32-213
Tg Tuesday 4pm-5pm 78-343
Th Wednesday 8am - 9am 78-344


There are no scheduled prac sessions. However, independent work in the labs is encouraged.


You are not required to attend any of the teaching sessions (except those in which an assessment activity is taking place), however, you are strongly encouraged to do so. The lectures and tutorials have been specifically designed to aid your learning of the course material. Failure to attend a session may result in you being disadvantaged. It is up to you to find out what happened at any class session that you miss.

Teaching Plan

Week Number Monday’s Date Lecture Number Lecture Topic (Chapter) Assessment
1 1 March 1 Introduction (1),
Overview (all),
Computer System Structure (2)
2 8 March 4 Operating System Structure (2)
C systems programming
3 15 March 7 C concluded
Processes & Threads (4, 5)
Assignment 1 issued 17 March
4 22 March 10 Processes and Threads concluded
CPU scheduling (6)
5 29 March 13 CPU scheduling concluded
Process Synchronization (7)
6 5 April 16 Synchronization concluded
Deadlocks (8)
Assignment 1 due 6 April
public holiday
  12 April

Mid-semester break (one week)

7 19 April 18 Memory Management (9)  
8 26 April public holiday Virtual Memory (10) Assignment 2 issued 30 April
 9 3 May public holiday File Systems (11, 12) tutorial carried over from previous week because of missing Monday
10 10 May 25 I/O Systems & File Systems (13, 14)  
11 17 May 28 Distributed Systems (16, 17)  
12 24 May 31 Protection & Security (18, 19) Assignment 2 due 25 May
13 31 May 34 Review  
  7 June Revision Period
Exam Week 1 14 June      Final Exam
Exam Week 2 21 June    


COMP3300 will be assessed by several methods as outlined below. Your final grade (on a 1 to 7 scale) will be determined by combining the marks from the various assessment components as described below. For each assessment item, reference is made to the specific learning objectives (from the list above) which the assessment item will address. Specific criteria will be contained in each assignment question when it is published.


For each assignment:

Late submission normally will not be accepted. In extraordinary cases, such as illness with medical certificate, late submission may be accepted without penalty, at the discretion of the course coordinator. In that case, however, the early completion bonus will not apply. In all cases, after the solution has been made available, no submissions will not be accepted. To meet the assessment criteria, submitted work must be of academic merit, i.e., demonstrate the student’s ability according to the assignment question and assessment criteria. Otherwise good work which does not solve the given question, or which does not demonstrate the student’s ability to meet the assessment criteria, cannot be expected to achieve a good grade.

Students must do assignments independently, unless group work is explicitly specified. Where plagiarism is suspected, it will be handled according to the University policy.

The final exam is worth 60% and will test the students’ understanding of the concepts presented during the course, as well as their ability to explain and reason about such concepts in the context of non-trivial problems. The exam will be 2 hours long, and open-book.

Tutorial Exercises

Tutorial exercises are designed to give practice at exam questions. Completion of tutorials is therefore strongly to your advantage. Major learning objectives in tutorials include:

Final Examination

A two hour final examination will be held during the final examination period. This exam will be open-book and will contain short-answer and multiple-choice questions. Open-book means that you may bring any written material into the examination room. You may also bring a battery-operated non-programmable calculator. Programmable calculators and other computing or communication devices are NOT permitted.

The exam will test the learning outcomes described above by making you apply your knowledge. Criteria that will be applied will be biased towards showing understanding. Factual recall is not necessary given the open-book format, but knowing where everything is to be found in the book will be important. In keeping with the option of two different focuses in the course, the paper will be divided into three sections:

  1. general concepts (all students) -- here, questions will test understanding of a broad range of concepts
  2. systems programming -- here, questions will test the ability to solve a problem in C, given a specification and standard operating system APIs
  3. general problem-solving -- here, questions will test the ability to solve problems applying the principles of part 1
Parts 2 and 3 will be options, while all students will do part 1. It will therefore be possible to pass the exam without a deep understanding of C, though, as noted before, failure to achieve 50% overall of the assignments (i.e., 20 of the available 40 marks) will result in the exam being used as the sole means of assessment with a maximum grade of 5.

Determination of Final Grade

For assessment purposes, work of no academic merit will receive a mark of 0. That includes work which is correct, but which does not answer the question, or which does not demonstrate individual ability to answer the question. You are therefore encouraged to take extra care to understand what a question is actually asking. Any reasonable interpretation will be accepted, provided it does answer the question.

40% of the final grade will be based on the two assignments (which are equally weighted). 60% will be based on the final exam. The exam will be divided into 3 parts, of which the first is compulsory, and only one of the other two should be attempted. The first part of the exam will count 40%, and the second part 60%.

Assessment Policies


Submission of the assignments will be via the electronic submission. Details will be announced before the first assignment.

Late Submission

Late submissions will not be accepted without a proper medical certificate, and then only by permission of the course coordinator.

Notification of Availability of Feedback

Since there will only be two assignments, it is very important to make use of tutorials and questions at lectures to obtain feedback. The lecturer's consulting time is a valuable resource, and you should feel free to make use of this time to check whether you have understood the work. It is very important to apply your knowledge as a basis for testing understanding. Very little understanding arises purely from reading.

Tutorials will provide explicit information about learning objectives, and you should think about whether you are achieving these objectives while working through problems.

Return of Assignments

Arrangements for returning assignments will be announced in lectures.

Academic Merit, Plagiarism, Collusion and Other Misconduct

The School and the wider academic community in general takes academic integrity and respect for other persons and property very seriously. In particular, the following behaviour is unacceptable:

Penalties for engaging in unacceptable behaviour can range from cash fines or loss of grades in a subject, through to expulsion from the University.

You are required to read and understand the School Statement on Misconduct, available on the ITEE web site at: http://www.itee.uq.edu.au/about/student-misconduct.jsp.

If you have any questions concerning this statement, please contact your lecturer in the first instance.

Graduate Attributes Developed

The University of Queensland has defined a set of graduate attributes to specify broad core knowledge and skills associated with all undergraduate programs (http://www.uq.edu.au/hupp/contents/view.asp?s1=3&s2=20&s3=5). This course addresses these attributes as follows:

Attribute Contributions from this Course
In-depth knowledge of the field of study This course should give you a good, broad understanding of principles of operating systems. Depending on your chosen focus, you should either have a broad understanding of how operating systems are implemented and work, or a deeper understanding of principles of systems programming
Effective Communication This course does not contain a strong emphasis on communication skills. However, if you cannot express yourself clearly, you will have difficulty with the conceptual (as opposed to coding) questions.
Independence and Creativity The systems programming focus will require considerable independence and creativity, since there will not be formal pracs. The other focus will require less independence and creativity. However, some questions you will be asked to solve will require independent investigation through resources such as the Internet
Critical Judgement Since examining will be open book, do not expect that you will be able to do well in this course purely by grasping the facts. You will need to be able to solve problems, explain concepts in new ways, and weigh up alternatives
Ethical and Social Understanding This course has little to do with ethical and social issues. However, the economics of free (also called open source) software will have some social and ethical dimensions.

Support for Students with a Disability

Any student with a disability who may require alternative academic arrangements in the course is encouraged to seek advice at the commencement of the semester from a Disability Adviser at Student Support Services. This course will as far as possible make use of resources which are easy to adapt to disabilities.

Sourced From http://www.itee.uq.edu.au/undergraduate/_profile_view.php?print=1&file=2004_1_COMP3300_StLucia