STUDY GUIDE CS 490 TEST 1 GENERAL GUIDELINES: Review your notes and the textbook. Use the Power Points as a guideline for what to study, but don’t limit your study to the Power Points alone. Power Points not discussed in class won’t be on the test. 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 concurrency and the need for mutual exclusion is more important than knowing what a mailbox is. CHAPTER 1 – COMPUTER SYSTEM OVERVIEW Know the purpose/function of the Program Counter, Instruction Register, MAR and MBR Understand the basic instruction execution cycle, including interrupt check/processing. What was the original motivation for mutltiprogramming? Four classes of interrupts; interrupt processing Be able to describe the memory hierarchy, define hit ratio, and compute average system access time (as on your homework). Know the purpose of cache memory How does DMA I/O improve performance in a multiprogrammed computer system? State a difference/similarity between a Symmetric MultiProcessor(SMP) and a multicore computer. CHAPTER 2 – OPERATING SYSTEM OVERVIEW Three objectives of an operating system. What is an OS kernel? Why are the following hardware features (originally introduced to support batch processing) important in multiprogrammed operating systems? o Memory protection o Timers o Privileged instructions o Interrupts Difference between user mode and kernel mode of execution Difference between batch multiprocessing and time sharing systems Definition of process What is the execution context, or state, of a process? Be sure you understand the concepts of interleaved and overlapped execution. CHAPTER 3 – PROCESSES How does a process differ from a program? What’s the purpose a Process Control Block? (PCB) What are some of its contents? Be able to describe the 5-State process model on page 117. Know the meaning of each state and the events that cause a process to transition from one state to another. How does the addition of swapping and suspended states modify the 5-state model? Explain the role of system calls (supervisor calls) in a typical operating system. Mechanisms for interrupting process execution (p. 137) and examples of events that might trigger them. Be able to distinguish between a mode switch and a process switch and give an example of an event that would cause each type of switch. In UNIX, what is the difference between the user running and kernel running state? CHAPTER 4 – THREADS What is the relation between a process and a thread? Be able to give one use for threads in a single-user multiprocessing system. Disadvantage of structuring an application as multiple cooperating programs versus a single multithreaded program. State the difference between a KLT and a ULT and give advantages and disadvantages of each type of thread. In Windows, what is the purpose of the Standby state? CHAPTER 5 – CONCURRENCY: MUTUAL EXCLUSION AND SYNCHRONIZATION Multiprogramming versus multiprocessing Table 5.1: understand/be able to define and discuss these terms (except livelock) Understand how interleaved or overlapped execution of critical sections can cause data incoherence. See examples on page 201 & 203 which demonstrate the problem on a uniprocessor and a multiprocessor. Process Interaction, Table 5.2 (p. 205). Have a general idea of the various degrees of awareness. STUDY GUIDE CS 490 TEST 1 What are some hardware techniques for guaranteeing mutual exclusion? What are their disadvantages? What is a semaphore? Be able to state the algorithm for a general counting semaphore and trace its behavior. Know how semaphores can be used to guarantee mutual exclusion. Understand Figure 5.7 (page 219) Be able to state the conditions of the Producer Consumer problem. Understand the solution to the boundedbuffer PC problem with semaphores (page 225). No need to memorize, but know how it works. What are the basic characteristics of a monitor? What is a difference between a condition variable and semaphore? How does message-based communication differ from other types of process communication such as in the Producer-Consumer problem or the Readers & Writers problem? Can messages be used for process synchronization? What is the difference between a blocking and a non-blocking message send or receive? What is a mailbox, with respect to message passing?