Accent/Spice

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.