Abstract

In computer science, storage allocation refers to the mechanisms for managing primary and secondary storage under a fluctuating demand. In this paper we identify three principal sources of inefficient use of storage: partition fragmentation, checkerboarding and internal fragmentation. The first arises when a set of records, to be stored in a set of independent storage units, cannot be partitioned into subsets whose cumulative sizes are equal to the capacities of the storage units. Checkerboarding refers to the alternating holes and occupied regions of a storage device which occur as records come and go unpredictably. Finally, internal fragmentation occurs in systems that allocate storage only in certain prescribed amounts, e.g. the nearest power of two no smaller than the amount requested. In connection with these types of fragmentation, a number of algorithm and storage design questions arise. Our basic goal is to review analyses of models of these problems. The major theme of the results is the characterization of approximation algorithms in terms of asymptotic bounds on their performance relative to optimization rules. Our presentation is distinguished by its attempt to bring together for the first time many disparate research efforts in storage allocation, classifying them by the types of fragmentation studied. 1. Introduction. A. Definitions and objectives. Dynamic storage allocation refers to those processes, commonly implemented in operating systems, for managing the allocation and subse- quent liberation of blocks of primary and secondary storage requested by system and user programs. The desire for the algorithms involved to be efficient and the storage utilization to be high frequently creates difficult design problems, depending upon the variability of the sizes, arrival times and residence times of the blocks requested. In the process of allocating and liberating blocks, fragmentation (i.e., alternating occupied and unoccupied regions of memory) may develop. The severity and importance of this fragmentation will depend upon physical parameters such as the total size of memory relative to the demand placed on it, and whether it is partitioned into independent, usually identical storage units such that each block must be wholly contained within a single unit. The effects of fragmentation will also be determined by algorithm design parameters such as: * Whether blocks must occupy consecutive storage locations (sequential allocation) or a linked-list mechanism (Knu) is in effect (linked allocation); * Whether blocks can be relocated in a system with sequential allocation, and, * Whether the sizes of allocated blocks are restricted (to powers of two, for example) in a system with sequential allocation. These and related issues are discussed at some length in (Knu), which is the major textual treatment of storage allocation. Within sequential allocation a trade-off of importance to us here involves the potentially high cost of block relocations, as opposed to the poor storage utilization that normally exists in a system not allowing them. Restricting allocated block sizes also entails a trade-off in such systems: The storage management algorithms can be much simpler and more efficient, but as we shall see, the effects of fragmentation usually worsen. In the following sections we shall be describing models of storage allocation defined by particular choices for the above parameters. The terms combinatorial and dynamic are to be emphasized. In particular, we shall not consider the analysis of probability models. Very little is lost here, for even the simplest such

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.