Step 3
Operating Systems
How many programs share one machine: processes, threads, memory and file systems. Server, mobile or embedded, this sits underneath all of them.
Know these firstComputer ArchitectureData Structures
- Video course
- Video course: Berkeley CS 162 Operating Systems
- Processes and threads
- CPU scheduling
- Synchronization
- Deadlock
- Virtual memory
- File systems
- System calls
Why it matters
A browser, a music player and a compiler run at the same time, each acting as if it owned the whole computer. The operating system makes that possible. A race condition in a multithreaded server, a frozen phone app, a full disk: this course explains all of them.
What to know
- Processes versus threads; context switching.
- CPU scheduling: FIFO, round robin, priority.
- Race conditions, mutexes, semaphores, condition variables.
- Deadlock: its conditions and how to prevent it.
- Virtual memory, paging and page faults.
- File systems: files, directories, inodes, on-disk layout.
- System calls: fork, exec, open, read.
Practice and projects
- Use Linux (WSL is enough): watch processes with ps, top and kill.
- Write a small shell in C with fork and exec.
- Write a program where two threads increment the same counter, reproduce the race yourself, then fix it with a lock.
Common mistakes
- Studying only from slides; the short OSTEP chapters are far clearer.
- Calling synchronization code correct because it worked once; races may show up one time in a thousand.