Concurrency Control – Everything from mutex to critical section is super important. Almost a quarter of OS question asked in technical interviews are from this section.
Scheduling Algorithms – FCFS, Round Robin, Priority Based Scheduling, etc.
Memory Management – Page Replacement Algorithms, RAM vs Disk vs Cache vs Register, Alignment, Heap Memory, Stack, Garbage Collectors, Belady’s Anomaly, Memory Leaks.
Process Management – Threads, Process Group, Child Process, Forking, Merging, Deadlocks.
Process Communication / Co-ordination – Shared Memory, Message Passing, MISD, MIMD, etc.
Miscellaneous – Interrupts, Thrashing, Virtual Memory, Spooling, Fragmentation, Piping, IO Streams, Buffer Overflow.
OS related question often touch upon other related topics like sockets, system programming, Linux commands, etc.
a) Books –
- Galvin, Gagne (Dino Book)
- Andrew S.Tanenbaum
- : Tutorials Point
- : Saurabh School(YouTube)
- : NPTEL(YouTube)
Process Management – Data structure used to represent process(PCB), process states(new,ready,running,waiting,terminate), context switch, job queue vs ready queue, CPU schedulers(short term vs long term schedulers).
CPU Scheduling Algorithms – First Come First Serve, Shortest Job First, Priority Scheduling, Round Robin and Multilevel Queue. You should be clear with advantages and disadvantages of all these algorithms and you should be able to implement any of these algorithms.
Process Synchronization – You should be familiar with race conditions, software and hardware solutions for prevention of race condition(Peterson solution), concept of mutex and semaphore, producer-consumer problem, reader-writer problem, deadlock(prevention and avoidance), banker algorithm etc.
Process vs Threads – This is a very famous interview question. You should be familiar with advantages and disadvantages of both, creation of threads and processes(fork()), inter-process communication etc.
Memory Management – Continuous memory allocation(first fit, best fit, worst fit algorithms), internal and external fragmentation, concept of paging(non continuous allocation), segmentation and virtual memory, page replacement techniques(FIFO, optimal and LRU), Belady’s anomaly, thrashing.
Process Management(including Synchronization)
CPU Scheduling(Round Robin, Shortest Job Scheduling, etc)
Memory Allocation(includes Paging, Swapping,Segmentation etc)
Structure of OS(includes VM,System calls)