CS703 : Advanced Operating Systems

Course Overview

Course Synopsis

This is a graduate level course. The objectives of the course are to explore the design principles of computer operating systems and to emphasize on implementation details of various sub-modules of operating systems. The course will focus on the engineering and performance trade-offs in the design of operating systems. The purpose will be to teach not only what operating systems are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. The emphasize will be on the practical aspects of the topics through the case study of Linux kernel as an example of a commercial operating system. The course will cover programming aspects through some programming assignments. It will also introduce the state of the art OS research topics through a few research paper reading assignments.

Course Learning Outcomes

Upon successful completion of the course the students would be able to:

  • Understand in great detail how and why different parts of an operating system work.
  • Understand the engineering tradeoffs involved in the design of various sub-modules of an operating system.
  • Understand how operating systems are structured, what are alternative OS architectures and how different modules interact together to form a cohesive and complex system.
  • Write non-trivial programs in C or C++ that would invoke OS services via system calls in an efficient manner.
  • Understand various contemporary research issues in operating systems e.g. security and protection, efficient memory management, I/O buffering, device handling, faster and more efficient file systems and OS architectures.


Course Calendar

TopicLectureResourcePage
Course Objectives, Introduction, Issues involved in the Design of Operating Systems1Tanenbaum (2001)
Major Components, Structure and Internal Architecture of an OS, Monolithic VS Micro-kernel2Tanenbaum (2001)
Linking and Loading Anatomy of a Process; Static, Dynamic and Shared libraries3Bryant and O’ Hallaron (2002)
Processes: Definition, Address Space; Context Switching, Process Management Models4Bryant and O’ Hallaron (2002)
Process Management Models, State Machines, PCB, System Calls for Process Management5Tanenbaum (2001)
fork() Examples, Zombies, Wait and Waitpid System Calls, Concurrency, Threads6Tanenbaum (2001)
Threads: Design Space, Address Space, User and Kernel Level Threads7Tanenbaum (2001)
POSIX Threads: Interface, e.g clone() System Call, Process / Threads States, FSM in Linux8Linux man pages
Assignment No. 1
Shared Variables, Concurrency and Synchronization, Critical Sections9Tanenbaum (2001), Stallings (2004)
Concurrency Examples, Locks, Implementing Locks, Semaphores10Tanenbaum (2001), Stallings (2004)
Producer Consumer Problem, Semaphores, Condition Variables and Monitors11Tanenbaum (2001), Stallings (2004)
Readers / Writers Problem, Thread Safety and Reentrant Functions, Solving Thread Un-safety12Tanenbaum (2001), Stallings (2004)
Deadlocks: Definition, Required Conditions, Examples, Detection, Avoidance, Prevention13Tanenbaum (2001), Stallings (2004)
Thread Usage Paradigms, Paper by Hauser et al., Pros and Cons of Different Paradigms14Research paper by Hauser et al.
Design Alternatives for Concurrent Servers, CPU Scheduling15Tanenbaum (2001), Stallings (2004)
Scheduling: Round Robin, Priority Scheduling, STCF16Tanenbaum (2001), Stallings (2004)
Assignment No. 2
Multilevel Queue, Scheduling in: Unix, Linux; Multiprocessor Systems17Stallings (2004)
Assignment and Scheduling of Processes / Threads to Processors, Real-time Systems18Stallings (2004)
Real-time Operating Systems19Stallings (2004)
Goals of a good Allocator, Memory Fragmentation, Implementation Issues of Memory Allocator20Tanenbaum (2001)
Explicit Free Lists Base Allocator, Segregated Free Lists, Exploiting Allocation Patterns21Tanenbaum (2001)
Overview of 1 - 21 Lectures22
Mid-term Examination
Goals of OS Memory Management, Multiprogramming, Virtual Addresses, Fixed & Variable Part23Tanenbaum (2001), Stallings (2004)
Paging, Address Translation, Page Tables & Page Table Entries, Multi-level Address Translation24Tanenbaum (2001), Stallings (2004)
Segmentation, Combined Segmentation & Paging, Efficient Translation and Caching25Tanenbaum (2001), Stallings (2004)
Set Associative & Fully Associative Cache, Demand Paging, Page Replacement Algorithms26Tanenbaum (2001), Stallings (2004)
Page Replacement, Thrashing, Working Set Model, Page Fault Frequency, Copy on Write27Tanenbaum (2001), Stallings (2004)
Page Fault Frequency, Sharing, Copy on Write, Mapped Files, P6 Memory System28Tanenbaum (2001), Stallings (2004)
File Systems: Basic Operations, File Access Methods, Directories, Protection29Tanenbaum (2001), Stallings (2004)
Indexed Allocation, i-node format, File Buffer Cache, Caching Writes, Read Ahead30Tanenbaum (2001), Stallings (2004)
Assignment No. 3
Consistency Problem, Atomic Disk Operations31Tanenbaum (2001), Stallings (2004)
Files Systems: Deleting a File, Bogus Reference Count, Creating a new File32Tanenbaum (2001), Stallings (2004)
File Systems: Physical Disk Structure, Disk Scheduling, BSD 4.4 FFS33Tanenbaum (2001), Stallings (2004)
File Systems: Log Structured File Systems34Tanenbaum (2001), Stallings (2004)
I/O Subsystem: Goals, Layers, Direct VS Memory Mapped, Interrupt Driven, Polled; DMA35Tanenbaum (2001), Stallings (2004)
Course Viva
Device Independent I/O Software Layer, Buffered & Un-buffered I/O, Block & Character Devices36Tanenbaum (2001), Stallings (2004)
Interrupt Handlers, Interrupts & Exceptions, Linux Interrupt Handling, Top, Bottom Halfs37Tanenbaum (2001), Stallings (2004)
Loadable Kernel Modules & Device Drivers, Linux Module: Management, Conflict Resolution38Tanenbaum (2001), Stallings (2004)
Security Issues, Policy VS Mechanism, Design Principles for Security39Tanenbaum (2001)
Presentations
User Authentication, Password Based Authentication, Unix Password Scheme40Tanenbaum (2001)
ACL VS Capabilities, Delegation VS Revocation, Operations on Capabilities, Roles41Tanenbaum (2001)
Trojan Horses, Login Spoofing Attacks, Logic Bombs, Trap Doors, Buffer & Stack Overflow42Tanenbaum (2001)
Types of Buffer Overflow Attacks, StackGuard & PointGurad, Libsafe43Tanenbaum (2001)
Java Security, Unix File Security, Setuid Programs, Windows Security, SE Linux44Stallings (2004)
OS Research Directions, Reliability of Commodity OSes, Mobile Phone Risks and Security45
Final-term Examination
 
 
Back to Top