Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Insertion and compaction algorithms in sequentially allocated storage
SIAM Journal on Computing
Distrbution and Abstract Types in Emerald
IEEE Transactions on Software Engineering - Special issue on distributed systems
ACM Computing Surveys (CSUR)
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Virtual memory on a narrow machine for an object-oriented language
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
SOAR: Smalltalk without bytecodes
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of Concurrent Smalltalk
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Design of a distributed object manager for the Smalltalk-80 system
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
An object server for an object-oriented database system
OODS '86 Proceedings on the 1986 international workshop on Object-oriented database systems
Algorithms for resolving conflicts in dynamic storage allocation
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
Tailored-List and Recombination-Delaying Buddy Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Dynamic memory allocation in computer simulation
Communications of the ACM
A General Purpose Pipelined Ring Architecture
CONPAR '86 Conference on Algorithms and Hardware for Parallel Processing
The design and performance analysis of a self managing secondary memory
The design and performance analysis of a self managing secondary memory
Theory, Volume 1, Queueing Systems
Theory, Volume 1, Queueing Systems
Hi-index | 14.98 |
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.