Semester Offering: January

This course is about the concepts, structures, and mechanisms of operating systems taking into account their evolution and the rapid advances in technology, resulting into a variety of systems. The variety is not just in the capacity and speed of machines, their interconnections and interactions, but with the newer applications with demands on systems requirements. The intent of the course is to develop a conceptual framework from the point of view of the management of system resources and user interface, and relate them to contemporary design issues and to current trends in technology.


Evolution of Operating Systems. Processes and Threads. Multiprogramming and Time Sharing. Concurrency Management. Scheduling. Devices. Files. User Interface. Virtual Systems. Resources Allocation. Distributed Computing and Network Based Systems. Web Server System. Emerging Trends.




I.            Evolution of Operating Systems
1.     Early Operating Systems
2.     Improvements in System Utilization
3.     Spooling
4.     Interrupts and Interrupt Handling

II.          Processes and Threads
1.     Attributes
2.     State Space Description of the Operating System.

III.         Multiprogramming and Time Sharing
1.     Sharing of Space and Time
2.     Protection and Integrity

IV.         Concurrency Management
1.     Erroneous Results from Concurrent Accesses
2.     Critical Sections
3.     Semaphores

V.          Scheduling
1.     Queuing and response times
2.     Spooling
3.     Long and Short Term Scheduling
4.     Round Robin.
5.     Real-time scheduling Policies
6.     Multiprocessor Scheduling

VI.         Devices
1.     Handlers
2.     Producer and consumer problem.
3.     Buffers

VII.       Files
1.     Files regarded as Virtual Devices
2.     Directories
3.     Access attributes
4.     File management

VIII.      User Interface
1.     Command Line interpreter
2.     Graphical User Interface.

IX.         Virtual Systems
1.     Virtual Memory
2.     Virtual Devices and Generalization to Virtual Systems

X.          Resources Allocation
1.     Issues, policy and mechanism
2.     Deadlock, preconditions, prevention
3.     Banker’s Algorithm.
4.     Dining Philosopher’s problem

XI.         Distributed Computing and Network Based Systems
1.     Client Server Models
2.     Peer-to-Peer Computing

XII.       Performance
1.     Performance modeling
2.     Load Balancing
3.     Cache Management

XIII.      Emerging Trends


Lecture Notes


H.M. Dietel:
An Introduction to Operating Systems, Revise Second Edition, Addison Wesley, Massachusetts, 1990.

W. Stallings:
Operating Systems, Prentice Hall, 2002.

S.V. Raghavan and S. K. Tripathi:
Networked Multimedia Systems, Prentice-Hall International Inc., 1998.

A. S. Tanenbaum and M. Van Steen:
Distributed Systems, Pearson Education Asia, 2002.

D. A. Menasce and V. A. F. Almeida:
Web Performance, Metrics and Models, Prentice Hall, 1998.


ACM Computer Surveys
ACM Transactions on Programming Languages and Systems
Communications of the ACM Distributed Computing


The final grade will be computed from the following constituent parts: 

Mid-semester exam       - 40%
Final exam                    - 40%
Assignments/projects    - 20%

Closed-book examination is used for both mid-semester and final examinations