This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
A Buffer-Based Method for Storage Allocation in an Object-Oriented System
March 1990 (vol. 39 no. 3)
pp. 375-383

As some object-oriented computing systems support the object type buffer by hardware, it is reasonable to base their free storage management on a set of buffers, each containing free storage blocks of a specific length. Then memory space can normally be allocated and deallocated by simple buffer read and write operations. More complex routines have to be executed only when a buffer full or buffer empty exception is raised. Their task is to clear a buffer position or to insert a storage descriptor into the buffer, respectively. An algorithm that handles such exceptions by splitting and recombination of free blocks and relocation of objects is described. The algorithm is tuned by a set of parameters that specify the amount of descriptors the buffers may hold immediately after exception handling. As a consequence, each buffer receives a moderate number of descriptors, so that the probability of further exceptions is reduced. Moreover, the parameters control the tradeoff between relocation costs and resulting storage fragmentation. The performance of the algorithm is evaluated by an analytical and a simulation model, and methods to find optimal parameter values are described.

[1] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[2] Black et al., "Distribution and Abstract Types in Emerald,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, 1987, pp. 65-76.
[3] C. Schaffertet al., "An introduction to Trellis/Owl," in [50], pp. 9-16.
[4] K. von der Heide, "A general purpose pipelined ring architecture," inProc. Conf. Algorithms and Hardware for Parallel Processing," W. Händleret al., Eds. Lecture Notes in Comput. Sci. 237, Berlin, Germany: Springer, 1986, pp. 198-205.
[5] C. Vogt and K. von der Heide, "Die Puffermaschine: Entwurf und Realisierung einer fehlertoleranten, objekt-orientierten Rechnerarchitektur," Rep. 387, FGAN/FFM Wachtberg-Werthhoven, W. Germany, Dec. 1988 (in German).
[6] A. H. Veen, "Dataflow machine architecture,"ACM Comput. Survey, vol. 18, pp. 365-396, Dec. 1986.
[7] N. R. Nielsen, "Dynamic memory allocation in computer simulation,"Commun. ACM, vol. 20, no. 11, pp. 864-873, Nov. 1977.
[8] D. E. Knuth,The Art of Computer Programming, Vol. 1. Reading, MA: Addison-Wesley, 1973.
[9] P. J. Denning, "Virtual memory,"ACM Comput. Surveys, vol. 2, pp. 153-189, 1970.
[10] D. H. H. Ingalls, "The evolution of the Smalltalk virtual machine," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading, MA: Addison-Wesley, 1983, pp. 9-28.
[11] A. Skarra, S. B. Zdonik, and S. P. Reiss, "An object server for an object oriented database system," in [55], pp. 196-204.
[12] Y. Yokote and M. Tokoro, "The design and implementation of concurrent smalltalk," inACM OOPSLA '86 Conf. Proc., Sept. 1986, pp. 331-340.
[13] D. Decouchant, "Design of a distributed object manager for the Smalltalk-80 system," inProc. 1st Int. Conf. Object-Oriented Programming Syst., Languages, Appl., Portland, OR, Oct. 1986, pp. 444-452.
[14] J. L. Peterson and T. A. Norman, "Buddy systems,"Commun. ACM, vol. 20, no. 6, pp. 421-431, 1977.
[15] A. Kaufman, "Tailored-list and recombination-delaying buddy systems,"ACM Trans. Programming Languages Syst., vol. 6, no. 1, pp. 118-125, Jan. 1984.
[16] J. R. Falcone and J. R. Stinger, "The Smalltalk-80 implementation at Hewlett-Packard," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading, MA: Addison-Wesley, 1983, pp. 79-112.
[17] T. Kaehler, "Virtual memory on a narrow machine for an object-oriented language," in [50], pp. 87-106.
[18] D. M. Ungar and D. A. Patterson, "Berkeley Smalltalk: Who knows where the time goes?," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading MA: Addison-Wesley, 1983, pp. 189-206.
[19] A. Wirfs-Brock, "Design decisions for Smalltalk-80 implementors," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading, MA: Addison-Wesley, 1983, pp. 41-56.
[20] S. Ballard, "The design and implementation of VAX/Smalltalk-80," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading MA: Addison-Wesley, 1983, pp. 127-150.
[21] B. D. Rathi, "The design and performance analysis of a self managing secondary memory," Ph.D. dissertation, Univ. of Texas at Austin, Dec. 1983.
[22] A. D. Samples, D. Ungar, and P. Hilfinger, "SOAR: Smalltalk without bytecodes," inACM OOPSLA '86 Conf. Proc., Sept. 1986, pp. 107-118.
[23] B. S. Baker and E. G. Coffman, "Insertion and compaction algorithms in sequentially allocated storage,"SIAM J. Comput., vol. 13, no. 3, pp. 600-609, 1984.
[24] B. S. Baker, E. G. Coffman, and D. E. Willard, "Algorithms for resolving conflicts in dynamic storage allocation,"J. ACM, vol. 32, no. 3, pp. 327-343, Apr. 1985.
[25] L. Kleinrock,Queueing Systems, Vol. 1: Theory. New York: Wiley, 1975.
[26] C. Vogt, "Die Freispeicherverwaltung der Puffermaschine--Entwurf und Leistungsbewertung eines verfahrens," Rep. 372, FGAN/FFM Wachtberg-Werthhoven, W. Germany, Sept. 1987, (in German).

Index Terms:
buffer-based method; storage allocation; object-oriented system; free storage management; storage descriptor; exceptions; free blocks; exception handling; relocation costs; storage fragmentation; optimal parameter values; buffer storage; object-oriented programming; storage allocation; storage management.
Citation:
C. Vogt, "A Buffer-Based Method for Storage Allocation in an Object-Oriented System," IEEE Transactions on Computers, vol. 39, no. 3, pp. 375-383, March 1990, doi:10.1109/12.48867
Usage of this product signifies your acceptance of the Terms of Use.