To educate students on the basic concepts and components of
operating systems, the relevant characteristics of hardware, and
the tradeoffs between conflicting objectives faced by the OS.
As much as operating systems are an essential part of computer
systems, a course on operating systems is an essential part of
any computer science or computer engineering program. This
course is oriented towards exposing students to the essential
concepts and issues that underly operating systems and their
Make students understand the key concepts and mechanisms of
modern operating systems:
- processes and process management,
- memory management techniques aimed at optimising system
utilisation and responsiveness,
- on-line storage methods (file systems),
- security and protection,
- concurrency issues,
- some of the issues arising from distribution.
Make students understand the reasons why operating systems are
built the way they are, and what the implications and lessons
are for other software systems. Specific learning objectives
- appreciation of design trade-offs and design decisions and
their dependence on the target environment;
- appreciation of the distinction between mechanisms and
policies, and why this is important;
- exposure to low-level code;
- exposure to current trends in operating systems research
The tutorial formats will give students practice in the
presentation of solutions to an audience of peers, and will
challenge them to critique peer technical
presentations. Furthermore, the whole course encourages critical
examination and analysis of "standard" solutions.
It is assumed that the student is familiar with the general
organisation of a general-purpose computer (in particular, CPU,
memory, bus, registers, machine instructions,
Students are also assumed to be competent
in the C programming language.
PHP Notice: Undefined variable: session in /tmp_amd/adams/export/adams/1/cs3231/public_html/05s1/intro-content.php on line 131
- As for COMP3231 with minimum mark of 70 in each
- As for COMP9201 with minimum mark of 70 in each
- COMP9201/9283 Operating Systems (for COMP3231/3891)
COMP3231/3891 Operating Systems (for COMP9201/9283)
The lecture delivery (3 hours per week) and material covered is
common for all operating system students, independent of the course
code your enrolled under.
Lectures will cover roughly the following topics (although not in
- Introduction and Overview
- Introduction to
operating systems, computer systems structures, operating system
- execution abstraction,
state, context, preemption, scheduling, synchronisation, deadlocks
- Process Management
- resources, address
- Storage Management
- memory management, virtual memory, file systems
- Protection and Security
- goals of protection,
access matrix and its implementations, capabilities, authentication,
encryption, design for security, security awareness
- Case Studies
- drawn from UNIX, Linux,
Windows-2000 and OS/161 will be used throughout the course.
Tutorials start in Week Two. Part of the allocated tutorial time
will be devoted towards solving problems and discussing solutions
related to lecture topics, while the remaining time will be used to
discuss topics relevant to assignments.
Students will be required to present tutorial problems (approx.
10 min/student) under the guidance of the tutor. Written submissions
are required for some portion of the tutorials. Individual student
contribution (presentation, critiquing solutions and suggesting
alternatives) in tutorials will be assessed and forms part of the
final mark for the course (COMP3231 only) . To obtain the tutorial marks, you have to
attend your registered tute. Other tutors cannot award participation
Note that tutorial marks will be based on
participation only, there are no marks allocated just for
For students doing Extended Operating Systems (COMP3891/9283),
your tutorial is an advanced tutorial where lecture topics are covered
in extended depth, and new topics are introduced and discussed.
There will be three assignments, due approximately in weeks 6, 9 and
12. The assignments are done in groups of two. Assignments will use
the OS/161 educational operating system running on a simulated MIPS
R3000 computer called System/161. Both the operating system and the
simulator were developed at by the Systems Research
at Harvard group. The simulator is relatively platform
independent, it runs on Unix as well as Windows systems. Assignment
solutions will be submitted in C code. Details will be released in
Assignments will generally have advanced options which
provide a significantly higher level of challenge than the standard
assignments (which most students find fairly challenging
already). There will be bonus marks available for students solving the
advanced parts. However, we want students to do the advanced
assignments for the challenge rather than the marks, therefore the
number of bonus marks is intentionally kept small compared to the
amount of extra work required.
For students doing Extended Operating Systems (COMP3891/9283),
your are expected to attempt the advanced assignment components.
In order to minimise cheating we do not re-run unmodified
assignments from earlier years. This implies that there are new
assignment specifications. Even though we will not release the
specifications until we have a prototype solution, this does not
guarantee that there are no problems with the specification. In order
to minimise the impact of specification problems to average students
we will offer 5% bonus marks to students solving the assignment within
48 hours of release. Such submissions will have to be demonstrated and
discussed with a tutor. This procedure should then help to iron out
all problems with the spec before most students start on the
assignment. These bonus marks can be used to make up lost marks in the
same or other assignments (and are in addition to the early submission
Students have, unfortunately, a tendency to underestimate the time
required to do the assignments. Experience from the last few years
show that the assignments in this course are considered challenging,
and they consume a fair amount of time. It is important to start
early. If you start on them on the weekend before the deadline you'll
almost certainly miss the deadline.
In order to encourage students to start early, we are also
offering 10% bonus marks for submitting their final solution one
week before the deadline (i.e., you lose the bonus marks if you
re-submit less than a week before the deadline). Such bonus marks will
allow you to make up for missed marks in the same assignments (i.e.,
you cannot get above the full marks for the assignment that way).
Penalty for late submission of assignments will be 4% (of the worth of the assignment) subtracted from
the raw mark per day of being late. In other words, earned marks will
be lost. For example, assume an assignment worth 25 marks is
marked as 20, but had been submitted two days late. The late
penalty will be 2 marks, resulting in a mark of 18 being awarded. No assignments will
be accepted later than one week after the deadline.
We always check for cheating, and while we will never
catch all cheaters, we always catch a significant number. We
deal with them severely. Don't take chances!
- Copying of code: 0 FL for the
This includes submitting another students solution to the
assignment in full or part and with or without modifications as your
group's own solution. This includes code that was derived from pseudo
code or a detailed algorithmic description.
- Help with coding: negative marks (ie, minus half
the max mark)
Submission of code that was developed with the help of another
student or a third party. This includes receiving pseudo code or
discussing details of the solution, or having a third party debug your
- Originator of plagiarised solution: 0 marks (for
Showing one's own solution to another group or giving a copy to
another student, or providing help in the form of pseudo code or
detailed algorithmic descriptions. (This does
not apply if there is sufficient evidence that the copying
happened without knowledge of the originator.)
- Team work: 0 marks (for this assignment)
Submission of code that was developed fully or in part with
another student outside the group. This includes joint development of
pseudo code or a detailed algorithmic description. (It does not
matter if all parties can explain the code afterwards. The code must
not be jointly developed.)
People who copy from previous year's students will be treated just
as harshly as those copying from students doing the course with
them. In addition, they will drag the suppliers of the solutions into
the misconduct case. The general principle is that anything that is
someone else's work must not be used without giving clear and
unambiguous credit to the originator. Failing to do so constitutes
Cases of repeated cheating (in this or other courses) will be
treated as academic misconduct and will result in an application being
made to have the offender(s) suspended from the University. Suspension
applications will also be made for first offenders in serious cases,
e.g., where people involved in cheating cases are found to have made
This is no idle threat. We catch and penalise cheaters to
protect the reputation and integrity of the University, and the
interests of those who get their marks through honest work.
||107||298||156||290 ||122 |
||10||9||5||2 ||1 |
||5||4||2||2 ||9 |
||10||12||5||4 ||1 |
||0||0||1||0 ||0||1||0||0 ||0 |
* Note: full penalty was not 0FL prior
While we know that not all cheaters get
caught, almost all people caught copying end up failing. Don't take
the risk, don't become part of the statistics!
There will be no mid-session quiz.
A two hour written final examination will be conducted.
Supplementary exams will only be awarded in well justified cases,
in accordance with School policy, not as a second chance for
poorly performing students. In particular, it is unlikely that a
supplementary will be awarded to students who have actually sat the
proper exam. Make up your mind whether or not you are sick before
attempting the exam!
Supplementary exams will be oral. The supplementary final
exam will be held after the written supplementary exams held for other
Tutorial participation (COMP3231 only) and assignments will determine the
``class mark'' component towards the final assessment. (Note that the
class mark is capped at 100, irrespective of how many bonus marks you
have accumulated.) The exam will be the second component of the final
assessment. The weighted harmonic mean of the ``class mark'',
C, and the final exam mark, E, is used
to determine the final mark, M, according to
- For COMP3231/3891:
The harmonic mean is weighted 50/50.
- For COMP9201/9283:
The final mark will be M =
max(M1,M2), where M1
is a 50/50 weighted harmonic mean as above, and M2 is a 20/80
weighted harmonic mean (20 class, 80 exam) as shown below.
This method of weighting is to cater for postgraduates working full
time who are unable to invest significantly in assignment work (hence
20/80 weighting), while not penalising postgraduates who do commit to
the assignment component of the course (50/50 weighting).
For COMP3231 students the class mark is determined as the weighted
arithmetic mean of tutorial participation (10%) and assignments (90%)
For COMP9201/3891/9283 students the class mark is determined as
the sum of the assignment marks normalised to 100 plus bonuses.
A final mark of 50% is required in order to pass, however, it is
furthermore required for a pass that a minimum of 40% is achieved in
the exam E component.
We reserve the right to scale mark components of the individual
courses (COMP3231/9201/3891/9283) separately where appropriate.
More information on harmonic means in general is available here.
- A. Tannenbaum, Modern Operating Systems, 2nd
ed., Prentice Hall, 2001
For Operating Systems:
For the C language:
- A. Silberschatz and P.B. Galvin, Operating System
Concepts, 6th ed., Addison Wesley (2001)
- William Stallings, Operating Systems: Internals and Design
Principles, 4th edition, 2001, Prentice
- A. Tannenbaum, A. Woodhull, Operating Systems--Design and
Implementation, Prentice Hall, ???
- John O'Gorman, Operating Systems, MacMillan, 2000
- Uresh Vahalla, UNIX Internals: The New Frontiers, Prentice
- B Kernighan and D. Ritchie, The C Programming
Language, 2nd ed, Prentice
- S. Harbison and G. Steele, C: A Reference Manual, Prentice
Copies of lecture slides and other information can be found under the
course's WWW home page at URL http://www.cse.unsw.edu.au/~cs3231/.