330 - Operating Systems
Fundamentals, Section 2, Fall 2001
Lectures: MW 2:30am - 3:50pm, BB 121
Instructor: Dr. Angela C. Sodan
web page: http://www.cs.uwindsor.ca/users/a/acsodan
Exam dates:
Midterm: 20th October (this is a Saturday!) 11am - 12:30pm (1.5 hour)
Please, understand that two sections would otherwise make it almost
impossible to have an equally fair exam for both sections.
Final exam: 12th December 2001, 12:00 noon (exam slot 22)
Teaching Material:
Recommended (most suitable) Textbook:
Silberschatz/Galvin/Gagne: Operating System Concepts, 6th Edition, Wiley
Course will include some information from:
Stallings: Operating Systems
Office Hours:
Monday and Wednesday, each 10am-11am, 4pm-5pm
Furthermore, the GAs will give additional office hours
(to be announced).
Should this time not be sufficient to answer all questions,
my office hours will be changed to tutorials.
However, please, come only during the office hours.
We can serve you better if you come well prepared to ask specific
questions.
Please, check announcements on my web page for further information during
the course. Assignments and class notes will also be made available
online.
General Comments on this Section:
Section 2 is supposed to be more concept oriented.
Note that this does not mean that Section 2 is more difficult.
The differences will become more apparent toward the end of
the semester than they are at the beginning.
Furthermore, please, note that though we may add some more
advanced features in the presentation of this section, this won't hurt you
for the exams as for all parts covered in both sections, the
exam questions will be identical for both sections.
Topics covered in this Section are:
- overview of operating systems
- operating system principles
- concurrency
- scheduling and dispatching
- memory management
- file systems (hierarchical systems, mounting, file allocation)
- devive management (especially disk scheduling)
- distributed and embedded systems
Both sections teach main design concepts of operating systems but
in Section 2 the focus in presentation will be on:
- more in-depth discussion of underlying concepts (especially for file systems
and device management) though still presenting examples of usage and of how
concepts show in practical operating systems
- clear discussion of design trade-offs
- discuss implications of design choices in interface for convenience,
functionality and performance (including some simple models and quantification)
- mention critical design issues and topics and ongoing development/research
Assignments (tentative):
- system calls, shell extension
- threads (resource utilization, synchronization)
- threads and scheduling (priorities), parallel execution
(minor extension of previous assignment)
- small project with maybe simple client/server application (TCP/IP)
or mini file system
This means the small project will correspond to two conventional
assignments in Section 1. The project potentially will be given
as a group project (please, check carefully what the description
for the project will say).
The assignments in addition may have a few simple questions training
for the exams (see below).
Assignment Policies:
The homework is to be turned in on the due date at the beginning of the lecture.
There is a 25% penalty for late turn-ins. However, homework is no longer accept
ed 7 days after the due date. All assignments must be placed in the School of Co
mputer Science approved Manila envelope (9 x 12 inch) available in the bookstore
. For all programming assignments, you need to turn in a print of the source cod
e which needs to be well documented. All assignments must be clearly marked with
the student's name, student number, course, section number and the instructor's
name.
Exam Policies:
You may miss exams only for valid and verifiable reasons and you must give prior
notice (later excuses will not be accepted) by some kind of documentary evidenc
e (phone, fax, email) etc. Sound "proofs" must be provided within one week after
the exam such as a doctoral certificate. The latter would require clear stateme
nts of the medical conditions preventing you from taking the exam (vague descrip
tions will not be accepted). Only if the above conditions are met, you will be p
ermitted to take a makeup exam. There will be only a makeup for the final and no
makeup for the midterm. If you miss the midterm, its weight is added to the fin
al. The makeup of the final exam will be in the second week of the winter semest
er. Date and place will be announced and posted on the course web page and offic
e bulletin board at an appropriate time. It will be your responsibility to get t
he information about the makeup exam. There will be no makeup of the makeup exam
. If you miss the makeup exam but have taken the midterm, the midterm result min
us 25% will be assigned. If you miss all exams and the makeup, you cannot pass.
Attendance:
Though not required, attendance is important as the lectures will not
present the material line by line as in the book. The exams will be primarily ba
sed on the material presented in class. Thus, if you have missed information bec
ause not having been in class,
it is your responsibility to obtain the information.
Exam questions, of course, do not only ask for memoized information but may also
require to apply the knowledge to a new problem. There will be some notes avail
able electronically, but
not necessarily for the whole semester. In any case, the notes
will not cover everything
presented in the lecture. The notes are supposed to provide some support
(as a guideline through the topics)
but do not intend to be a substitute for the book. Please, note that working wit
h
a book itself is an important learning experience. Please, check the bottom
"Resources" for the notes.
Policy on Cheating:
Assignments are - unless explicitly stated otherwise - individual
assignments. Though you may discuss solutions with other students at a
general level, you are required to develop the concrete solution on
your own.
Copying solutions from any source is not permitted.
Please, note that this is the only way to obtain the problem-solving
and programming skills which a computer scientist is supposed to have.
The standard practices on cheating apply.
Cheating is considered a serious misbehavior and will be consequently prosecuted.
Grade Scale:
96 - 100 A+
91 - 95 A
86 - 90 A-
81 - 85 B+
76 - 80 B
71 - 75 B-
66 - 70 C+
61 - 65 C
56 - 60 C-
51 - 55 D+
46 - 50 D
41 - 45 D-
<= 40 F
Grade Composition:
final exam 50%
midterm 30%
assignments 20%
Though the final counts 50% and the homework 20%, further 10% for assignments is
indirectly counted via the final, i.e. 20% of the final questions directly rela
te to the assignments. These questions will be relatively easy to answer if you
have done the assignments on your own.
The exam questions are intended to reflect the main learning
objectives of the course and will possibly avoid questions with respect to very
detailed and/or exotic topics.
The questions will most likely be a mixture of essay questions (checking
concepts, answer in two to three sentences), problem solving (applying
knowledge to a simple example, calculation etc.) and potentially small
pieces (with focus on expressing ideas but not on syntactical details).
We will either add a few questions of exam type to the assignments or
hand out a list of sample questions before the exams.
The exam questions will be identical for both sections with respect to
topics that are presented in both sections. Only the questions relating to
assignments and to the differing topics toward
the end of the course naturally will differ.
Tentative Schedule:
1. Operating System Overview and Principles: role of OS, system software,
virtualization and abstraction, processes,
resources, application program interfaces (APIs), shell and system calls
(3 lectures)
2. The Computer-System: machine and devices, interrupts, execution modes and protection
(1 lecture)
3. Multiprocessing: processes vs. program, timesharing
(1 lecture)
4. Threads: threads vs. processes, data exchange, Java and Pthreads,
(2 lectures)
5. Multi-CPU systems and OS requirements
(1 lecture)
6. Scheduling and Dipatching: preemptive and nonpreemptive scheduling,
schedulers and policies
(2 lectures)
7. Synchronization: race conditions, synchronization features, deadlock
and starvation, deadlock prevention
(2 lectures)
8. Interprocess Communication: messages, buffering and direct transfer,
client/server, sockets and TCP/IP
(2 lectures)
9. Memory Management - memory allocation, free list and compactification,
address translation,
swapping, virtual memory,
paging and segmentation,
working set and thrashing, caching,
segment sharing, memory hierarchy
(4 lectures)
10. File Systems: hierarchical file systems, mounting,
file and directory allocation, file system layout on disk
(2 lectures)
11. Device Management: serial and parallel devices, abstracting differences,
buffering, pipelining, disk scheduling
(3 lectures)
13. Overview Distributed Systems, Embedded Systems, Security
(2 lectures)
We will give some examples especially from Traditional Unix Systems and Modern Unix Systems (Linux, Solaris), Microsoft Windows NT, Windows 2000 and others.
Questionaire:
At the end of the semester, we intend to hand out a questionaire and
ask you kindly to participate to get a feedback about the usefulness
of providing different teaching approaches in different sections.
Note that it is well-known that students have different learning styles
and that therefore different teaching styles are required. Usually,
instructors attempt to incorporate different ways of presentation in
a single course. However, there are limitations to what can be done in
the same lecture. And 330 is a course covering a large number of
different and non-trivial topics which does not leave too much time
for various different presentations.