330 - Operating Systems
Fundamentals, Section 1, Fall 2001
Lectures: MW 11:30am - 12:50pm, OB 104
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:
Gary Nutt: Operating Systems - A Modern Perspective, Second Edition, Addison-Wesley, 2000
Course will include some information from:
Sarwar/Koretsky/Sarwar: UNIX - The Textbook
Davis/Rajkumar: Operating Systems - A Systemativ View
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 1 is supposed to be more practically oriented.
Note that this does not mean that Section 1 is easier.
The differences will become more apparent toward the end of
the semester than they are at the beginning.
Topics covered in this Section are:
- overview of operating systems
- operating system principles
- concurrency
- scheduling and dispatching
- memory management
- overview file systems (handling, mounting, etc.)
- overview device management
- scripting
- security and protection (viruses)
Both sections teach main design concepts of operating systems but
in Section 1 the focus in presentation will be on:
- usage of systems
- motivating design discussion from examples of using system and what
real operating system do
- design choices in interfaces, convenience and functionality
- leaving out some more complex general concepts
like microkernels and instead discussing some more practically relevant
concepts like booting, mounting, sharing segments etc.
Assignments (tentative):
- using system calls (I/O)
- threads (resource utilization, synchronization)
- simple client/server application (TCP/IP)
- measurement of system, querying status
- setting environment variables and writing shell script
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 accepted 7 days after the due date. All assignments must be placed in the School of Computer 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 code 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 evidence (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 statements of the medical conditions preventing you from taking the exam (vague descriptions will not be accepted). Only if the above conditions are met, you will be permitted 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 final. The makeup of the final exam will be in the second week of the winter semester. Date and place will be announced and posted on the course web page and office bulletin board at an appropriate time. It will be your responsibility to get the 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 minus 25% will be assigned. If you miss all exams and the makeup, you cannot pass.
Attendance, Notes:
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 based on the material presented in class. Thus, if you have missed information because 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 available 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 with
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 relate 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. Scheduling and Dipatching: preemptive and nonpreemptive scheduling,
schedulers and policies
(2 lectures)
6. Synchronization: race conditions, synchronization features, deadlock
and starvation
(2 lectures)
7. Interprocess Communication: messages, client/server, sockets and TCP/IP
(2 lectures)
8. Memory Management: memory allocation, address translation,
swapping, virtual memory,
paging and segmentation,
working set and thrashing, caching,
segment sharing, memory hierarchy
(4 lectures)
9. Overview File Systems: hierarchical file systems, mounting, compactification
(2 lectures)
10. Overview Device Management: serial and parallel devices, abstracting
differences, buffering, pipelining
(2 lectures)
11. Scripting, Advanced System Commands
(2 lectures)
12. Security, Viruses
(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.