ANDREW S. TANENBAUM MAARTEN VAN STEEN
Vrije Universiteit Amsterdam, The Netherlands
UPPER SADDLE RIVER, NJ 07458
SOLUTIONS TO CHAPTER 1 PROBLEMS
1. Q: What is the role of middleware in a distributed system? A: To enhance the distribution transparency that is missing in network operating systems. In other words, middleware aims at improving the single-system view that a distributed system should have. 2. Q: Explain what is meant by (distribution) transparency, and give examples of different types of transparency. A: Distribution transparency is the phenomenon by which distribution aspects in a system are hidden from users and applications. Examples include access transparency, location transparency, migration transparency, relocation transparency, replication transparency, concurrency transparency, failure transparency, and persistence transparency. 3. Q: Why is it sometimes so hard to hide the occurrence and recovery from failures in a distributed system? A: It is generally impossible to detect whether a server is actually down, or that it is simply slow in responding. Consequently, a system may have to report that a service is not available, although, in fact, the server is just slow. 4. Q: Why is it not always a good idea to aim at implementing the highest degree of transparency possible? A: Aiming at the highest degree of transparency may lead to a considerable loss of performance that users are not willing to accept. 5. Q: What is an open distributed system and what beneﬁts does openness provide? A: An open distributed system offers services according to clearly deﬁned rules. An open system is capable of easily interoperating with other open systems but also allows applications to be easily ported between different implementations of the same system. 6. Q: Describe precisely what is meant by a scalable system. A: A system is scalable with respect to either its number of components, geographical size, or number and size of administrative domains, if it can grow in one or more of these dimensions without an unacceptable loss of performance. 7. Q: Scalability can be achieved by applying different techniques. What are these techniques? A: Scaling can be achieved through distribution, replication, and caching.
PROBLEM SOLUTIONS FOR CHAPTER 1
8. Q: What is the difference between a multiprocessor and a multicomputer? A: In a multiprocessor, the CPUs have access to a shared main memory. There is no shared memory in multicomputer systems. In a multicomputer system, the CPUs can communicate only through message passing. 9. Q: A multicomputer with 256 CPUs is organized as a 16 × 16 grid. What is the worst-case delay (in hops) that a message might have to take? A: Assuming that routing is optimal, the longest optimal route is from one corner of the grid to the opposite corner. The length of this route is 30 hops. If the end processors in a single row or column are connected to each other, the length becomes 15. 10. Q: Now consider a 256-CPU hypercube. What is the worst-case delay here, again in hops? A: With a 256-CPU hypercube, each node has a binary address, from 00000000 to 11111111. A hop from one machine to another always involves changing a single bit in the address. Thus from 00000000 to 00000001 is one hop. From there to 00000011 is another hop. In all, eight hops are needed. 11. Q: What is the difference between a distributed operating system and a network operating system? A: A distributed operating system manages multiprocessors and homogeneous multicomputers. A network operating system connects different independent computers that each have their own operating system so that users can easily use the services available on each computer. 12. Q: Explain how microkernels can be used to organize an operating system in a client-server fashion. A: A microkernel can separate client applications from operating system...