Browse Prior Art Database

Dynamic Buffering

IP.com Disclosure Number: IPCOM000050459D
Original Publication Date: 1982-Oct-01
Included in the Prior Art Database: 2005-Feb-10
Document File: 4 page(s) / 69K

Publishing Venue

IBM

Related People

Johnson, RD: AUTHOR [+2]

Abstract

A system is described for dynamically allocating buffer space among a number of input/output units, e.g., disk files. This system is characterized by the step of redistributing the available buffer space at the time a new file is opened among all the open files. The algorithm for redistributing space involves the concept of "stealing" buffer space from a "rich" unit and allocating the space to a "poor" unit. It is generally well known that the throughput of a computer system can be improved by lookahead reads of data files and delayed output to such files. Variations of memory size, device geometry, record size and access predictability classically restrict the optimization of such data file accesses. When device buffers are hard-allocated to files, memory goes to waste.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 32% of the total text.

Page 1 of 4

Dynamic Buffering

A system is described for dynamically allocating buffer space among a number of input/output units, e.g., disk files. This system is characterized by the step of redistributing the available buffer space at the time a new file is opened among all the open files. The algorithm for redistributing space involves the concept of "stealing" buffer space from a "rich" unit and allocating the space to a "poor" unit. It is generally well known that the throughput of a computer system can be improved by lookahead reads of data files and delayed output to such files. Variations of memory size, device geometry, record size and access predictability classically restrict the optimization of such data file accesses.

When device buffers are hard-allocated to files, memory goes to waste. Dynamic device buffering optimizes throughput by allowing longer lookahead reads and delayed writes when memory is available, without keeping the system from running when it is not. The basic elements of the dynamic buffering arrangement design to be described include:
A Minimum Buffer Set consisting of 4 permanently allocated device buffers.

A Memory Map to represent the dynamic buffers.

Two pointers, one to free low memory and one to free high memory. Conceptually low memory is allocated to the Language Interpreter of the computer system, which holds top priority for memory. Dynamic device buffers extend only down to the area used by the Interpreter, and must be freed if the memory they occupy is required by the Interpreter. Memory Management routines move the pointers appropriately according to the requirements of the system.

High memory is allocated to device buffer usage whenever it is useful by the Data Management routines and not required by the Interpreter. A Memory Map to be described contains, for example, one bit for each 512-byte dynamic device buffer or 32 bits (4 bytes) per 16-kilobyte page. The Data Management routines determine how many dynamic device buffers could be used for each file operation, and requests that many buffers from the Memory Manager. The Memory Manager determines how many buffers to allocate, up to the number requested. If none are available, the Data Buffer of the Minimum Buffer Set is supplied in-stead. All Data Management routines are designed to operate with the Minimum Buffer Set when no dynamic buffers are available. The Minimum Buffer Set contains one buffer for each Data Management requirement. The 4 buffers are: A. The Data Buffer, for reading or writing data. (No output data may be buffered in the Data Buffer; this rule prevents deadlocks resulting from contention for the buffer.) B. The Label Buffer, for reading or writing the File Label. (All updates to the File Label are output immediately.) C. The Directory Buffer, for reading and writing the Device Directory. (All updates to the Directory must also be written as soon as they are made.) D. The Log Buffer, for Error Log reading and writing. (The Erro...