CHAPTER 6: Concurrency: Deadlock and Starvation

CS 490
 Review your notes, the Power Points, and the textbook.
 Check out the summary at the end of each chapter as well as the chapter review
questions; some of them are helpful.
 Review homework assignments.
 Learn to prioritize; not every item is of equal importance. For example, understanding the
details of paging is more valuable than knowing the difference between global and local
page replacement.
CHAPTER 6: Concurrency: Deadlock and Starvation
 Be able to clearly differentiate between deadlock and starvation
 Reusable versus consumable resources: definitions and examples
 Graphic representation of resource allocation
 The four necessary and sufficient conditions for deadlock
 Deadlock prevention and deadlock avoidance: difference, techniques for each, etc.
 Be able to identify the Banker’s algorithm & the dining philosophers problems
 Deadlock detection: in what ways might it be better than either prevention or avoidance.
 The integrated deadlock strategy
 UNIX concurrency mechanisms. Know something about pipes, message queues &
shared memory
CHAPTER 7: Memory Management
 Memory management requirements, especially relocation, protection, sharing.
 Table 7.2: memory management techniques. Good for getting an overview of the area.
Pay less attention to the segmentation categories but be sure you understand the
difference between a page and a segment.
 Be able to compare fixed partitioning and variable partitioning as techniques for
managing memory. Consider issues such as fragmentation, limitation on processes, and
how memory protection is implemented.
 Understand the details of paging, as described in section 7.3; how it differs from
traditional partitioning schemes, how the hardware translates logical addresses to
physical addresses, what the role of the page table is, etc.
 Know the difference between internal and external fragmentation, and be able to explain
how paging affects memory fragmentation.
CHAPTER 8: Virtual Memory
 Be familiar with the contents of Tables 8.1 and 8.2. They provide a good overview of
virtual memory. You can pay less attention to segmentation, but you should have an idea
of the differences between it and paging.
 Understand the motivation for virtual memory
 How do we know that virtual memory will be efficient enough to justify its use? How does
the principle of locality address this question.
 Be able to define thrashing,
 Be able to define page fault and outline the steps that the operating system must take
when a page fault occurs.
 Page tables can occupy an enormous amount of memory. What are some solutions to
this problem?
 Page tables also cause additional memory references that can slow execution
unacceptably. How is this problem addressed?
 Understand the roles of the TLB and page table in the lookup of page table entries
(figures in chapter 8).
 Effect of page size on performance (large pages versus small)
 Page replacement algorithms, particularly LRU, FIFO, CLOCK. Know how they work. Be
able to compare/discuss performance.
CS 490
Be able to define resident set, working set, and know the difference between local
replacement and global replacement policies.
CHAPTER 9: Uniprocessor Scheduling
 Three types of process scheduling, relation to state transition diagrams.
 Short-Term scheduling criteria, Table 9.2.
 Be able to tell whether a particular criterion is user-oriented or system-oriented.
 Be able to compare various scheduling algorithms according to the characteristics in
Table 9.3
 Be able to describe/demonstrate understanding of FCFS, Round Robin, Priority-based
scheduling and multi-level feedback queues. Know what SPN and SRT are.
 What is the difference between a preemptive scheduling policy and a non-preemptive
 Be able to define wait time, turnaround time, & normalized turnaround time.
 How (and why) do operating systems establish policies to favor short processes
(interactive processes) without heavily penalizing other processes?
 Understand (in general, not specifics) how operating systems like UNIX or Linux use
CPU time as a factor in scheduling.
CHAPTER 10: Multiprocessor and Real Time Scheduling
 What is symmetric multiprocessing?
 In a multiprocessor environment, why do processes that exhibit medium-grained
parallelism (multi-threaded processes, for example) benefit from specially tuned
scheduling policies, whereas processes characterized by coarse grained or independent
parallelism don’t get significant improvements in behavior?
 Know the four different proposals for thread scheduling and understand the differences
between them.
 Be able to define real-time systems.
 Be able to differentiate between hard real-time tasks and soft real-time tasks.
Know the meanings of determinism and responsiveness.
 Be able to identify priority inversion.
 Know something about the characteristics of modern UNIX, Linux, and Windows
schedulers. For example, in UNIX, what is a preemption point?