STUDY QUESTIONS: TEST 1

advertisement
STUDY QUESTIONS: TEST 1 – FALL 2011
The test covers the review notes from lecture 1; kernel architectures, including the papers on microkernels,
extensible architectures, and virtual machines; and selected sections from Chapters 1, 2, 3, and 4 in the text.
You will not be responsible for material that was not covered in class, even if it is in the Power Points.
Review your homework .
The questions highlight important concepts for you to understand. The questions on the test probably
won’t look exactly like the ones on the study guide.
Introduction/Review
 Be able to define system call, mode switch, and context switch. Know the purpose of each.
 Be able to define process. Be able to reproduce the process state transition diagram and describe the
characteristics of each state and the kinds of events that cause state transitions.
 Understand the concept of concurrent execution, on a single processor system and on a multiprocessor.
 What is the difference between a thread and a process? In what ways are multi-threaded processes
“better” than single-threaded processes? What is the difference between a kernel-level thread and a
user-level thread? (See Chapter 3 notes for some of this)
 What is the difference between preemptive and non-preemptive scheduling?
 What is mutual exclusion and why is it needed?
 Be able to define deadlock and starvation, and know the difference between them.
 Virtual memory systems were developed to address what problems?
Kernel Architectures
 Give a simple description of microkernel architectures.
 What are the potential advantages of microkernels?
 Liedtke suggests evaluating microkernels according to two criteria: the conservation criterion and the
progressivecriterion. Be able to explain each one.
 Why were some microkernel architectures unsuccessful in realizing the potential advantages?
 Be able to describe the motivation for extensible architectures such as SPIN and the Exokernel
approach. (What problem do they address?)
 What problems are introduced by the use of high-level abstractions in operating systems design?
 What is the difference between a SPIN extension and an exokernel library operating system? What do
they have in common?
 What does it mean to say that an exokernel architecture separates resource allocation from resource
management?
Virtual Machine Monitors
 Be able to define virtual machine and virtual machine monitor. Know the difference between full
virtualization and para-virtualization. How does paravirutalization affect the guest operating systems?
The applications that run on the guest operating systems?
 What are the benefits of virtual machine technology? In particular, what advantages do they offer for
distributed systems?
 Most virtual machine monitors run directly on the bare hardware but some (notably VMware) run on
top of an installed operating system. What are the pros and cons of this approach?
Chapter 1 & 2: Distributed Systems – Introduction and Architectures
 What is middleware? How does it contribute to transparency (single system image) in distributed
systems?
 Be able to list/briefly describe/identify four distributed system goals.
 Be able to define transparency and define or identify various types, particularly location transparency
(sometimes known as location independence)
 What are the different dimensions of scalability (size, geographical extent, administrative domains)
and how can they be addressed?











Compare caching and replication in distributed systems. Be able to describe advantages and
disadvantages of each technique.
Be able to define cluster computer and grid computer systems and list some of their characteristics
What is a transaction? List, briefly define its four distinguishing characteristics.
Understand the principles of a layered architecture.
Be able to discuss/describe centralized (vertical) and decentralized (horizontal) architectures for
distributed systems.
State the difference between fat-client and thin-client architectures and be able to give an advantage of
each.
Compare client-server systems and peer-to-peer systems in terms of performance (time to locate and
retrieve information), scalability, and fault tolerance.
Know the difference between structured and unstructured peer-to-peer systems.
Be able to identify Distributed Hash Tables, the Chord algorithm, and overlay networks; understand
their purpose. How does Chord decide which node will store a given item (i.e., understand the
successor relation)
Be able to state/describe the purpose of the Condor System (to support high throughput computing)
and say a little about how it does so.
State goals of Freenet (no need to memorize all five, just be able to say in general what it tries to do)
and give a high-level description of the routing algorithms. Discuss Freenet as an example of a peerto-peer system.
Chapter 3: Processes
 How does a single multithreaded application improve performance over an equivalent application that
consists of multiple separate processes? (Assume kernel level threads)
 What are the benefits of a multithreaded server, compared to either a single-threaded server or a finitestate machine server?
 Explain the general organization of a server cluster.
 Be able to give some examples of when code migration would be useful.
 What are the three components of a process that must be considered in a code-migration model?
 What is the difference between weak mobility and strong mobility? What limitations are imposed on
code migration if only weak mobility is supported?
 How might virtual machines be used in distributed systems?
Chapter 4 – Communication
 Definitions: routing, packet switching, reliable communication vs. unreliable communication
 Identify OSI reference model; know the functions of the transport and network layers.
 Understand the Remote Procedure Call model and why it is often used to implement client/server
systems instead of basic message passing. Hint: Consider some of the problems that RPC solves.
 Understand the processing flow, the role played by stub procedures, and related issues. Be able to
describe the steps in an RPC Send or Reply.
 In general, what is the difference between synchronous and asynchronous communication?
 What is the difference between persistent and transient communication?
 Identify/briefly describe sockets and MPI; explain how they are different from RPC in terms of
transparency, message types.
 Identify stream communication, multicasting.
Download