[comp.sys.acorn] Program for virtual memory?

garyb@abekrd.UUCP (Gary Bartlett) (02/01/91)

Has anyone written any software for the Archimedes to allow the use of disk
space for virtual memory?  Is anyone keen to try?  I wouldn't mind a reduction
in running speed for say an 8Mb (virtual) memory machine.  Just an idea - or
a real possibility?

Gary
-- 
---------------------------------------------------------------------------
Gary C. Bartlett               NET: garyb@abekrd.co.uk
Abekas Video Systems Ltd.     UUCP: ...!uunet!mcsun!ukc!pyrltd!abekrd!garyb
12 Portman Rd,   Reading,    PHONE: +44 734 585421
Berkshire.       RG3 1EA.      FAX: +44 734 567904
United Kingdom.              TELEX: 847579

gtoal@tharr.UUCP (Graham Toal) (02/02/91)

In article <1682@abekrd.UUCP> garyb@abekrd.UUCP (Gary Bartlett) writes:
>Has anyone written any software for the Archimedes to allow the use of disk
>space for virtual memory?  Is anyone keen to try?  I wouldn't mind a reduction
>in running speed for say an 8Mb (virtual) memory machine.  Just an idea - or
>a real possibility?
It is certainly on the cards; Arthur Norman did a prototype of such a
thing way back, though I don't think it would work any more.  I sketched
up a rough draft of a design of one when I was working at Acorn, but left
before I had a chance to do anything about it. (It's too big a job
for spare-time hacking I think)

My feeling was that it would be relatively easy to page code off the disc
but data would have to stay in Ram.  And the code had better not be
squeezed or even that wouldn't work.  I'll see whether I can find my
design document in my old mail archives.

G
-- 
(* Posted from tharr.uucp - Public Access Unix - +44 (234) 261804 *)

rabin@cs.qmw.ac.uk (Rabin Ezra) (02/04/91)

It strikes me this shoudn't be too hard. Major problems include
IRQ service etc, but if you only page the application area, and have
your IRQ's in modules, it would be ok. I thought you might hack
the task launch stuff, so that if an application flagged itself
as pagable, the task managment stuff would provide vm. Remember
though that vm performance on an ARM is poor due to the massive
page size, so you would need to group often called code
together, with less used code in other pages. This can't be
done easily. Also note that the BSD trick of paging code from
binaries won't work either, as most code tends to be delivered
squeezed, so you can't trivially tell where the page you need
is. (I gather that RISCiX squeezes swapped stuff though)
      Rabin Ezra
-- 

Rabin Ezra                   UUCP:  rabin@qmw-cs.UUCP
PhD Student,                 JANET: rabin@uk.ac.qmw.cs
Dept of Computer Science,    Internet:  rabin@cs.qmw.ac.uk
Queen Mary and Westfield College,  <If the gateway bounces try :
Mile End Road,                       rabin%cs.qmw.ac.uk@nsfnet-relay.ac.uk >
London E1 4NS.               If you have problems try qmc in place of qmw.
U.K.