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)
POSIX standards (not in the book)
Distributed File Systems (ch9)
Distributed Shared Memory (ch10)
Security (ch14 & 15)
Multiprocessor System Architectures (ch16)
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.