CS 490 TEST2 SPRING 2012 GENERAL GUIDELINES: 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. 1 CS 490 TEST2 SPRING 2012 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 policy? 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? 2