Static grouping of small objects to enhance performance of a paged virtual memory

Smalltalk is an object-oriented, interactive programming environment tha t maintains state between user sessions. Because of the persistence of objects, it is possible to use program restructuring techniques to statically relocate objects in virtual memory. Grouping related objects on the same disk page increases locality of reference, reduces the number of page faults, and improves performance. Five types of static grouping algorithms along with the static analysis performed on their outputs, and empirical evidence of their performance, are presented.

[1]  Douglas W. Clark,et al.  An empirical study of list structure in Lisp , 1977, CACM.

[2]  Donald J. Hatfield,et al.  Program Restructuring for Virtual Memory , 1971, IBM Syst. J..

[3]  L. W. Comeau,et al.  A study of the effect of user program optimization in a paging system , 1967, SOSP.

[4]  Peter J. Denning,et al.  Virtual memory , 1970, CSUR.

[5]  Klaus Darga On-Line Inquiry Under a Small-System Operating System , 1970, IBM Syst. J..

[6]  Michael J. Fischer,et al.  The architecture of the Eden system , 1981, SOSP.

[7]  Edward W. Ver Hoef,et al.  Automatic program segmentation based on Boolean connectivity , 1971, AFIPS '71 (Spring).

[8]  Gopa Kumar Program restructuring for virtual memory systems in a run-time memory allocation environment , 1980 .

[9]  Jean-Loup Baer,et al.  Dynamic Improvement of Locality in Virtual Memory Systems , 1976, IEEE Transactions on Software Engineering.

[10]  Kevin C. Kahn,et al.  The iMAX-432 object filing system , 1981, SOSP.

[11]  J. Johnson PROGRAM RESTRUCTURING FOR VIRTUAL SYSTEMS , 1975 .

[12]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[13]  William A. Wulf,et al.  HYDRA/C.Mmp, An Experimental Computer System , 1981 .

[14]  Brian W. Kernighan,et al.  Optimal Sequential Partitions of Graphs , 1971, J. ACM.

[15]  C. Ramamoorthy,et al.  The analytic design of a dynamic look ahead and program segmenting system for multiprogrammed computers , 1966, ACM '66.

[16]  Kevin C. Kahn,et al.  iMAX: A multiprocessor operating system for an object-based computer , 1981, SOSP.

[17]  Karsten Schwan,et al.  StarOS, a multiprocessor operating system for the support of task forces , 1979, SOSP '79.

[18]  Daniel H. H. Ingalls,et al.  The Smalltalk-76 programming system design and implementation , 1978, POPL.

[19]  R. F. Tsao,et al.  A Multi-factor Paging Experiment: I. The Experiment and the Conclusions , 1972, Statistical Computer Performance Evaluation.

[20]  L. Svobodova MANAGEMENT OF OBJECT HISTORIES IN THE SWALLOW REPOSITORY , 1980 .

[21]  Thomas C. Lowe Automatic segmentation of cyclic program structures based on connectivity and processor timing , 1970, CACM.

[22]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[23]  James William Stamos,et al.  A large object-oriented virtual memory: grouping strategies, measurements, and performance , 1982 .

[24]  Jean-Loup Baer,et al.  Segmentation and optimization of programs from cyclic structure analysis , 1899, AFIPS '72 (Spring).

[25]  C. V. Ramamoorthy The analytic design of a dynamic look-ahead and program segmenting system for multiprogrammed computers , 1966 .

[26]  Domenico Ferrari,et al.  Improving locality by critical working sets , 1974, CACM.

[27]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .