Midterm Practice Exam COSC 5302 Spring 2008 1. List some types of transparency that are used in distributed systems to conceal from the user the separation of resources in a distributed system. Give brief descriptions of those types. 2. Define the term “distributed operating system.” 3. Give precise definitions for the following set theory terms used in the paper on Logical Time by Lamport: relation, partial ordering, irreflexive, transitive, total ordering. 4. How does Lamport’s definition of concurrent differ from the definition usually found in dictionaries? 5. What is the impact on the system if a faulty or malicious process does not obey the logical clock implementation algorithm of Lamport? 6. Describe the quantities that determine how closely a system of physical clocks can be synchronized? 7. Note that the clock synchronization algorithm only sets the clocks ahead. Why is this an important feature of the algorithm? 8. Could Chandy and Lamport’s algorithm for the global snapshot be used to checkpoint a distributed system? Is the global state produced by the distributed snapshot algorithm a valid checkpoint? 9. Could the algorithm for the global snapshot be used to determine how many tokens there are in a token system that has a variable number of tokens? Explain? 10. Is it possible for a process to determine if the distributed snapshot algorithm has terminated? 11. Give a scenario in which messages received out of order cause the snapshot algorithm to work incorrectly. 12. What is the total number of messages that will be sent during a single invocation of the snapshot algorithm? 13. For what system topology will the snapshot algorithm require the most time to complete? 14. Explain how each of the following types of names is generated and who is responsible for generating them: local implementation identifiers, unique local names, server addresses, global unique identifiers, human oriented names. 15. Explain why the server address field in a global unique identifier should be a logical address instead of a physical address. 16. If multiple copies of an object exist in the distributed system, does the global unique identifier refer to a specific copy or any copy? How is this achieved? 17. With respect to the identification system, what actions must a server perform when a new object is created? 18. Explain how the identification system supports the relocation of an object, provided it is still managed by the same server. 19. Explain how the identification system supports the relocation of a server process from one site in the distributed system to another. 20. For reliability, a single server may maintain multiple copies of the same object (perhaps on different storage devices). What impact does this have on the identification system? 21. It is sometimes useful to have an identifier that refers to a group of objects. For example, we may wisht to specify that a file is to be printed on any available printer. Explain how the identification system would implement this. 22. What are the advantages an disadvantages of the RPC interface? 23. What kind of variables should not be used with RPC? Why? 24. What king of parameters cause problems with parameter passing in RPC? 25. In RPC the server exports an interface. What does the interface name consist of? 26. In RPC, how does the caller determine the machine address of the callee? 27. Explain the semantics of RPC? That is, how many times will a remote procedure be executed by the callee per call? 28. What is an orphan process? How are they created? 29. How does the distributed hash table work in Chord? 30. Give an example of how the closure mechanism for a URL could work. 31. How is a mounting point looked up in most UNIX systems? 32. Consider a distributed file system that uses per-user name spaces. In other words, each user has his own private name space. Can names from such name spaces be used to share resources between two different users? 33. Counting common files is a rather naïve way of defining semeantic proximity. Assume you were to build semantic overlay networks based on text documents, what other semeantic proximity function can you think of? 34. What is meant by atomic multicast? How is that related to causal ordering? 35. Compare causal ordering with FIFO ordering and total ordering of multicast messages. 36. What are the rules governing vector clocks? Why do we need vector clocks? Give an application of vector clocks that scalar clocks cannot handle. 37. Compare and contrast how RMI and RPC handle distributed communications. 38. Describe at least 5 failure models. 39. What is the “Byzantine Generals Problem” and what do we mean by “Byzantine protocols”? 40. What is virtual synchrony and why is it useful?