Hello.
In last couple of years, I have taught basics of system programming and operating system in multiple computer science courses, and fortunately, I kept some records of them in YouTube. The following listing is the collection of these videos categorized by topics. I hope these useful for those who want to study these topics by themselves.
You can find the lecture slides at https://github.com/hongshin/OperatingSystem, and you can also check the programming examples in https://github.com/hongshin/OperatingSystem/tree/sysprog.
Please send me an email via hongshin@gmail.com, if you have any question or request.
- Shin Hong
Connecting Linux System
Linux Command-line Basics
What is Operating System
Operating System Structure
Where is Operating System
CPU Virtualization
Process Concept
Process Lifecycle
Process API
System Call
Context Switching
Process Scheduling
Priority Scheduling
Lottery Scheduling
Address Space
Address Translation (1)
Address Translation (2)
Address Translation (3)
Paging (1)
Paging (2)
Paging (3)
Swapping (1)
Swapping (2)
Swapping (3)
Swapping (4)
Signal (1)
Signal (2)
Pipe (1)
Pipe (2)
Message Passing
Shared Memory
Remote Function Call
Fifo with flock
Overall process
Preprocessing
Compilation
Linking
Static Library
Runtime Interpositioning (1)
Runtime Interpositioning (2)
Multithreading: Introduction
Race Condition
Synchronization (1)
Synchronization (2)
Threading Libraries
PThread
Semaphore and Conditional Variable
Thread Creation and Join
Memory Sharing
Conditional Variable
Bounded Buffer
Readers-writer Lock
Dinning Philosophers
Monitor
Concurrency bug, Atomicity violation, order violation
Data race (1)
Data race (2)
Eraser
Deadlock
Hard Disk Drive (1)
Hard Disk Drive (2)
Hard Disk Drive (3)
File System Interface (1)
File System Interface (2)