Operating Systems




Instructor: Prof. Smruti R. Sarangi


[Textbook]  Operating System Concepts, Tenth edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne, Wiley.
                    Link to the 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.


Lecture Videos:

Lecture
Topics
Link to the Video
Introduction to Operating Systems
[Chapter 1]
1. Introduction to operating systems
2. Basic functions
3. Links to advanced study
youtube YouTube link
Operating Systems Services
[Chapter 2]
1. OS services
2. System calls
3. Linking and loading
youtubeYouTube link
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
Threads
[Chapter 4]
1. Notion of threads
2. Creation and management
3. Java, PThreads, OpenMP, Intel TBB
4. Signals
5. Kernel threads
youtubeYouTube link
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
Synchronization
[Chapter 6]
1. Locks: Peterson's Algorithm
2. Locks using atomic operations
3. Semaphores
4. Monitors and conditional variables
youtubeYouTube link
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
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
Main memory
[Chapter 9, Part I]
1. Page tables
2. TLBs
3. Inverted page tables and hash-based page tables
youtubeYouTube link
Main memory
[Chapter 9, Part II]
1. Sun Sparc and Intel architectures
2. Page swapping
youtubeYouTube link
Virtual memory
[Chapter 10, Part I]
1. Demand paging
2. Copy on write
3. Page replacement algorithms
youtubeYouTube link
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
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
File-System Implementation
[Chapter 14]
1. File System Layers
2. FAT tables and inodes
3. Free space management
4. Consistency and recovery
youtubeYouTube link
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
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
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
Networks and Distributed Systems
[Chapter 19, Part I]
1. The 7-layer OSI model
2. IP, TCP, and UDP
3. Introduction to distributed systems
youtubeYouTube link
Networks and Distributed Systems
[Chapter 19, Part II]
1. Distributed file systems
2. File cache consistency
youtubeYouTube link
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
Windows 10
[Chapter 21, Part I]
1. Major subsystems
2. Scheduling
3. Virtual memory management
4. I/O manager
5. Registry
youtubeYouTube link
Windows 10
[Chapter 21, Part II]
1. Windows 10 file systems
2. The networking stack
3. Scheduling priorities and process management
4. IPC in Windows 10
youtubeYouTube link