Topics:
- Basic Unix system calls: fork(), exec(), dup(),
pipe().
- Setjmp()/longjmp().
- Pthreads & CBThreads.
- Thread basics, plus synchronization primitives: Monitors/CV's, Semaphores.
- Synchronization problems like the bounded buffer problem and
the Dining Philosophers.
- User/system threads. One-to-one, many-to-one, many-to-many.
- System call structure.
- Serial and DMA I/O.
- Kernel mode, interrupts.
- Interprocess communication: Naming, buffering, synchronization.
- Process creation.
- Short, medium, long-term scheduling.
- Scheduling algorithms.
- Thread scheduling.
Topics:
- Deadlock.
- Memory Management: Address binding, logical address spaces, swapping, contiguous
allocation, fragmentation, paging -- all kinds, inverted page tables, segmentation,
how the TLB fits in.
- Virtual Memory: Demand paging, effective memory access time, page replacement
algorithms, Belady's anomaly, LRU approximation algorithms, page buffering,
thrashing, working set definition and use,
- File Systems: Blocks, layers, allocation methods (contiguous, linked,
indexed, mixed) Directory implementation, efficiency. Log-structured FS.
NFS.
- More file systems: Network Attached Storage, Disk Scheduling, Storage
Area network, RAID: Levels 1-6. Basics of Reed-Solomon coding,
RAID reconstruction & failure modes.
If you
want to study from old exams, here are the
old midterms and the
old final exams.