IVY

Shared addressing

IVY is an OS that provides each process with an address space that is partially private and partially shared. The pages of shared addresses are managed using a dynamic page distribution scheme. As a shared page migrates, ownership of the page changes.

Read/Write access

The owner of a shared page maintains the copy set for the page (the set of all nodes with a read-only copy of the page).
A node who wishes to write to the page must become the owner of the page.

  • The owner at the time of the write request passes the page and its copy set to the requesting node.
  • The new owner transmits invalidation messages to all the nodes in the copy set.
  • When all such copies are invalidated the owner may write to the page.

If a node wishes to read from a page, it must request a copy from the page owner.

  • The page owner changes its access to read-only
  • It then transmits a copy of the page and then updates the copy set.

Each node maintains a complete page table of the DSM. The page table entry for a shared page contains (amongst other things) a probownerfield; this entry is changed by a node if:

  • It receives an invalidation message for the page
  • It relinquishes ownership of the page
  • It receives a copy of the page
  • It forwards a write fault request

Over time, page ownership can vary considerable, with page requests passing through a chain of nodes before a page is found. Oage ownership information is regularly broadcast; making location of pages more efficient by allowing nodes to update probowner fields.

Disadvantages

  • The fact every node maintains a complete shared memory page table
    • As the shared memory space grows, so does the page table at each node
  • IVY is not scalable to large shared memories
  • There is no provision for protection of access data
  • No provision for fault tolerance

Advantages

  • Naming/location transparency is provided (data is accessed by unique virtual-address)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License