Search for a command to run...
Central to successful operation of a computer system based heavily on reentrant (or pure) procedures is reliable and efficient dynamic management of free storage. Such systems must allocate, use, and release one or more blocks of free storage for each task or system operation, e.g., each I/O task or each request for supervisor services. For any list-processing system, such as AED or LISP, efficient management of free storage is a fundamental problem. The consequence of errors in allocation and release is usually total collapse of the system; that of mismanagement is usually processor inefficiency or under-utilization of the free-storage pool. The processor inefficiency resulting from a poor or ill-chosen management algorithm is usually tolerated, even though it is high relative to that of other system functions; under-utilization of free storage is less tolerable, as “lock-up” can be encountered. This circumstance must be averted by task deferral or “garbage collection” procedures, both of which are costly to system performance.