This is a graduate level course in Operating Systems designed for advanced supervisorysystems, multiprocessing and distributed processing. Students will be introduced to models of memory management, task scheduling, distributed processing and resourceallocation andsynchronization decisions.
Knowledge of basic computer system organizationandoperating system concepts is required (undergraduate level – CS3204or CS 4014). Knowledge of basic probability and statistics is recommended(undergraduatelevel –STAT 4714). Basic knowledge of Algorithmsis also recommended.
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. The course provides students with hands-on experience in operating systems through a project.
This class requires both analytical as well as excellent computer programming skills. You are required to program in eitherC++or Java though out the course (project) and must follow Object Orienteddesignand programming methods.
For a more detailed syllabus view: Detailed Syllabus
Required reading:
Students will work in teams for the project. A single final technical reportis due for the project. Project will involve design and programming. For project to complete successfully, it is very important to plan ahead and follow a schedule. Starting to work on a project a fewdaysbefore it is due, will very likely cause problems to its successful completion. The project due date will not be postponed. A 20 minute presentation may be scheduled for some of the projects. You will be required toprogramin either C++ or Java for the project. If you cannot program in eitherof these languages you should consider dropping the course.
Project statement in html
Useful links
Link to Object Management Group's(OMG)UML
resource page
Link to Rational Software's UML documentation
Link to OMG Corba resource page (not needed
for the project)
Link to IBM's pthread information
Link toa
POSIX thread tutorial page
Link to a POSIX thread programming
page
Link to JAVA thread page
Lecture
1 Outline - Introduction and Synchronization Mechanisms (Chapters 1&2)
in MS Word format
Lecture 2 Outline
- Deadlock (Chapter 3) in MS Word format
Lecture3
Outline- Memory Management and Virtual Memory in MS Word format
Lecture 4Outline-
Distributed Systems Basics (Chapter 4 and 5) in MS Word format
Lecture 5 Outline
- Mutual Exclusion in Distributed Systems (Chapter 6) in MS Word format
Lecture 6 Outline
- Deadlock in Distributed Systems (Chapter 7) in MS Word format
Lecture 7 Outline
- Agreement Problem (Chapter 8) in MS Word format
Lecture 8 Outline
- Distributed File Systems (Chapter 9) in MS Word format
Lecture 9 Outline
- Distributed Shared Memory (Chapter 10) in MS Word format
Lecture 10 Outline-
Distributed Scheduling (Chapter 11) in MS Word format
Lecture 12 Outline-
Recovery and Fault Tolerance(Chapter 12 and 13) in MS Word format
Lecture 13 Outline-
Security, Access and Data Flow (Chapter 14) in MS Word format