CS 5204: Operating Systems
Autumn 00
Thursdays 7:00-9:45 PM

Instructor: A. Cyrus Sabzevari

Email: cyrus@nvc.cs.vt.edu

Course Description:

This is a graduate level course on Operating Systems designed for advanced supervisory systems, multiprocessing and distributed processing. Students will be introduced to models of memory management, task scheduling, and other resource allocation decisions.

It discusses the basic concepts in centralized operating systems, including processes, synchronization, and memory management. Then, the coverage shifts to distributed operating systems. Topics covered include: communication models in distributed systems (client/server, remote procedure calls, and group communication), synchronization issues, processes and threads, scheduling, distributed shared memory, and distributed file systems. Several operating systems (e.g. UNIX and Windows NT) will be used to illustrate the concepts. Performance analysis techniques such as Markov chains and Mean Value Analysis
are introduced to study the performance aspects of mechanisms used in operating systems. The course provides students with hands-on experience in operating systems through a project.

Prerequisites:

- Knowledge of basic computer system organization and operating system concepts is required (undergraduate level – CS 3204 or CS 4014).

- Knowledge of basic probability and statistics is required (undergraduate level – STAT 4714).

- This class requires both analytical as well as excellent computer programming skills.  You will be required to program in either C, C++ or Java though out the course (project).
 

Text:

M. Singhal, N.G. Shivaratri, Advanced Concepts in Operating Systems, McGraw Hill, 1994.

Topics:

Overview (ch1)

Synchronization Mechanisms (ch2)

Deadlock (ch3) Virtual Memory ( not in text)

POSIX standards (not in the book)

Architectures of Distributed Systems (ch4) Theoretical Foundations (ch5) Distributed Mutual Exclusion (ch6) Distributed Deadlock Detection (ch7) Agreement Protocols (ch8)

Distributed File Systems (ch9)

Distributed Shared Memory (ch10)

Distributed Scheduling (ch11) Recovery (ch12) Fault Tolerance (Ch13)

Security (ch14 & 15)

Multiprocessor System Architectures (ch16)

Multiprocessor Operating Systems (ch17) Real-time Operating Systems (not in the book) Database Operating Systems (Ch 18 - 20)

Grading:

Every week, homework will be assigned.
A project will be assigned and students must design and develop software and write a complete design and test report for this project.
There will be an in-class midterm and final. All exams are closed book/notes.

Homework & Class Participation  5%

Project                                       15%

Midterm exam                            40%

Final exam                                 40%

Ph.D. Qualifiers:

The textbook for this course is recommended for the Ph.D. qualifying exam at Virginia Tech. Ph.D. qualifying exam includes three areas: Algorithms, Programming Languages, and Operating Systems.