[comp.lang.smalltalk] memories

jack@citcom.UUCP (Jack Waugh) (12/01/87)

I have received, so far, zero replies to my query about virtual
memory for Smalltalk here.

Are any readers using working Smalltalk systems?  On what hardware?

Can the system you use remember more objects than would fit in RAM?
How does it accomplish this?

tow@parcvax.UUCP (12/01/87)

In article <128@citcom.UUCP> jack@citcom.UUCP (Jack Waugh) writes:
>I have received, so far, zero replies to my query about virtual
>memory for Smalltalk here.
>
>Are any readers using working Smalltalk systems?  On what hardware?
>
>Can the system you use remember more objects than would fit in RAM?
>How does it accomplish this?

Both ParcPlace Systems' Smalltalk-80 and Tektronix Smalltalk-80 run
on machines that support virtual memory. In the case of ParcPlace
Smalltalk-80, one may run it on a Sun-3, an Apollo-Dn-3000, or an
HP-9000 workstation, with virtual memory.

For example, my workstation is a Sun-3/140C with eight megabytes of
ram, which allows me to quite comfortably run Smalltalk-80 with ten
megabytes allocated to the Smalltalk image, on top of Sun's NeWS or
SunView windowing systems.


Rob Tow
ParcPlace Systems
Graphics Wizard ("I can call spirits from the vasty deep")
2400 Geng Road
Palo Alto CA. 94303

Internet:    rob@ParcPlace.com
USENET:      ...!{ucbvax, allegra, seismo, pyramid, decvax}!sun!pplace!tow

mario@mucs.UX.CS.MAN.AC.UK (Mario Wolczko) (12/18/87)

Re: the question about virtual memory and Smalltalk (sorry, I don't have
the original to hand):

As far as we know, the OOZE and LOOM systems were only used on the
research computers (Alto, Dorado) at Xerox PARC.  Before you consider
implementing LOOM, or a similar system, you should read this:

	Virtual Memory on a Narrow Machine for an Object-Oriented
	Language, Ted Kaehler, Proc. OOPSLA '86, SIGPLAN Notices,
	21:11, Nov. 1986, pp.87-106.

(If that doesn't put you off the idea, nothing will :-)

Also, a similar system is proposed for a new machine to support
Smalltalk and other object-oriented systems being designed in
Scotland.  Check out:

	OBJEKT: A Persistent Store With An Integrated Garbage Collector,
	SIGPLAN Notices, 22:4, April 1987, pp.70-79.

These sorts of systems (usually known as "object-swappers") only win when
memory is very, very tight, i.e., approximately the same size as the working
set of objects.  Under these circumstances, conventional virtual memory
systems thrash badly because they waste some space on unused objects.
However, when memory is more plentiful, the object-swappers require far
more disk accesses (because they only get one object per access, by
definition), whereas other schemes may get more than one useful object on a
page.

An alternative route is to group objects together in the image so that
related objects appear close together in the virtual address space.  This
is known as "static grouping", and is described in

	Static Grouping of Small Objects to Enhance Performance of a Paged
	Virtual Memory, James W. Stamos, ACM Transactions on Computer
	Systems, 2:2, May 1984.

This is probably of more interest to you, as no hardware support (above
conventional paging) is required.

We at Manchester in the MUSHROOM group have developed a successor to static
grouping known as "dynamic grouping".  This involves determining groups of
related objects at run-time, and performing disk transfers based on those
groupings.  An analysis of an LRU algorithm, and the required amount of
hardware support can be found in:

	Dynamic Grouping in an Object Oriented Virtual Memory Hierarchy,
	Ifor Wyn Williams, Mario I. Wolczko and Trevor P. Hopkins, 
	Proceedings of ECOOP 87, Springer-Verlag Lecture Notes in Computer
	Science vol. 276, pp.79-88, and

	Realisation of a Dynamically Grouped Object-Oriented Virtual Memory
	Hierarchy, Ifor Wyn Williams, Mario I. Wolczko and Trevor P.
	Hopkins,  Proceeding of the Appin Workshop on Persistent Object
	Systems, Research Report of the Universities of Glasgow and
	St. Andrews, Scotland (don't have the number to hand).

The papers show that regrouping on-the-fly can cut down on paging by 2-5
times, depending on memory size, application, etc.  We intend to
incorporate the dynamic grouping scheme in a high-performance
object-oriented machine we are building.

Hope this helps,

Mario Wolczko
Ifor Williams

   ______      Dept. of Computer Science    Internet:	mario%r5.cs.man.ac.uk
 /~	 ~\    The University		    USENET: mcvax!ukc!man.cs.r5!mario
(    __	   )   Manchester M13 9PL	    JANET:	mario@uk.ac.man.cs.r5
 `-':  :`-'    U.K.			    Tel:       +44-61-273 7121 x 5699
____;  ;_____________the mushroom project____________________________________