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:
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.
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% |