CS 570 - Modern Operating Systems

 

Credits: 3

 

Course Description

 

The course briefly reviews classical operating system concepts and then introduces the fundamental paradigms of distributed operating systems including network communication paradigms, internetworking, and remote procedure calls. The course takes an in-depth look at distributed resource management (e.g., distributed scheduling and synchronization, DSM and DFS systems). Topics related to multiprocessor operating systems, and issues involved in protection of resources are also covered. Students will inspect and modify actual operating system code.

 

Prereqs: CS-470, or consent of instructor.

 

Needed Skills

 

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.

 

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

 

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.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

0

0

Data Structures

4

0

Algorithms & Software Design

20

8

Computer Organization and Architecture

3

1

Concepts of Programming Languages

6

0

Social and ethical issues

2

0

Total

35

9

 

Math Fundamentals: none

 

Data structures (4): Core (4): Distributed and multiprocessor OS data structures (process mgmt, memory mgmt, marshalling, etc) (2), Distributed file system data structures (2) Advanced (0):

 

Algorithms and Software Design (28): Core (20): Synchronization (time and coordination) algorithms (3), Distributed scheduling and process migration (2), Consistency algorithms and protocols (6), Distributed transactions and concurrency control (2), Fault tolerance and checkpointing algorithms (1), Security/Privacy and authentication algorithms (1), Naming services and service discovery (2), Network protocols (3)
Advanced (8): Advanced security/authentication algorithms (2), High availability and robust fault tolerance (1), Adaptive consistency algorithms (3), Scalable synchronization and transaction algorithms (1), Wide-area distributed operating system approaches (1);

 

Computer Organization and Architecture (4): Core (2): Distributed operating system models (1), Distributed file system architectures (1)
Advanced (1): Adaptive kernel architectures (1)

 

Concepts of Programming Languages (6): Core(6): Client/Server programming models (1), Shared memory programming models (2), Distributed file system APIs (2), Shared memory programming models (1).;

 

Social and Ethical Issues (2): Discussion of computer security and privacy mechanisms and discussion of professional and academic integrity (no assignments)

 

Oral Communication (presentations)

 

none

 

Written Communication

 

1-3 homeworks, 2-4 programming projects

 

Coverage

 

Theoretical Content: 30%

· mutual exclusion, causality, virtual time, (virtual) shared memory, remote services, transactions, conflicts, system reliability and availability, security levels

Problem Analysis: 30%

· Synchronization issues, scalability concerns, resource management and allocation, global state/knowledge maintenance, consistency problems, detecting/preventing deadlocks and starvation, scheduling goals, naming issues.

 

Solution Design: 40%

· clock algorithms, synchronization algorithms, agreement protocols, shared memory consistency protocols, distributed file system consistency, cache coherence protocols, scheduling algorithms, load balancing approaches, distributed deadlock detection, checkpointing approaches, cryptograph solutions, n-phase commit protocols, remote procedure callsStudent evaluation and feedback

 

Student evaluation and feedback

 

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.

 

Course Evaluation Questions

 

The course has helped me:

37. Enumerate the list of frequently used consistency models and cache coherence protocols.

38. Design a distributed scheduling algorithm that achieves certain criteria (e.g., load balancing).

39. Compare and contrast distributed file system abstractions

40. Solve synchronization problems in a distributed system

41. Compare and contrast distributed checkpointing failure recovery approaches

42. Evaluate the level of security and protection offered by a distributed system.

43. Develop my own implementation of a distributed system or component of a distributed system.

 

Grading

 

Grade is determined by performance on homeworks/programming assignments, and exams. (Weights are examples only; actual weights used may vary with instructor.) Final grades will be assigned according to the following scale:.

 

A typical weighting is:

Homework & Programs 50%

Examinations 50%

 

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