Students

COMP2291 – Operating Systems

2023 – Session 1, In person-scheduled-weekday, North Ryde

General Information

Download as PDF
Unit convenor and teaching staff Unit convenor and teaching staff
Richard Han
Lecturer
Damian Jurd
Credit points Credit points
10
Prerequisites Prerequisites
COMP1010 or COMP125
Corequisites Corequisites
Co-badged status Co-badged status
COMP6291
Unit description Unit description

This unit will introduce the concept of an operating system and describe its software architecture and interaction with modern computer hardware. The unit will cover topics on resource management of the central processing unit (CPU), memory, storage, network communication, and Input/Output (I/O) devices. Students will learn concepts such as multitasking, processes, address spaces, isolation, scheduling, concurrency, fairness, multithreading, synchronization, deadlock, virtual memory, interrupts, computer architecture, signals, kernels, user-space, file systems, the layered network stack, security, and virtualisation. The performance tradeoffs in the design of various components of the operating system will be discussed.

Important Academic Dates

Information about important academic dates including deadlines for withdrawing from units are available at https://www.mq.edu.au/study/calendar-of-dates

Learning Outcomes

On successful completion of this unit, you will be able to:

  • ULO1: Demonstrate an ability to apply resource management concepts and principles to application design and execution (CPU, memory, storage/files, network/I/O, processes).
  • ULO2: Develop software programs that support concurrency and multi-threading.
  • ULO3: Develop a simple device driver that demonstrates the connection between operating systems and hardware.
  • ULO4: Explain the structure/architecture and function of an Operating System.
  • ULO5: Demonstrate an understanding and ramifications of security and fault isolation.
  • ULO6: Demonstrate an understanding of virtualisation concepts.

General Assessment Information

Assessments

The assessment is divided into four major components, namely midterm exam, final exam, weekly quizzes, and the coding assignment. The weightings of each component are designated above. The midterm exam will be held in the workshops during week 7. The Final exam will be held in rooms designated by the university during the exam period. Exams will be on iLearn. More details will be posted on iLearn later in the term. Weekly quizzes will be due on iLearn. These will likely include short answer, fill in the blank, and multiple choice type of questions. 

The coding assignment will be divided into two major subcomponents or labs, with lab 1 due mid semester (week 7) and lab 2 due at the end of the term (week 13). Each lab will have multiple stages due at different times leading up to their final due dates. Each lab will also have a viva component as part of the assessment where you will be asked to explain your code. See iLearn for more details. Lab assignments will primarily use the C programming language, but may include other components involving Makefiles, scripting, etc.  

Late Assessment Submission

Late assessments are not accepted in this unit unless a Special Consideration has been submitted and approved.

Requirements to Pass this Unit 

Whilst there are a number of learning activities and assessments that make up the unit, in order to pass the unit the only requirement is that you achieve a total mark equal to or greeater than 50%.

There are no hurdle requirements for the unit. 

Assessment Tasks

Name Weighting Hurdle Due
Mid-semester exam 20% No Week 7
Final exam 20% No Exam Period
Quiz 10% No Weekly
Assignment 50% No Week 7 and 13

Mid-semester exam

Assessment Type 1: Examination
Indicative Time on Task 2: 20 hours
Due: Week 7
Weighting: 20%

An examination allows us to individually and securely assess student's mastery of the coursework material.


On successful completion you will be able to:
  • Demonstrate an ability to apply resource management concepts and principles to application design and execution (CPU, memory, storage/files, network/I/O, processes).
  • Develop software programs that support concurrency and multi-threading.
  • Develop a simple device driver that demonstrates the connection between operating systems and hardware.
  • Explain the structure/architecture and function of an Operating System.
  • Demonstrate an understanding and ramifications of security and fault isolation.
  • Demonstrate an understanding of virtualisation concepts.

Final exam

Assessment Type 1: Examination
Indicative Time on Task 2: 20 hours
Due: Exam Period
Weighting: 20%

An examination allows us to individually and securely assess student's mastery of the coursework material.


On successful completion you will be able to:
  • Demonstrate an ability to apply resource management concepts and principles to application design and execution (CPU, memory, storage/files, network/I/O, processes).
  • Develop software programs that support concurrency and multi-threading.
  • Develop a simple device driver that demonstrates the connection between operating systems and hardware.
  • Explain the structure/architecture and function of an Operating System.
  • Demonstrate an understanding and ramifications of security and fault isolation.
  • Demonstrate an understanding of virtualisation concepts.

Quiz

Assessment Type 1: Quiz/Test
Indicative Time on Task 2: 10 hours
Due: Weekly
Weighting: 10%

The Quiz is an in-class test. It is a formative assessment that can be used to measure students’ knowledge and comprehension of unit materials. Quiz Question types include multiple choice, matching items, true/false, short answer and many more. Quizzes allow for formative assessment feedback on basic conceptual competence and therefore usually span multiple learning outcomes.


On successful completion you will be able to:
  • Demonstrate an ability to apply resource management concepts and principles to application design and execution (CPU, memory, storage/files, network/I/O, processes).
  • Demonstrate an understanding and ramifications of security and fault isolation.
  • Demonstrate an understanding of virtualisation concepts.

Assignment

Assessment Type 1: Practice-based task
Indicative Time on Task 2: 48 hours
Due: Week 7 and 13
Weighting: 50%

A semester-long programming task where students put all their skills to work creating operating system components or modules.


On successful completion you will be able to:
  • Demonstrate an ability to apply resource management concepts and principles to application design and execution (CPU, memory, storage/files, network/I/O, processes).
  • Develop software programs that support concurrency and multi-threading.
  • Develop a simple device driver that demonstrates the connection between operating systems and hardware.
  • Demonstrate an understanding and ramifications of security and fault isolation.
  • Demonstrate an understanding of virtualisation concepts.

1 If you need help with your assignment, please contact:

  • the academic teaching staff in your unit for guidance in understanding or completing this type of assessment
  • the Writing Centre for academic skills support.

2 Indicative time-on-task is an estimate of the time required for completion of the assessment task and is subject to individual variation

Delivery and Resources

Classes 

Each week you should attend two hours of lectures, and a two hour practical workshop. For details of scheduled classes consult the timetables webpage

Note that practicals workshops (lab sessions) commence in week 1. The week-by-week details of the practical (lab) classes will be available from iLearn. 

You must attend the practical that you are enrolled in. 

Textbook and Reading Materials 

Required Text Book 

"Operating Systems Concepts" 10th edition, by Silberschatz, Gagne and Galvin. 2021. We will assign weekly readings from the textbook during lecture and/or on iLearn. 

The text book is available in electronic form online, or you can purchase a printed copy from a book seller of your choice. Is this available in the Library? 

Recommended Text 

"The C Programming Language" 2nd edition, Brian W Kernighan and Dennis M Ritchie, Prentice-Hall 1988. 

This small book is the classic reference on C programming. 

Unit Websites 

COMP2291 / COMP6291 is administered via iLearn (http://ilearn.mq.edu.au/)

This unit outline can be found in the university's unit guides 

We will use iLearn as our main platform for making announcements, posting assignments, releasing lecture slides and other content, conducting quizzes and exams, and posting results. We will use the announcements forums on iLearn to post important messages to the class. Students may ask questions in a separate general iLearn forum, where we will answer them. 

Lecture Recordings 

Digital recordings of lectures may be available. They will be linked from iLearn. 

Technologies Used and Required 

COMP2291 / COMP6291 is a BYOD (Bring Your Own Device) unit. You will be expected to bring your own laptop computer (Windows, Mac, or Linux) to the workshop, install and configure the required software, and incorporate secure practices into your daily work (and play!) routines. 

General Notes 

In this unit, you should do the following:

  • Review recorded lecture materials. 

  • Attend your weekly Practical session. 

  • Attend lectures, take notes, ask questions. 

  • Work on any assignments that have been released. 

Note that Workshops commence in week 1. Please note that you will be required to submit work every week. 

Students will attend weekly workshops in person, where they will receive additional explanations on class assignments and topics, and may take examinations, be asked to present stages in their labs, be asked to explain their code in vivas, etc. Students should use these workshops to ask questions of their tutor.

Communication Methods in COMP2291 / COMP6291 

All annoucnements about unit-related matters will be communicated through iLearn. It is the student's responsibility to ensure they check iLearn announcements, forums, and other sections regularly. 

Students are encouraged to use the iLearn forums for asking questions about unit content and concepts. Where questions are about specific details in an assessment submission. 

Any one-on-one commiunication with unit staff that is via email must be done through the student's official university email account (the one ending with '@students.mq.edu.au'). There may be occasions where unit staff will email a student directly to their @students.mq.edu.au email address. It is the student's responsibility to ensure they check their official university email regularly for communications from the university staff. 

Students may contact the convenor at the posted email above to have questions that cannot be otherwise answered by tutors or in the general forum, such as questions about policy in the class, but should avail themselves first of the general forum and tutors at their workshops to have technical questions about their assignments answered.

Results will be released on iLearn in a timely manner, subject to certain acceptable delays such as accommodating special consideration late assessments.

COVID Information 

For the latest information on the University’s response to COVID-19, please refer to the Coronavirus infection page on the Macquarie website: https://www.mq.edu.au/about/coronavirus-faqs. Remember to check this page regularly in case the information and requirements change during semester. If there are any changes to this unit in relation to COVID, these will be communicated via iLearn. 

Unit Schedule

The tentative weekly schedule is as follows, and may be subject to change. See iLearn for more details. 

Week 1: Introduction to C and OS  

Weeks 2-3: Processes, threads, synchronization and deadlock 

Week 4: CPU Scheduling 

Weeks 5-6: Virtual memory 

Weeks 7-8: Input/Output 

Weeks 9-10: Storage and File Systems 

Week 11: Networking and Security 

Week 12:  Virtual Machines 

Week 13: Review 

Policies and Procedures

Macquarie University policies and procedures are accessible from Policy Central (https://policies.mq.edu.au). Students should be aware of the following policies in particular with regard to Learning and Teaching:

Students seeking more policy resources can visit Student Policies (https://students.mq.edu.au/support/study/policies). It is your one-stop-shop for the key policies you need to know about throughout your undergraduate student journey.

To find other policies relating to Teaching and Learning, visit Policy Central (https://policies.mq.edu.au) and use the search tool.

Student Code of Conduct

Macquarie University students have a responsibility to be familiar with the Student Code of Conduct: https://students.mq.edu.au/admin/other-resources/student-conduct

Results

Results published on platform other than eStudent, (eg. iLearn, Coursera etc.) or released directly by your Unit Convenor, are not confirmed as they are subject to final approval by the University. Once approved, final results will be sent to your student email address and will be made available in eStudent. For more information visit ask.mq.edu.au or if you are a Global MBA student contact globalmba.support@mq.edu.au

Academic Integrity

At Macquarie, we believe academic integrity – honesty, respect, trust, responsibility, fairness and courage – is at the core of learning, teaching and research. We recognise that meeting the expectations required to complete your assessments can be challenging. So, we offer you a range of resources and services to help you reach your potential, including free online writing and maths support, academic skills development and wellbeing consultations.

Additional Information

All submitted work for all assessment tasks must be your own work, including examinations, quizzes, and coding lab assignments. Unauthorized assistance of any form will not be accepted and will be subject to penalties as authorized by the university. ChatGPT and other AI tools are considered unauthorized assistance and must not be used in this class, especially to generate code for any assessment tasks. 

The programming tasks (are set as individual work. The University's academic honesty policy will be enforced. You may assist your fellow students with general concepts, pointers to resources and useful tools or commands that are publicly available. You may not become involved in any way in helping a fellow student to find the solution to their particular task, nor may you share with them any aspect of your solution to a particular task. Each practical task will include additional specific instructions to help you understand what is acceptable and what is not. 

Each programming task must be the sole work of the student turning it in. Any cheating will be handled under the University's Academic Honesty Policy. 

The following are guidelines on what collaboration is allowed for programming tasks and what is not: 

What is Cheating? 

  • Sharing code or other electronic files: either by copying, retyping, looking at, or supplying a copy of a file from this or a previous semester. Be sure to store your work in protected directories, and log off when you leave any lab computer, to prevent others from copying your work without your explicit assistance.  Don't use a public repository (such as github) for your programming task files. 

  • Sharing solutions, quizzes or exams: Looking at, copying, or supplying a programming task solution, quiz or exam. 

  • Sharing procedures, methods or tools that have been developed to solve challenges of a programming task. If you wish, you may develop your own procedures, methods or tools to assist you in the tasks, but you may not share them with others, publish them or store them in a public repository such as github.  If you find someone else's procedures, methods or tools, you may not use them -- if in doubt, ask your tutor or the unit convenor.  For example, you may not provide or use somebody else's sequence of steps that can be followed to solve (or partially solve) a programming task. Similarly, you may not provide or use somebody else's program that is designed to solve (or partially solve) a stage of a programming task. 

  • Using other's code: Using code that you did not write yourself. You may not use code from courses at other institutions, or from any other non-COMP2291/6291 source (e.g., software found on the Internet).  You may, however, use Internet and other sources to learn useful concepts, ideas, and programming idioms.  If you find helpful ideas on the Internet or in other sources, you should acknowledge them in comments in your code.  For Internet sources, a URL is sufficient acknowledgement. 

  • Looking at other's code. Although mentioned above, it bears repeating. Looking at other students' code or allowing others to look at yours is cheating. There is no notion of looking ''too much,'' since no looking is allowed at all. 

What is NOT Cheating? 

  • Clarifying ambiguities or vague points in class handouts or textbooks. 

  • Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities. 

  • Helping others with high-level design issues. 

  • Helping others with high-level (not code-based) debugging techniques. 

  • Using code from the COMP2291/6291 iLearn pages. 

  • Learning programming idioms and techniques from examples. 

  • Reading Unix manual pages, forums, etc in order to find out how to perform particular tasks (e.g. learn a useful command to be typed into a shell) or use programming language/library features (such as printf). 

  • Asking for help from the practical demonstrator, tutor or lecturer. 

Be sure to store your work in protected directories, and log off when you leave any lab computer, to prevent others from copying your work without your explicit assistance. 

A forum for unit discussions is provided on iLearn. Students are free to post questions, comments or hints in relation to any aspect of the unit, except that you should avoid posting any questions, hints, comments or solutions that could be interpreted as cheating. 

Don't post your code, or anyone else's code, on the forums or anywhere else! 

If you see a post from another student that appears to be cheating, please notify your tutor, convenor or lecturer as soon as possible and we will remove the offending post. 

Submitted code may be checked against tools such as TurnItIn or other software to detect cheating. 

Student Support

Macquarie University provides a range of support services for students. For details, visit http://students.mq.edu.au/support/

The Writing Centre

The Writing Centre provides resources to develop your English language proficiency, academic writing, and communication skills.

The Library provides online and face to face support to help you find and use relevant information resources. 

Student Services and Support

Macquarie University offers a range of Student Support Services including:

Student Enquiries

Got a question? Ask us via AskMQ, or contact Service Connect.

IT Help

For help with University computer systems and technology, visit http://www.mq.edu.au/about_us/offices_and_units/information_technology/help/

When using the University's IT, you must adhere to the Acceptable Use of IT Resources Policy. The policy applies to all who connect to the MQ network including students.

Changes from Previous Offering

This is the first offering of the class so there is no prior comparison possible.


Unit information based on version 2023.05 of the Handbook