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
Version
This is version 1.0.2 of the COMP3300 course profile, dated
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.
Tutors
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:
- have an elementary knowledge of systems programming
- understand major operating systems concepts
- know how these concepts apply to specific operating systems
- be able to solve problems requiring understanding of operating systems concepts
Students will have the option of two different styles of learning:
- 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
- systems -- understand how an operating system is implemented, including the ability to code operating system features in C
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.
Resources
Textbook
The required text is
Silberschatz, Galvin, and Gagne, Operating System Concepts (6th edition), Addison-Wesley, 2002 (or XP Update, 2003)
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.
Tanenbaum, Modern Operating Systems (2nd edition), Prentice-Hall, 2001
Lister and Eager, Fundamentals of Operating Systems, MacMillan, 1993
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.
Facilities
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
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.
Web
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.
Newsgroup
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
Lectures
- 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.
Tutorials
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 |
Pracs
There are no scheduled prac sessions. However, independent work in the labs is encouraged.
Attendance
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 | ||||
3 | ||||
2 | 8 March | 4 | Operating System Structure (2) C systems programming |
|
5 | ||||
6 | ||||
3 | 15 March | 7 | C concluded Processes & Threads (4, 5) |
Assignment 1 issued 17 March |
8 | ||||
9 | ||||
4 | 22 March | 10 | Processes and Threads concluded CPU scheduling (6) |
|
11 | ||||
12 | ||||
5 | 29 March | 13 | CPU scheduling concluded Process Synchronization (7) |
|
14 | ||||
15 | ||||
6 | 5 April | 16 | Synchronization concluded Deadlocks (8) |
Assignment 1 due 6 April |
17 | ||||
public holiday | ||||
12 April | Mid-semester break (one week) |
|||
7 | 19 April | 18 | Memory Management (9) | |
19 | ||||
20 | ||||
8 | 26 April | public holiday | Virtual Memory (10) | Assignment 2 issued 30 April |
22 | ||||
9 | 3 May | public holiday | File Systems (11, 12) | tutorial carried over from previous week because of missing Monday |
23 | ||||
24 | ||||
10 | 10 May | 25 | I/O Systems & File Systems (13, 14) | |
26 | ||||
27 | ||||
11 | 17 May | 28 | Distributed Systems (16, 17) | |
29 | ||||
30 | ||||
12 | 24 May | 31 | Protection & Security (18, 19) | Assignment 2 due 25 May |
32 | ||||
33 | ||||
13 | 31 May | 34 | Review | |
35 | ||||
36 | ||||
7 June | Revision Period | |||
Exam Week 1 | 14 June | Final Exam | ||
Exam Week 2 | 21 June |
Assessment
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.
Assignments
- Assignment 1 is due at 11.30am Tuesday 6 April, and will test the students’ abilities and provide experience in solving problems related to process and thread creation
- Assignment 2 is due at 11.30am Tuesday 27 May, and will test the students’ abilities and provide experience in solved problems related to memory and storage management
For each assignment:
- a bonus of 1% (5% of the assignment) will be awarded for submission 24 hours or more before the assignment is due.
- 15-20% will be awarded to students who show their abilities to solve operating system problems and get a correct or almost correct answer.
- 6-14% will be awarded to students whose answers are partly correct, but some obvious mistakes are found in the assignment.
- 0-5% will be awarded to students who fail to demonstrate mastery of basic principles of this subject.
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:
- factual grasp -- understand the terminology and key concepts
- application -- understand how the key concepts relate to the working of an operating system
- problem-solving -- understand how specific implementation decisions are taken
- design -- apply the principles to using or building operating system services
- development -- write code to implement designs
- analysis -- evaluate design decisions critically
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:
- general concepts (all students) -- here, questions will test understanding of a broad range of concepts
- systems programming -- here, questions will test the ability to solve a problem in C, given a specification and standard operating system APIs
- general problem-solving -- here, questions will test the ability to solve problems applying the principles of part 1
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
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:
- Submission of plagiarised work, i.e. work that contains content copied from an unacknowledged source.
- Submission of work without academic merit, i.e. work that adds little or nothing to material available from reference sources such as textbooks, web sites, etc., even where this is appropriately acknowledged.
- Engaging in collusive behaviour, i.e. inappropriate working together with other students where individual work is required, or working with people outside your team where team work is required.
- Copying work done by other students.
- Failing to adhere to the School's regulations concerning behaviour in laboratories, in particular occupational health and safety regulations.
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