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 link |
Operating Systems Services [Chapter 2] |
1. OS services 2. System calls 3. Linking and loading |
YouTube link |
Processes [Chapter 3] |
1. Process creation and termination 2. Ready queue and wait queue 3. fork() and exec() |
YouTube link |
1. Message queues 2. Pipes, RPC, and sockets |
YouTube link |
|
Threads [Chapter 4] |
1. Notion of threads 2. Creation and management 3. Java, PThreads, OpenMP, Intel TBB 4. Signals 5. Kernel threads |
YouTube link |
Scheduling [Chapter 5, Part I] |
1. Scheduling 2. Shortest job first, FCS 3. Multicore systems 4. Real time scheduling |
YouTube link |
[Chapter 5, Part II] |
1. Linux, Windows and Solaris schedulers 2. Algorithmic considerations 3. Proof that SJF is optimal |
YouTube
link |
Synchronization [Chapter 6] |
1. Locks: Peterson's Algorithm 2. Locks using atomic operations 3. Semaphores 4. Monitors and conditional variables |
YouTube
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 |
YouTube
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 |
YouTube
link |
Main memory [Chapter 9, Part I] |
1. Page tables 2. TLBs 3. Inverted page tables and hash-based page tables |
YouTube
link |
Main memory [Chapter 9, Part II] |
1. Sun Sparc and Intel architectures 2. Page swapping |
YouTube
link |
Virtual memory [Chapter 10, Part I] |
1. Demand paging
2. Copy on write
3. Page replacement algorithms |
YouTube
link |
Virtual memory [Chapter 10, Part II] |
1. Thrashing 2. Buddy and slab allocators 3. Page table and TLB optimizations |
YouTube
link |
Storage Structures [Chapter 11] |
1. Design of hard disks 2. Flash drives 3. The boot process 4. RAID systems |
YouTube
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 |
YouTube
link |
File-System Interface [Chapter 13] |
1. Concept of files
2. Sequential and random access
3. Directory structure and mount points |
YouTube
link |
File-System Implementation [Chapter 14] |
1. File System Layers 2. FAT tables and inodes 3. Free space management 4. Consistency and recovery |
YouTube
link |
File-System Internals [Chapter 15] |
1. Mounting local and distributed file
systems 2. Virtual file system (VFS) 3. Network file system (NFS) |
YouTube
link |
Security [Chapter 16, Part I] |
1. Buffer overflow attacks 2. Program threats 3. Symmetric and asymmetric encryption |
YouTube link |
Security [Chapter 16, Part II] |
1. Digital signatures and authentication 2. Network security 3. Example: Windows 10 |
YouTube link |
Protection [Chapter 17] |
1. Access matrix 2. Access control lists and capability lists 3. Lock and key based security 4. Language based protection |
YouTube link |
Virtualization
[Chapter 18, Part I] |
1. Types of virtualization 2. CPU virtualization 3. Memory virtualization |
YouTube link |
Virtualization
[Chapter 18, Part II] |
1. Application containment 2. Details and corner cases |
YouTube 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 |
YouTube link |
Networks and Distributed Systems [Chapter 19, Part II] |
1. Distributed file systems 2. File cache consistency |
YouTube link |
Linux Kernel [Chapter 20, Part I] |
1. Kernel modules 2. Process management 3. Scheduling |
YouTube link |
Linux Kernel [Chapter 20, Part II] |
1. Kernel memory management 2. Linux file systems 3. IPC 4. Networking and security |
YouTube link |
Windows 10 [Chapter 21, Part I] |
1. Major subsystems 2. Scheduling 3. Virtual memory management 4. I/O manager 5. Registry |
YouTube 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 |
YouTube link |