A) Recovery Management in Quicksilver 1) What role does the Transaction manager play in the recovery management? It manages commit coordination by communicating with servers at its own node and with transaction managers at other nodes. (When a process starts a new transaction, Transaction Managers and servers form a directed graph topology with the coordinator at the root, Transaction Managers at the internal nodes, the servers at the leaves.) 2) What role does the Log Manager play in the recovery management? Log Manager serves as a recovery log both for the Transaction Manager s commit log and server s recovery data. Servers that need to recover their data call the Log Manager after crashes. 3) What are the mechanisms in place to prevent resources from being locked in case of coordinator failure for distributed transactions? 1) Coordinator Migration. When the coordinator knows that a transaction has become distributed, it can designate a subordinate Transaction Manager to take over as the coordinator. Idea is to move the coordinator to the location that the resource is being requested from. Typically used when a coordinator has only one subordinate. 2) Coordinator Replication. For transactions in which the coordinator has multiple subordinates, the coordinator can be replicated to make it less vulnerable to single-point failures. A subset of the subordinates are selected as backup coordinators. B) Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling Q4) What is the idea behind processor cache affinity? What benefit does it provide?
Idea is to analyze a processors cache contents to determine which processor should run the next ready task. It may be more efficient to use scheduling policies that take into account whether data already exists in a processors cache. Q5) What is cold cache versus warm cache? In the warm cache case task return immediately after releasing the processor. (Cache is still warm). In cold cache case the cache is flushed between task visits. Cold cache results in increased task execution time. Q6) What is Fixed Processor versus Last Processor Scheduling policy? In Fixed processor scheduling policy each processor has a dedicated local queue and tasks are permanently assigned to these queues. In Last processor scheduling policy a task is scheduled where it last executed. Q7) Describe Minimum Intervening (MI) scheduling policy? This policy attempts to schedule the task with the greatest affinity for a processor. When a processor becomes idle, MI computes, for each task x on the ready queue, the number of tasks executed since x last executed there. It runs the task with the minimum value. C) Xen and the Art of Virtualization Q8) What is Para virtualization? Paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware. Q9) How does Xen address the adverse effects of virtualization on security Xen enables multiplexing of physical resources and at the same time provides performance isolation between processes. Multiplexing can be done at a low level by exporting resources through an interface. Applications maintain their own configurations
and unwanted configuration interactions between applications are avoided. This promotes sharing of machine resources in a safe manner. D) Building Reliable High Performance Communication Systems from Components Q10) What are the advantages of Component Based Systems 1) Modularity : It is easier to design, develop and test individual components than a large monolithic system that has all functionality embedded in it. 2) Extensibility: Component based systems can be extended at run time with new components Q11) What are the disadvantages of component based systems. Disadvantages are: High overheads arising from additional function calls, poor locality of data and code leading to cache and TLB misses, redundant code that is not reachable in a particular configuration of the components, and separate compilation causing non-optimal use of existing optimization techniques. Also the generation and verification of the code of the components themselves is still very difficult. Q 12) What roles do OCaml, I/O Automata and Nuprl play in the Ensemble component based system. OCaml : Components are written in Objective Caml. OCaml has a formal semantics allowing code to be manipulated by formal tools, and it also compiles to efficient machine code.
I/O Automata: Specification of the behavior of both protocols and micro-protocols is done using I/O automata (IOA). Nuprl : Nuprl is able to understand both the IOA specifications and the OCaml code, and can rewrite the code for the purpose of optimization. E) A Distributed Object Model for the Java System Q13) What are the disadvantages of using CORBA and sockets for RMI from a Java language standpoint. CORBA lacks seamless integration with the language since an application programmer has to deal with a distributed object model in addition to the local object model of java. Sockets require the client and server to have knowledge of the underlying communication protocol. Q14) Describe dynamic stub loading. Dynamic stub loading loads the exact stub code at run time to handle method invocations on a remote object. Dynamic stub loading is used when code for a needed stub is not already available. F) Exokernel Q15) What are the disadvantages of fixing the interface and implementation of operating system abstractions such as interprocess communication and virtual memory? It denies applications the advantages of domain-specific optimizations. It discourages changes to the implementations of existing abstractions. It restricts the flexibility of application builders, since new abstractions can only be added on top of existing ones.
Q16) How does Exokernel address the fixed interface problem of traditional operating systems? In Exokernel traditional OS abstractions are implemented at application level. An exokernel securely exports all hardware resources through a low level interface to untrusted library operating systems. Library operating systems then use this exokernel interface for application specific implementation.