Operating Systems

Course: ELL 783 and ELL 405
Semester II, 2021-22
Credits: 4 (3-0-2)



Instructor: Prof. Smruti R. Sarangi

Lectures
: Slot A

Piazza link:      piazza.com/iit_delhi/spring2022/ell783
Course Load:  Quizzes (15%), Minor (20%), Major (25%), Assignment 1 (15%), Assignment 2 (25%)

Office Hours: Just send me an e-mail.

Passing Criteria: Minimum 25% in both theory and assignments. Overall: 30%.
                             Audit pass: Minimum 25% in both theory and assignments. Overall: 40%



Teaching Assistants:

1. Tanvi Singla
2. Akanksha Dixit
3. Priyal Thakkar
4. Aryama Kumar
5. Paresh Bhagat

 

Reference Books
[Textbook]  Operating System Concepts, Tenth edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne, Wiley.
                    Link to slides

                    All the slides are being used with the authors' permission. The videos are based on the original slides of Silberschatz, Galvin, and Gagne. 
                    They have also been created with the authors' permission. Some minor modifications have been made. Silberschatz et al. are not responsible for
                    any errors of omission and commission insofar as the modifications and the videos are concerned.


Lectures and Slides:

Date
Lecture
Topics
Link to the Video
Week 1
Introduction to Operating Systems
[Chapter 1]
1. Introduction to operating systems
2. Basic functions
3. Links to advanced study
youtube YouTube link
Week 1
Operating Systems Services
[Chapter 2]
1. OS services
2. System calls
3. Linking and loading
youtubeYouTube link
Week 2 Processes
[Chapter 3]
1. Process creation and termination
2. Ready queue and wait queue
3. fork() and exec()
youtubeYouTube link
Week 2

1. Message queues
2. Pipes, RPC, and sockets
youtubeYouTube link
Week 2 Threads
[Chapter 4]
1. Notion of threads
2. Creation and management
3. Java, PThreads, OpenMP, Intel TBB
4. Signals
5. Kernel threads
youtubeYouTube link
Week 3 Scheduling
[Chapter 5, Part I]
1. Scheduling
2. Shortest job first, FCS
3. Multicore systems
4. Real time scheduling
youtubeYouTube link
Week 3
[Chapter 5, Part II]
1. Linux, Windows and Solaris schedulers
2. Algorithmic considerations
3. Proof that SJF is optimal
youtubeYouTube link
Week 4 Synchronization
[Chapter 6]
1. Locks: Peterson's Algorithm
2. Locks using atomic operations
3. Semaphores
4. Monitors and conditional variables
youtubeYouTube link
Week 4 Examples of Synchronization
[Chapter 7]
1. Bounded buffer problem
2. Readers-writers lock
3. Dining philosophers problem
4. Examples of Windows, Linux, and Java
youtubeYouTube link
Week 4 Deadlocks
[Chapter 8]
1. Four necessary conditions for a deadlock
2. Hold and wait edges
3. Deadlock prevention and avoidance
4. The Banker's algorithm
5. Deadlock recovery
youtubeYouTube link
Week 5 Main memory
[Chapter 9, Part I]
1. Page tables
2. TLBs
3. Inverted page tables and hash-based page tables
youtubeouTube link
Week 5 Main memory
[Chapter 9, Part II]
1. Sun Sparc and Intel architectures
2. Page swapping
youtubeYouTube link
Week 5 Virtual memory
[Chapter 10, Part I]
1. Demand paging
2. Copy on write
3. Page replacement algorithms
youtubeYouTube link
Week 6
Virtual memory
[Chapter 10, Part II]
1. Thrashing
2. Buddy and slab allocators
3. Page table and TLB optimizations
youtubeYouTube link
  Storage Structures
[Chapter 11]
1. Design of hard disks
2. Flash drives
3. The boot process
4. RAID systems
youtubeYouTube link
Week 7 I/O Systems
[Chapter 12]
1. Memory-mapped and I/O-mapped addressing
2. DMA
3. Polling and interrupts
4. Kernel's I/O subsystem
youtubeYouTube link

File-System Interface
[Chapter 13]
1. Concept of files
2. Sequential and random access
3. Directory structure and mount points
youtubeYouTube link
Week 8 File-System Implementation
[Chapter 14]
1. File System Layers
2. FAT tables and inodes
3. Free space management
4. Consistency and recovery
youtubeYouTube link
Week 9 File-System Internals
[Chapter 15]
1. Mounting local and distributed file systems
2. Virtual file system (VFS)
3. Network file system (NFS)
youtubeYouTube link
  Security
[Chapter 16, Part I]
1. Buffer overflow attacks
2. Program threats
3. Symmetric and asymmetric encryption
youtubeYouTube link
Week 10 Security
[Chapter 16, Part II]
1. Digital signatures and authentication
2. Network security
3. Example: Windows 10
youtubeYouTube link
  Protection
[Chapter 17]
1. Access matrix
2. Access control lists and capability lists
3. Lock and key based security
4. Language based protection
youtubeYouTube link
Week 11 Virtualization
[Chapter 18, Part I]
1. Types of virtualization
2. CPU virtualization
3. Memory virtualization
youtubeYouTube link
  Virtualization
[Chapter 18, Part II]
1. Application containment
2. Details and corner cases
youtubeYouTube link
Week 12 Linux Kernel
[Chapter 20, Part I]
1. Kernel modules
2. Process management
3. Scheduling
youtubeYouTube link
  Linux Kernel
[Chapter 20, Part II]
1. Kernel memory management
2. Linux file systems
3. IPC
4. Networking and security
youtubeYouTube link