Skip to menu Skip to content Skip to footer
Course profile

Operating Systems Architecture (COMP3301)

Study period
Sem 2 2024
Location
St Lucia
Attendance mode
In Person

Course overview

Study period
Semester 2, 2024 (22/07/2024 - 18/11/2024)
Study level
Undergraduate
Location
St Lucia
Attendance mode
In Person
Units
2
Administrative campus
St Lucia
Coordinating unit
Elec Engineering & Comp Science School

Implementation and design techniques for operating systems. Core material includes advanced kernel-level and device driver programming techniques, how operating systems principles are realised in practice, principles and practice of operating system support for distributed and real-time computing, case studies and different approaches to operating system design and implementation, including different models of software ownership.

This course aims to develop a theoretical grounding in operating system design, backed up by practical experience from making design and implementation changes to a real operating system.

Over the course of the semester, students will gain practical experience by writing systems programs (e.g., a shell) and implementing changes across core aspects of the operating system such as the scheduler,ᅠfilesystems, or device drivers. This will also involve using a virtual machine-based platform for development and testing.

Changes based on student feedback

We have changed the tutorial session to a contact session for presenting key concepts/advice only related to the assignments and labs. We have also changed the assessment to include more analysis based reflections.

Course requirements

Assumed background

The assignments in this course will involve working with the Linux based operating systems. The assignments will cover differentᅠaspects ofᅠoperating systems such as processes, synchronisation, mailboxes and disk storage. Programmingᅠwill involve C, and therefore good C programming skills are strongly recommended.

If you do not have a strong pass in CSSE2310ᅠ(or otherwise have poor C skills), this course is NOT recommended.

It is NOT recommended to do this course concurrently with CSSE2310.

Prerequisites

You'll need to complete the following courses before enrolling in this one:

COMP2303 or CSSE2310

Incompatible

You can't enrol in this course if you've already completed the following:

COMP3300 or COMP7303 or COMP7308

Course contact

Course staff

Lecturer

Dr Matthew D'Souza

Timetable

The timetable for this course is available on the UQ Public Timetable.

Additional timetable information

The lecture session will be a two-hour weekly session, and the contact session will be a one-hour weekly session.

The 2-hour lecture session will be divided into theory lectures and solutions to typical exam-type tutorial problems. We will also have a guest lecturer from industry on OS-related topics.

The order in which this material is presented and the length of each section will vary from week to week, so you should plan to attend the whole two-hour session.

There will also be a two-hour practical session each week to assist with the programming assignments. You should sign up for one of the sessions.

Starting in Week 1, the practical session will be used for consultation or to work through some programmed exercises in preparation for the assignments.

Aims and outcomes

This course will allow you to demonstrate masteryᅠof implementation issues for operating systems, including:

  1. evaluate design principles and alternatives including
    1. monolithic systems versus microkernels
    2. efficiency versus flexibility
    3. policy versus implementation
  2. create and apply decisions and alternatives including
    1. efficiency versus maintainability
    2. low-level versus high-level languages
    3. portability versus speed
  3. apply low-level system C coding
  4. a detailed understanding of one operating system
  5. understandᅠhow other types of operating systems may differ from each other

Learning outcomes

After successfully completing this course you should be able to:

LO1.

Identify and define key components of operating systems such as the kernel, process management, memory management, and file systems. 

LO2.

Explain the role and functionality of operating systems in managing hardware and software resources and how software interacts with hardware. 

LO3.

Create and apply design decisions for low-level operating systems components at the kernel and device driver level.

LO4.

Analyse the performance and trade-offs of operating system components like schedulers or file systems. 

LO5.

Evaluate security features and vulnerabilities of operating systems and propose improvements or alternatives. 

LO6.

Design a simple operating system module or enhance an existing module, such as a scheduler or a file system, using appropriate programming tools and environments. 

Assessment

Assessment summary

Category Assessment task Weight Due date
Computer Code, Practical/ Demonstration, Quiz, Reflection Programming Assignment One
  • Hurdle
  • In-person
15%

19/08/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Computer Code, Practical/ Demonstration, Quiz, Reflection Programming Assignment Two
  • Hurdle
  • In-person
25%

16/09/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Computer Code, Quiz, Reflection Programming Assignment Three
  • Hurdle
  • In-person
25%

21/10/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Examination Final Exam
  • Hurdle
  • Identity Verified
  • In-person
35%

End of Semester Exam Period

2/11/2024 - 16/11/2024

A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.

Assessment details

Programming Assignment One

  • Hurdle
  • In-person
Mode
Product/ Artefact/ Multimedia
Category
Computer Code, Practical/ Demonstration, Quiz, Reflection
Weight
15%
Due date

19/08/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Task description

Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.

Hurdle requirements

If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3

Submission guidelines

All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Programming Assignment Two

  • Hurdle
  • In-person
Mode
Product/ Artefact/ Multimedia
Category
Computer Code, Practical/ Demonstration, Quiz, Reflection
Weight
25%
Due date

16/09/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Task description

Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.

Hurdle requirements

If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3

Submission guidelines

All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Programming Assignment Three

  • Hurdle
  • In-person
Mode
Product/ Artefact/ Multimedia
Category
Computer Code, Quiz, Reflection
Weight
25%
Due date

21/10/2024 3:00 pm

You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.  

Task description

Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.

Hurdle requirements

If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3

Submission guidelines

All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.

Final Exam

  • Hurdle
  • Identity Verified
  • In-person
Mode
Written
Category
Examination
Weight
35%
Due date

End of Semester Exam Period

2/11/2024 - 16/11/2024

Other conditions
Time limited.

See the conditions definitions

Task description

The final exam will test students' understanding of the theoretical content of the course.

Hurdle requirements

Students must achieve a minimum of 40% of the exam marks, to pass the course.

Exam details

Planning time 10 minutes
Duration 120 minutes
Calculator options

(In person) Casio FX82 series or UQ approved , labelled calculator only

Open/closed book Closed Book examination - no written materials permitted
Exam platform Paper based
Invigilation

Invigilated in person

Submission guidelines

Deferral or extension

You may be able to defer this exam.

Course grading

Full criteria for each grade is available in the Assessment Procedure.

Grade Cut off Percent Description
1 (Low Fail) 0 - 19

Absence of evidence of achievement of course learning outcomes.

Course grade description: Fails to demonstrate understanding of most aspects of operating system design; Unable to program effectively in C;

2 (Fail) 20 - 44

Minimal evidence of achievement of course learning outcomes.

Course grade description: Fails to demonstrate understanding of some aspects of operating system design; Unable to program effectively in C at a low level;

3 (Marginal Fail) 45 - 49

Demonstrated evidence of developing achievement of course learning outcomes

Course grade description: Demonstrates understanding of some aspects of operating system design; Unable to think critically about design alternatives; Unable to program effectively in C at a low level;

4 (Pass) 50 - 64

Demonstrated evidence of functional achievement of course learning outcomes.

Course grade description: Demonstrates understanding of some aspects of operating system design; Able to program effectively in C at a low level;

5 (Credit) 65 - 74

Demonstrated evidence of proficient achievement of course learning outcomes.

Course grade description: Demonstrates understanding of most aspects of operating system design; Able to think critically about some design alternatives; Able to program effectively in C at a low level;

6 (Distinction) 75 - 84

Demonstrated evidence of advanced achievement of course learning outcomes.

Course grade description: Demonstrates understanding of most aspects of operating system design to a deep level; Able to think critically about some design alternatives; Able to program effectively and efficiently in C at a low level;

7 (High Distinction) 85 - 100

Demonstrated evidence of exceptional achievement of course learning outcomes.

Course grade description: Demonstrates understanding of all aspects of operating system design to a deep level; Able to think critically about design alternatives; Able to program effectively and efficiently in C at a low level;

Additional course grading information

Your overall percentage will be the sum out of 100 of your assessment marks which is then rounded to the nearest whole percent and then possibly capped as described below. Assessment items will be weighted as described above.

If you achieve less than 40% on the final exam then your overall percentage will be capped at 49% and your final grade is capped at 3.

If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3.

In other words, to pass the course, you must achieve:

- at least 50% of the total course marks, and

- at least 40% of the final exam marks, and

- at least 50% on the combined Assignment 1, 2 and 3 mark.

Supplementary assessment

Supplementary assessment is available for this course.

Additional assessment information

Use of AI Tools

All assessment tasks evaluate students' abilities, skills and knowledge without the aid of generative Artificial Intelligence (AI) or Machine Translation (MT). Students are advised that the use of AI technologies to develop responses is strictly prohibited and may constitute student misconduct under the Student Code of Conduct.

Learning resources

You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.

Library resources

Find the required and recommended resources for this course on the UQ Library website.

Additional learning resources information

You must use Blackboard as the primary repository of course materials and use the specified online forumᅠfor discussions.

The programming assignments will be based on a Linux/BSD-based operating system and will require advanced programming skills in C.

If you are not a confident C programmer, you might rethink whether this course is a good elective choice.

If you are a strong programmer in another language but not C, it is recommended that you spend the early weeks of the semester getting up to speed in C.

There are many online tutorials, eg. http://www.cprogramming.com/

Learning activities

The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.

Filter activity type by

Please select
Clear filters
Learning period Activity type Topic
Multiple weeks

From Week 1 To Week 13
(22 Jul - 27 Oct)

Lecture

Weekly Lectures

Weekly lectures will provide the theoretical foundation for the course material. Lecture slides are provided on the course BlackBoard site.

Multiple weeks

From Week 1 To Week 12
(22 Jul - 20 Oct)

Tutorial

Weekly Contact Session

The weekly contact session will present content related to the practicals and assignments, and revise lecture material through revision questions.

Multiple weeks

From Week 1 To Week 8
(22 Jul - 15 Sep)

Practical

Weekly Practicals

Students should sign-on to one scheduled weekly practical session. The weekly practical sessions will be on-campus and will provide an opportunity to work through a set of staged exercises which provide students with the necessary skills to undertake the programming assignments.

Policies and procedures

University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:

Learn more about UQ policies on my.UQ and the Policy and Procedure Library.

School guidelines

Your school has additional guidelines you'll need to follow for this course: