SYSC 4001: Operating Systems (Winter 2005)
Latebreaking
News
- None, the course is over.....
In the Winter 2005 term, Thomas Kunz was teaching the
fourth-year undergraduate course on Operating Systems. The online
calendar
description can be found here.
This page contains some information about the
course
and links to additional resources available to the class, either
provided
by the instructor or existing in the Internet. To find out more about
the
format of documents made available on this course webpage, read the
comments
on
this page.
What is an OS? That is a difficult (and contentious) question.
- The
Economist has an article about Microsoft
and the lawsuits around Windows in the US and Europe. This gives
you a good idea of the kind of discussion about "What is an OS?" in the
case of Microsoft. Also, here is a recent (Jan. 24, 2005) update on
the case.
- A slightly humorous take on OS is this MP3 file (password-protected).
Warning: uses rude language :-).
- We are not talking in great detail about security in this course,
but if you want to read a humorous description of the basic challenges
in
cryptography, check out this Story
of Bob and Alice.
- And to follow up in that vein: check out the deliberately polemic
PDF file/talk "Systems
Software Research is Irrelevant" by Rob Pike, who is quite involved
in OS system research and development.
- The RUNES project in
Europe has published a survey on hardware and software issues for
embedded systems. I've extracted the short survey (4 pages) on possible
Operating Systems to be used in that environment, as PDF file or postscript file. The discussion
touches on quite a few of the issues/design themes we talk about in
class as well: real-time vs. non-realtime OS, support of threads,
multiprocessing, virtual memory management.
The following textbook is mandatory in this course: Operating
Systems: Internals and Design Principals, 5th edition, 2005, by
William
Stallings. It is published by Prentice Hall, ISBN 0-13-147954-7.
One
strong argument in favor of this (as opposed to some other) textbook is
the fact that it exemplifies the abstract concepts we will discuss with
examples taken from probably the most widely used operating systems:
Windows
2000, Unix SVR4, Solaris, and Linux. This will help students to put the
general design principles and their relative tradeoffs into
perspective.
Students who do not write the final exam have the option to write an
exam at a later point in time. This rule, aimed at students who are
sick
during exam periods, appearently leads to some abuse by students who
strategically
choose which exam to write when. In an effort to be fair to students
who
cannot write the exam for a legitimate reason, while at the same time
discouraging
the abuse of this rule, the following policy has been adopted widely in
the Faculty of Engineering and Design:
Students taking supplemental or deferred examinations have several more
months to study than their colleagues. Also they have a less-crowded
examination schedule. Thus it is only fair to the majority of students
to expect a substantially better performance on these examination than on
the final.
This is the policy that I will also adopt for this course. Please note
that the above formulation leaves it up to the instructor whether the
supplemental
or deferred examination will be harder or the marking scheme will be
more
rigorous.
A page, maintained by the author/publisher, with additional
information
and resources, is available at http://WilliamStallings.com/OS/OS5e.html.
For work in the labs (though we don't have any programming assignments
in the course), please consult the Health
and Safety Manual.
A note on assignments and cheating: the assignments are individual
assignments.
Evidence of cheating will be investigated and will be reported to the
Associate
Dean, see also General Regulations 14. Cheating consists of
collaboration
(handing in someone else's solution as your own as well as allowing
someone
else to copy your solution) and extensive quoting from textbooks and
other
sources without proper reference. I do encourage students to discuss
the
assignment
questions with each other, and to consult textbooks and
other sources to derive an answer. However, I also do expect students
to
hand in solutions that are clearly their own effort, clearly
identifying
the extensive use of external sources (and your classmates do not count
as valid external sources).
Password-protected course material:
assignments and exams, lecture
transparencies, etc.
The slides are those that I plan to present in class. They are
intended
to provide a synthesis of the course content. To
actually understand the course concepts, and to prepare yourself
adequately
for exams and assignments, you must supplement this information,
preferably
by attending class, studying the textbook, etc.
- Course transparencies (a combination of the transparencies by
Patricia
Roy and Mario Marchand, offered at the textbook
resource page, and combined using the same template). The entries
in red are "bonus" material and will not be required for any exams.
- Introduction and Operating System Overview
- Process Description and Control
- Threads
- Java
Threads: Introduction
to Java threads, sample
code 1 (scroll down to Threads section), sample
code 2 (more complex reader-writer setup with multiple threads)
- Concurrency: Mutual Exclusion and Synchronization
- Concurrency: Deadlock and Starvation
- Memory Management
- Virtual Memory
- Uniprocessor Scheduling
- Multiprocessor and Real-Time Scheduling
- I/O Management and Disk Scheduling
- RAID: Redundant Array of
Inexpensive/Independent Disks: as HTML
pages, as postscript
file, or as PDF
file. Here is a link
to DELL's website that offers storage space solutions based on RAID
technology.
- File Management