Assuming a DSM system is implemented in middleware without any hardware support and in a platform-neutral manner, how would you deal with the problem of differing data representations on heterogeneous computers? Does your solution extend to pointers?
What will be an ideal response?
The middleware calls can include marshalling and unmarshalling procedures. In a page-based implementation, pages would have to be marshalled and unmarshalled by the kernels that send and receive them. This implies maintaining a description of the layout and types of the data, in the DSM segment, which can be converted to and from the local representation.
A machine that takes a page fault needs to describe which page it needs in a way that is independent of the machine architecture. Different page sizes will create problems here, as will data items that straddle page boundaries, or items that straddle page boundaries when unmarshalled.
A solution would be to use a ‘virtual page’ as the unit of transfer, whose size is the maximum of the page sizes of all the architectures supported. Data items would be laid out so that the same set of items occurs in each virtual page for all architectures. Pointers can also be marshalled, as long as the kernels know the layout of data, and can express pointers as pointing to an object with a description of the form “Offset o in data item i”, where o and i are expressed symbolically, rather than physically.
This activity implies huge overheads.
You might also like to view...
Hasty responses to e-mails are generally preferred since it shows a prompt response to questions
Indicate whether the statement is true or false
A(n) ________ is like a snapshot of your computer's settings at a particular point in time
Fill in the blank(s) with correct word