CS 5204 - Advanced Operating Systems -Autumn 2001

VIRGINIA TECH
DEPARTMENT OF COMPUTER SCIENCE
Mondays 7:00 PM - NVGC Room 111
Instructor: A. Cyrus Sabzevari
E-mail: cyrus@cs.vt.edu (please prefix the subject of your message with CS 5204)
Home E-mail: acyrus@prodigy.net   (please prefix the subject of yourmessage with CS 5204)
  URL:http://www.nvc.cs.vt.edu/~cyrus/f01.html
Go to home page
This page last updated: 12/3/2001 by: ACS

  Message Board & Assignments updated 11/28

SYLLABUS :

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

Back to the top


READINGS:

Required reading:

  1. M. Singhal and N. Shivaratri, "Advanced Operating Systems", McGrawHill,1994.
Other recommended books and papers:
  1. J. Bacon, "Concurrent Systems: Operating Systems, Database and Distributed Systems: an integrated approach," 2nd edition, Addison Wesley, 1998.
  2. A. Silberschatz, P. Galvin, G. Gagne, "Applied Operating System Concepts",Wiley, 2000.
  3. R. Chow and T. Johnson, Distributed Operating Systems and Algorithms,AddisonWesley, 1997.
  4. L Sha, R. Rajkumar, John Lehoczky, "PriorityInheritanceProtocols: An Approach to real-time Synchronization", IEEE Trans.Comput.,Aug.1990.
  5. W. R. Stevens, "UNIX Network Programming" Prentice Hall, 1990.
  6. B. O. Gallmeister, "Programming for the RealWorld POSIX.4", O'Reilly&Associates, 1995.
  7. D. Butenhof, "Programming with POSIX Threads", Addison-Wesley, 1997.
  8. J. Pritchard, "COM and CORBA Side by Side: Architectures, Strategies, and Implementations",Addison-Wesley, 1999.
  9. R. Oberg, "Mastering RMI, Developing Enterprise Applications in Java and EJB",John Wiley, 2001.
  10. A. Tanenbaum, Modern Operating Systems, Prentice-Hall 1992.
  11. A. Tanenbaum, Distributed Operating Systems,Prentice Hall, 1995.
Back tothe top

PROJECTS

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

Back to the top


LECTURE OUTLINES:

  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

Back to the top