ELECTRICAL AND COMPUTER ENGINEERING
Operating Systems 304-427A

Course Outline

Course Credits:
3 credits
(3,3,3) (Lectures, Labs and tutorials, outside work)

Instructor:
Prof. Jeremy Cooperstock
McConnel Engineering, Room 424
Telephone: 398-5992
email:
Office hours: M 15:30-17:30, W 14:30-15:30, or by appointment

Lectures:
McConnell 210, TJ 14:30-16:00

Prerequisites:

Review tutorials will be offered during the first two weeks of the course: those students who lack the necessary proficiency in C are strongly encouraged to attend. As a rule of thumb, students can consider themselves ready for this class if they can design, write, debug and document a small C package of about 300 lines of code, spread over multiple source files. Other tutorials, covering topics relevant to the completion of assignments, will be held during the year.

Calendar description:
Operating system services, file system organization, disk and CPU scheduling, virtual memory management, concurrent processing and distributed systems, protection and security. Aspects of the UNIX operating systems and the C programming language. Programs that communicate between workstations across a network.

Learning Outcomes:
This course deals with the structure and mechanisms of operating systems from an engineering point of view, and its purpose is to provide an understanding of the fundamentals of operating system design, relating them to current directions in their development. At the completion of this course, students should be able to describe the components of a modern operating system, explain how they interact with the computer hardware, and apply the concepts of operating systems design to practical problems.

The following figure (from Nutt, p. 131) provides a useful concept map for the course.

Course Content:
The following table provides a tentative schedule for the topics to be covered throughout the course. Text chapters are indicated for the suggested reference (Nutt); the same topics are covered in the alternate reference (Crowley), some in greater detail than others.

Lectures

Topics

Text chapters

Week 1: Sept 1, 3

Introduction, architecture review

1, 4

Week 2: Sept 8, 10

Overview of OS

2, 3

Week 3: Sept 15, 17

Introduction to processes

2

Week 4: Sept 22, 24

Process Management

6

Week 5: Sept 29, Oct 1

Scheduling

7

Week 6: Oct 6, 8

Synchronization: critical sections, semaphores

8

Week 7: Oct 13, 15

Monitors, IPC; Midterm Exam

9

Week 8: Oct 20, 22

Deadlock: avoidance, detection, recovery

10

Week 9: Oct 27, 29

I/O Management

5

Week 10: Nov 3, 5

Memory Management

11

Week 11: Nov 10, 12

Virtual Memory

12

Week 12: Nov 17, 19

File Management

13

Week 13: Nov 24, 26

Networking

15

Week 14: Dec 1, 3

Security: authentication, cryptography

14

Course Text:
Nutt, G., Operating Systems: A Modern Perspective. Addison-Wesley, 1997.

Other reference texts:

All texts are available on reserve in the PSE library.

Computer Resources:
Students will be using the computer workstations in the ECE Computer Lab. You will receive system administrator privileges on selected machines for part of the course, as this is necessary for the completion of the assignments. Complete compliance with the McGill University codes of conduct concerning computer usage is expected and required. The course web page (http://www.cim.mcgill.ca/~jer/courses/os/) contains announcements, lecture summaries, assignments, exercises, and pointers to other useful resources.

Evaluation:
The overall course grade will be based on four assignments, a midterm, and a final examination.  Each assignment will consist of written problems and/or programming tasks. The fourth assignment can be done in groups of no more than three students. In this case, each student will be responsible for the work of the entire team. All other work must be completed individually.  Assignments are due on or before 16:00 of the due date. The penalty for all late submissions will be 15% if received within 24 hours, 30% if received within 48 hours of the due date; no assignments will be accepted thereafter. Relative weightings of each evaluation component will be as follows:

Component

Topic

Date

Weight

Assignment 1

Process control

due Sept 29

5%

Assignment 2

Threads Scheduling

due Oct 22

10%

Assignment 3

Concurrency

due Nov 12

10%

Assignment 4

Distributed processing

due Dec 3

15%

Midterm

 

Oct 15

20%

Final examination

 

Dec 16, 14:00

40%