CS 570 - Modern Operating Systems

Bulletin Description

Brief review of classical operating system concepts (process and memory management, process coordination, device drivers, file systems, starvation/deadlock). Modern topics of files systems (log-structured file systems, distributed file systems, memory-based file systems), operating system design (monolithic, communication-kernel, extensible/adaptable, distributed shared memory), multiprocessor issues (scheduling, synchronization, IPC), security (internet attacks, encryption, defenses). Inspection and modification of actual operating system code (Linux).

Prerequisites

CS 470 and engineering standing.

Expected Preparation

CS 570 is intended as a graduate-level course in operating systems. Students should be capable of programming in C or C++, have a general knowledge of computer organization, compilers, and data structures. Students should also have had an undergraduate course that covers styles of operating systems, process management, main store management, time management, device control, file structures, virtual machines, program interface, user interface, synchronization, mutual exclusion, resource allocation.

Student Learning Outcomes

Students will learn the principles and practice of modern operating systems design. They will understand the issues and be able to explain common approaches to design:

  1. Distributed operating systems
  2. Distributed file systems
  3. Distributed failure recovery mechanisms, and
  4. Protection and security mechanisms

Measures

Direct Measures:

Students are evaluated based on their exams, homeworks, and programming projects. Exams are graded, returned, and gone over in class to clarify the correct solutions. Homeworks are marked to indicate where errors where made, often describing what was wrong and pointing out the correct approach. Programming projects are both read and executed to evaluate their correctness. Errors are pointed out. Common errors or points of difficulty are discussed during class.

Indirect Measures:

Student understanding of the above learning outcomes will be evaluated based on exams, programming projects, and homework assignments. The exams will focus on a broad comprehension of the material, using problems that touch on all areas studied. Programming projects and homework assignments will be used to evaluate the student's ability to put theory into practice, solving real issues faced by distributed operating system designers.

Syllabus Information

Possible Textbook:

Distributed Systems: Concepts and Design
George Coulouris, Jean Dollimore, & Tim Kindberg
Second Edition, Addison-Wesley, 1994

Modern Operating Systems
Andrew S. Tanenbaum
Prentice Hall, 1992

Distributed Operating Systems Concepts and Design
Pradeep K. Sinha
IEEE Computer Society Press, ISBN - 0-7803-1119-1

Advanced Concepts in Operating Systems
Mukesh Singhal & Niranjan G. Shivaratri
McGraw Hill, 199x