University of Windsor


main
teaching
outline
announcements
assignments
labs
solutions
resources
grades

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.


[ Home ] [ Research ] [ Teaching ] [ Machines/Softwares ] [ Research Team ] [ Parallelism Infos ] [ Publications ]
e-mail address acsodan@uwindsor.ca