List of topics and terms that you should know for the CS560 final exam
I'm not including topics that were covered by the midterm, like multi-threading.
If I simply list a term, it means you should know what the term is and how it
fits into the context of the book chapter.
For example, I list "CPU/IO bursts" below. A CPU burst is a
burst of CPU usage with no intervening system calls. An IO burst is
a sequence of IO calls. Thus, programs alternate between CPU
bursts and IO bursts. Most CPU bursts are small, and since it
is possible to have one process use the CPU while others are waiting
on IO, a good scheduling algorithm will attempt to give priority
to short CPU bursts. This gives our programs better throughput and
better interactive behavior.
Chapter 5: CPU Scheduling
- Everything covered in the lecture notes about the scheduling simulator.
- CPU/IO bursts.
- Short-term scheduler.
- Preemptive scheduling.
- Scheduling Criteria.
- Scheduling algorithms: FCFS, SJF, Round-Robin, Priority, MLFQ.
- Exponential average burst prediction.
- Context switch overhead.
- Processor affinity.
- Load migration, push migration, pull migration.
Chapter 6: Process Synchronization
- Synchronization Hardware: test_and_set, swap.
- Priority inversion.
Chapter 7: Deadlocks
- The system model.
- The four necessary conditions for deadlock.
- The resource allocation graph.
- Deadlock prevention: breaking conditions.
- Deadlock avoidance: Definition of safe states and how to use them.
- Ensuring safe states with a resource allocation graph.
- Ensuring safe states with the banker's algorithm.
- Deadlock detection with a resource allocation graph.
- Deadlock detection with an algorithm like the banker's algorithm.
- Deadlock recovery
Chapter 8: Memory Management
- Logical/virtual and physical addresses.
- Base and limit registers.
- Swapping.
- Contiguous memory allocation -- techniques, problems.
- External fragmentation; Internal fragmentation.
- The "50 percent" rule.
- Paging -- know everything from the paging lecture notes and be prepared to
have to muck through a detailed example.
- Paging techniques: basic, single-level, double-level, more levels, segmentation,
paged segmentation, inverted page tables, hashed page tables.
- Hardware support: translation support hardware, translation lookaside buffer, ASID,
valid/invalid bit.
- Hit ratio / effective memory access time calculation.
- Sharing code.
Chapter 9: Virtual Memory
- Reasons for VM.
- Mechanism for having pages not resident in memory.
- Demand paging -- basic concepts -- steps in handling a page fault.
- Issues with instructions.
- Effective access time calculations.
- Copy-on-write.
- Page replacement concept and algorithms: FIFO, Optimal, LRU.
- Belady's anomaly.
- LRU approximations -- why do we need them -- reference bit.
- Additional Reference Bits Algorithm.
- Second-Chance & Enhanced Second Chance.
- Page Buffering.
- Frame allocation -- equal and proportional allocation.
- Global vs local allocation.
- Thrashing.
- Working set -- definition and approximation.
- Page Fault Frequency instead of the working set.
- Memory Mapped Files.
- Memory Mapped IO.
- Kernel memory allocation: Buddy System and Slab Allocation.
- Prepaging - working set.
- Page size considerations.
- TLB Reach.
- The need for an external page table with internal page tables.
- I/O Interlock.
Chapter 10: File System Interface
- File Attributes
- File Operations
- Directory Structure
- Consistency Semantics: Unix, Session, Immutable Shared.
Chapter 11: File System Implementation
- Layered File System -- know all levels.
- Data structures: system-wide open file table, per-process open file table.
- VFS.
- Allocation methods: Contiguous, Linked, Indexed, FAT, Multi-level indexes, Mixed schemes.
- Extents.
- Performance: contiguous blocks.
- Caching.
- Double caching, unified buffer cache.
- Log Structured File Systems.
- NFS: Structure, protocols, statelessness, idempotency, RPC, XDR, caching.
Chapter 12: Mass Storage Structure
- Magnetic disk structure: arm, tracks, sectors, cylinders, seek time, rotational latency,
performance.
- Host attached storage, network attached storage, storage-area networks.
- Disk scheduling; FCFS, SSTF, Scan/Look.
- Bad blocks, sector sparing, sector slipping.
- RAID: Motivation, performance and failure characteristics, where implemented.
- RAID levels 0, 1, 4, 5, 6, 1+0, 0+1