Topics
What an operating system does
Know the OS as resource manager between apps and hardware.
Processes, PCB and process states
Understand process states and the process control block.
Creating processes: fork() and exec()
See how fork duplicates a process (classic output question).
Threads vs processes
Know what threads share and why they are lighter.
CPU scheduling: FCFS
Compute waiting and turnaround times with FCFS.
SJF and SRTF scheduling
Prefer the shortest job and see starvation.
Round robin scheduling
Share the CPU fairly with a time quantum.
Priority scheduling and aging
Schedule by priority and fix starvation with aging.
Race conditions and critical sections
See how unsynchronised access corrupts data.
Mutex and locks
Protect critical sections with locks.
Semaphores
Use counting semaphores for limited resources.
Producer-consumer problem
Coordinate a bounded buffer.
Dining philosophers
See deadlock and starvation in a classic problem.
Deadlock: conditions and prevention
Know the four Coffman conditions and how to break them.
Banker's algorithm
Check safe states before granting resources.
Memory allocation: first fit, best fit, worst fit
Allocate memory partitions and see fragmentation.
Paging and page tables
Translate logical to physical addresses.
Page replacement: FIFO, LRU, Optimal
Count page faults with different algorithms.
Virtual memory and thrashing
Understand demand paging and why thrashing happens.
Disk scheduling: FCFS, SSTF, SCAN
Order disk requests to reduce head movement.
File systems and directories
See how files, inodes and directories are organised.
System calls and the shell
Understand user mode vs kernel mode and how a shell runs commands.