Accent [#RashidAACON##1#,#FitzgeraldTIOVM##1#] was a communication oriented
operating system kernel built at CMU to support distributed computing. In
particular it was designed to support the Spice environment [#ZayasATPMB##1#].
In the Spice system it was perceived that the cost of moving the contents of a
large virtual address space were the bottleneck in process migration,
dominating all other costs and growing with the size of program. In order to
attempt to overcome this they proposed to use the Accent copy on reference
mechanism in order to restrict copying to a minimal amount of data and hence
allow the very fast resumption of a process after migration. Their approach,
with a claimed three orders of magnitude speedup, was to perform a <#2689#>
logical<#2689#> memory transfer at migration time, involving an immediate copy of the
minimum set of pages needed to allow resumption of the process. Further pages
were fetched remotely on demand. This gave significant savings in both the
number of bytes actually transferred and the message handling costs due to the
fact that processes were shown to touch only a relatively small part of their
memory whilst executing.
It proved possible to utilise the copy on reference approach within Spice
because of the integration of IPC and virtual memory facilities within Accent.
The particular mechanism used was the <#2690#> imaginary segment<#2690#>, accessed not by
direct reference to physical memory, but through the IPC system. Each imaginary
segment has associated with it a <#2691#> backing IPC port<#2691#> which provides memory
management services for the object. When a process touches a page associated
with an imaginary segment a read request is sent to the region's backing port.
The process with receive rights for this port interprets the request and
returns the required page.
One unfortunate aspect of this system is the fact that there are inherently a
great number of residual dependencies; the correct operation of a process may
depend on the availability of more than one site. One possibility for
increasing reliability would be to use the Spice approach to decrease
interference but gradually to copy across all the pages making up the
imaginary segments. Once this had been done, the dependency between new and old
machine would have been broken.