Chapter 5: Scheduling CPU-I/O Burst Cycle Short-term scheduler / CPU scheduler Medium-term scheduler Long-term scheduler Preemptive scheduling Scheduling criteria + CPU utilization + Throughput + Turnaround time + Waiting time + Response time Scheduling algorithms + First-Come, First-Served (FCFS) + Shortest-Job-First (SJF) + Shortest-Remaining-Time-First (SRTF) + Non-preemptive priority + Preemptive priority + Round-robin + Multilevel queue + Multilevel Feedback queue (MLFQ) Starvation Thread scheduling Multiple-processor scheduling + Processor affinity + Load balancing Solaris scheduling Windows XP scheduling Linux scheduling Algorithm evaluation + Deterministic modeling + Queueing models + Simulations + Implementation Chapter 6: Process Synchronization Race condition Semaphores + Binary / mutex locks + Counting + wait() + signal() Atomic execution section Busy waiting + Solutions to avoid busy waiting Spinlock + advantages Critical sections + Solutions to provide mutual exclusion * Conditions to satisfy to solve the critical section problem Deadlock Starvation Chapter 7: Deadlocks Major themes System model + Request + Use + Release Necessary conditions (all must be present) + Mutual exclusion + Hold & wait + No preemption + Circular wait Resource-allocation graphs + Request edge + Assignment edge + Claim edge + How to determine deadlock Single vs multiple instance resources 3 ways of handling deadlock Deadlock prevention + Mutual exclusion + Hold & wait + No preemption + Circular wait Deadlock avoidance + Safe, unsafe and deadlock states + Banker's Algorithm Differences between prevention and avoidance Deadlock detection + Usage questions Detection recovery + Process termination + Resource preemption