Shareable, networked, swap device?

Barry Shein bzs at world.std.com
Tue Oct 30 08:44:03 AEST 1990


From: richard at aiai.ed.ac.uk (Richard Tobin) [responding to me]

>>Couldn't NFS *almost* do this right now.
>
>I considered this.  The way I looked at it was that the problem is
>that there's no way for the client to tell the server when a page is
>freed.  Apart from this, it could work - the server wouldn't even have
>to give the client a pointer into the file, it could just map (client,
>client's-offset) to (server's-offset).

Hmm, basically a distributed scatter-gather MMU device. The client
believes it has Xmb of swap and the server just manages the address
mappings thru typical associative memory maps.

I suppose the easiest way to free pages would be by use of a tag (the
process id on the client would be a good candidate, the server doesn't
much care so long as it's client-unique.)

Then all you need is a free_tag() operation (I assume that once a page
is allocated to a process it's not freed until the process is
finished, something more flexible can be left as an exercise for the
reader.)

So you have a three-tuple to identify any page:

	f(host_address,page_offset,tag) -> server_page_location

for each page in the page server (again, assuming pages are fixed in
size, otherwise throw in size, bother.)

Interestingly, with the tag it allows for each process to have its own
virtual page-address space w/o the client needing to manage that at
all.

It could work. It's even stateless enough to survive server crashes,
and doesn't much interfere with the current model in a Unix client
of how swap is allocated.
-- 
        -Barry Shein

Software Tool & Die    | {xylogics,uunet}!world!bzs | bzs at world.std.com
Purveyors to the Trade | Voice: 617-739-0202        | Login: 617-739-WRLD



More information about the Comp.unix.internals mailing list