Operating Systems

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



Instructor: Prof. Smruti R. Sarangi

Lectures
: Monday and Thursday: 8 AM to 9:30 AM

Piazza link:     piazza.com/iit_delhi/spring2021/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. Sandeep Kumar
2. Nivedita Shrivastava
3. Md Ragib Hasan
4. Suneel Padala


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
8/2/2021
Introduction to Operating Systems
[Chapter 1]
1. Introduction to operating systems
2. Basic functions
3. Links to advanced study
youtube YouTube link
10/2/2021
Operating Systems Services
[Chapter 2]
1. OS services
2. System calls
3. Linking and loading
youtubeYouTube link
15/2/2021
Processes
[Chapter 3]
1. Process creation and termination
2. Ready queue and wait queue
3. fork() and exec()
youtubeYouTube link


1. Message queues
2. Pipes, RPC, and sockets
youtubeYouTube link
19/2/2021
Threads
[Chapter 4]
1. Notion of threads
2. Creation and management
3. Java, PThreads, OpenMP, Intel TBB
4. Signals
5. Kernel threads
youtubeYouTube link
24/2/2021
Scheduling
[Chapter 5, Part I]
1. Scheduling
2. Shortest job first, FCS
3. Multicore systems
4. Real time scheduling
youtubeYouTube link

[Chapter 5, Part II]
1. Linux, Windows and Solaris schedulers
2. Algorithmic considerations
3. Proof that SJF is optimal
youtubeYouTube link
5/3/2021
Synchronization
[Chapter 6]
1. Locks: Peterson's Algorithm
2. Locks using atomic operations
3. Semaphores
4. Monitors and conditional variables
youtubeYouTube link
6/3/21
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
11/3/21
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
25/3/21
Main memory
[Chapter 9, Part I]
1. Page tables
2. TLBs
3. Inverted page tables and hash-based page tables
youtubeYouTube link
30/3/21
Main memory
[Chapter 9, Part II]
1. Sun Sparc and Intel architectures
2. Page swapping
youtubeYouTube link
30/3/21
Virtual memory
[Chapter 10, Part I]
1. Demand paging
2. Copy on write
3. Page replacement algorithms
youtubeYouTube link
3/4/21
Virtual memory
[Chapter 10, Part II]
1. Thrashing
2. Buddy and slab allocators
3. Page table and TLB optimizations
youtubeYouTube link
3/4/21
Storage Structures
[Chapter 11]
1. Design of hard disks
2. Flash drives
3. The boot process
4. RAID systems
youtubeYouTube link
10/4/21
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
14/4/21
File-System Interface
[Chapter 13]
1. Concept of files
2. Sequential and random access
3. Directory structure and mount points
youtubeYouTube link
15/4/21
File-System Implementation
[Chapter 14]
1. File System Layers
2. FAT tables and inodes
3. Free space management
4. Consistency and recovery
youtubeYouTube link
18/4/21
File-System Internals
[Chapter 15]
1. Mounting local and distributed file systems
2. Virtual file system (VFS)
3. Network file system (NFS)
youtubeYouTube link
24/4/21
Security
[Chapter 16, Part I]
1. Buffer overflow attacks
2. Program threats
3. Symmetric and asymmetric encryption
youtubeYouTube link
24/4/21
Security
[Chapter 16, Part II]
1. Digital signatures and authentication
2. Network security
3. Example: Windows 10
youtubeYouTube link
1/5/21
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