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).
CS 470 and engineering standing.
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.
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:
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.
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.
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