Operating Systems and System Software
Core concepts
Understand the OS as resource manager and abstraction layer: process management (states, PCB, context switching, scheduling - FCFS, SJF, round robin, priority), synchronization (critical section, semaphores, deadlock's four Coffman conditions), memory management (paging, segmentation, virtual memory, thrashing, page replacement - FIFO, LRU, optimal), file systems (FAT, NTFS, inodes, directories), and I/O and device management (buffering, spooling, drivers). System software includes compilers, interpreters, assemblers, linkers, loaders, and utilities. Know the difference between multiprogramming, multitasking, multiprocessing, and multithreading, and between kernel mode and user mode.
Traps to watch
SJF is optimal for average waiting time but needs burst prediction and can starve long jobs; round robin's performance depends on quantum size. FIFO page replacement suffers Belady's anomaly (more frames, more faults), while LRU and optimal do not. Deadlock prevention vs avoidance vs detection are distinct. A compiler translates the whole program before execution; an interpreter translates line by line - questions swap these. Virtual memory uses disk as an extension of RAM but is far slower; thrashing is excessive paging, not "too much RAM."
Worked example / rule of thumb
Three processes arrive at time 0 with bursts 8, 4, 2 under SJF: order 2, 4, 8 → waiting times 0, 2, 6, average 2.67. Under FCFS (8,4,2): waits 0, 8, 12, average 6.67. Rule of thumb: list completion times first, then subtract arrival and burst to get waiting time; never average burst times.