Review for the Final * I/O Overlap o Why o How to achieve * What is a process o Different from thread o Different from executable * Process queues o Running o Ready o New o Exit o Wait * Ways to make a new process o Fork o Spawn/system * Threads -- definition of Is Code shared Is Data shared Is the Stack shared Batman * CPU Burst -- definition * Prememptive scheduling * Aging * Criteria o CPU Utilization o Throughput o Wait time o Starvation o Fairness * Algortihms o FCFS o Shortest Job Next o Round Robin o Priority o Multi-level feedback queues (yes, really) o Real Time + Priority Inversion -- the definition and the solution + Which process goes next # Most important???? # Soonest deadline??? + Soft vs Hard real time * Definition of swapping * Segments o Hardware needed o External fragmentation o Chosing a spot + First fit + Best fit + Worst fit * Paging o Hardware needed o Page Tables + Protection + Computing the size + Multi-level page tables o Internal fragmentation o Replacement algorithms + Optimal (Belady's Min) + LRU + One and two handed clocks * EXT2 o Inodes o Direct and indirect blocks o groups o hard links * VFAT o VFAT organization o File names and long file names * Caching o Hit rates o How it interacts with the paging stuff o Cache files or cache blocks or both or neither * Disk scheduling algorithms o FCFS o Elevator o Cyclic elevator o Shortest seek next o The Linux algorithms * RAID (expecialy levels 0, 1, 5) o What to do for error o What to do when a new disk is inserted o Speed + Small reads + small writes + large reads + large writes o Capacity o Sledge hammer factor * Interrupts o Maskable o Types + Caused by I/O + Caused by processor exception + Caused by software * Polling * DMA o Who can o Who should o Interaction with paging subsystem