LOOM: large object-oriented memory for Smalltalk-80 systems

roduction The Smalltalk-80 virtual machine is specified as a memory-resident system containing up to 2 objects. When full, it typically occupies about 2M bytes of memory. Unfortunately, many machines do not have this capacity in main memory, and many applications require, or will require, more than this capacity. To solve this space problem, one typically uses a virtual memory system in which the resident, "real" memory is used as a cache for the larger mass storage, "virtual" memory. LOOM, Large Object-Oriented Memory, is a virtual memory system designed and implemented for the Smalltalk-80 system. The most important feature of the LOOM design is that it provides virtual addresses that are much wider than either the word size or the memory address size of the computer on which it runs. LOOM is a single-user virtual memory system that swaps objects and operates without assistance from the programmer. Virtual memory systems may be characterized by the amount of attention that the programmer must pay to the transfers between virtual and real memories, by the extent to which the memory is shared among users, and by the granularity of transfer between memory levels. Overlay mechanisms are an example of systems that require much programmer attention, while all common paging systems require none. Databases may be