DISTRIBUTED SHARED MEMORY
3. Larger memory space : With DSM facility, the total memory size is the sum of the memory sizes of all the nodes in the
5.15 FLEXIBLE COMMUNICATION ENVIRONMENT
The message passing paradigm requires recipient identification and coexistence of the sender and receiver processes. That is, the sender process of a piece of data must know the names of its receiver processes (except in multicast communication), and the receivers of the data must exist at the time the data is sent and in a state that they can (or eventually can) receive the data. Otherwise, the data is undeliverable. In contrast, the shared memory paradigm of DSM provides a more flexible communication environment in which the sender process need not specify the identity of the receiver processes of the data. It simply places the data in the shared memory and the receivers access it directly from the shared memory. Therefore, the coexistence of the sender and receiver processes is also not necessary in the shared memory paradigm. In fact, the lifetime of the shared data is independent of the lifetime of any of its receiver processes.
Exercises :
5.1 The distributed shared memory abstraction is implemented by using the services of the underlying message passing communication system. Therefore, in principle, the performance of applications that the use DSM is expected to be worse than if they use message passing directly. In spite of this fact, why do some distributed operating system designers support the DSM abstraction in their systems? Are there any applications that can have better performance in a system with DSM facility than in a system that has only message passing facility? If yes, give the types of such applications. If no, explain why.
5.2 Discuss the relative advantages and disadvantages of using large block size and small block size in the design of a block-based DSM system. Why do most DSM system designers prefer to use the typical page size used in a conventional virtual memory implementation as the block size of the DSM system?
5.3 It is often said that the structure of the shared memory space and the granularity of data sharing in a DSM system are closely related. Explain why?
5.4 What is false sharing? When is it likely to occur? Can this problem lead to any other problem in a DSM system? Give reasons for your answer.
5.5 What should be done to minimize the false sharing problem?
Can this problem be complete eliminated? What other problems may occur if one tries to completely eliminate the false sharing problem?
5.6 Discuss the relative advantages and disadvantages of using the NRNMB, NRMB, RMB and RNMB strategies in the design of a DSM system.
5.7 Discuss the relative advantages and disadvantages of the various data locating mechanisms that may be used in a DSM system that uses the NRMB strategy.
5.8 A sequentially consistent DSM system uses the RMB strategy. It employs the write invalidate approach for updating data blocks and the centralized server algorithm for locating the owner of a block and keeping track of the nodes that currently have a valid copy of the block. Write pseudocode for the implementation of the memory coherence scheme of this DSM system.
5.9 Why is a global sequencer needed in a sequentially consistent DSM system that employs the write update protocol?
5.10 Most DSM system in which caching is managed by the operating system use the write invalidate scheme for consistency instead of the write update scheme. Explain why?
5.11 Differentiate between weak consistency and release consistency. Which of the two will you prefer to use in the design of a DSM system? Give reasons for our answer.
5.12 A programmer is writing an application for a release consistent DSM system. However the application needs sequential consistency to produce correct results. What precautions must the programmer take?
5.13 Differentiate between PRAM consistency and processor consistency.
5.14 Give the relative advantages and disadvantages of sequential and release consistency models.
5.15 What is causal consistency? Give an example of an application for which causal consistency is the most suitable consistency model.
5.16 Propose a suitable replacement algorithm for a DSM system whose shared memory space is structured as objects. One of the goals in this case may be to minimize memory fragmentation.
5.17 Why does the simple LRU policy often used for replacing cache lines in a buffer cache not work well as a replacement policy for replacement policy for replacing blocks in a DSM system?
5.18 To handle the issue of where to place a replaced block, the DSM system of Memnet [Delp 1988] uses the concept of
“home memory”, in which each block has a home memory.
When replacement of a block requires that the block be transferred to some other node’s memory, the block is transferred to the node whose memory is the home memory for the block. What are the advantages and disadvantages of this approach as compared to the one presented in this chapter?
5.19 What are the main causes of thrashing in a DSM system?
What are the commonly used methods to solve the trashing problem in a DSM system?
5.20 Complete transparency of a DSM system is compromised somewhat when a method is used to minimize thrashing.
Therefore, the designer of a DSM system is of the opinion that instead of using a method to minimize thrashing, a method should be used by which the system automatically detects and resolves this problem. Propose a method by which the system can detect thrashing and a method to resolve it once it has been detected.
5.21 A distributed system has DSM facility. The process scheduling mechanism of this system selects another process to run when a fault occurs for the currently running process, and the CPU is utilized while the block is being fetched. Two systems engineering arguing about how to better utilize the CPUs of this system have the following opinions.
(a) The first one says that if a large number of processes are scheduled for execution at a node, the available memory space of the node can be distributed among these
processes so that almost always there will be a ready process to run when a page fault occurs. Thus, CPU utilization can be kept high.
(b) The second one says that if only a few processes are scheduled for execution at a node, the available memory space of the node can be allocated to each of the few processes and each process will produce fewer page faults. Thus, CPU utilization can be kept high. Whose argument is correct? Give reasons for your answer.
5.22 What are the three main approaches for designing a DSM system?
5.23 What are some of the issues involved in building a DSM system on a network of heterogeneous machines? Suggest suitable methods for handling these issues.
5.24 Are DSM systems suitable for both LAN and WAN environments? Give reasons for your answer.
5.25 Suggest some programming practices that will reduce network block faults in a DSM system.
5.26 Write pseudocode descriptions for handling a block fault in each of the following types of DSM systems :
(a) A DSM system that uses the NRNMB strategy (b) A DSM system that uses the NRMB strategy (c) A DSM system that uses the RMB strategy (d) A DSM system that uses the RNMB strategy
You can make any assumptions that you feel necessary, but you feel necessary, but state the assumptions made.