scispace - formally typeset
Open AccessJournal ArticleDOI

List processing in real time on a serial computer

Henry G. Baker
- 01 Apr 1978 - 
- Vol. 21, Iss: 4, pp 280-294
Reads0
Chats0
TLDR
A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool.
Abstract
A real-time list processing system is one in which the time required by the elementary list operations (e.g. CONS, CAR, CDR, RPLACA, RPLACD, EQ, and ATOM in LISP) is bounded by a (small) constant. Classical implementations of list processing systems lack this property because allocating a list cell from the heap may cause a garbage collection, which process requires time proportional to the heap size to finish. A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool. The program is small and requires no time-sharing interrupts, making it suitable for microcode. Finally, the system requires the same average time, and not more than twice the space, of a classical implementation, and those space requirements can be reduced to approximately classical proportions by compact list representation. Arrays of different sizes, a program stack, and hash linking are simple extensions to our system, and reference counting is found to be inferior for many applications.

read more

Citations
More filters
Journal ArticleDOI

The design and implementation of a log-structured file system

TL;DR: In this paper, a log-structured file system called Sprite LFS is proposed, which uses a segment cleaner to compress the live information from heavily fragmented segments in order to speed up file writing and crash recovery.
Journal ArticleDOI

A truth maintenance system

TL;DR: The need of problem solvers to choose between alternative systems of beliefs is stressed, and a mechanism by which a problem solver can employ rules guiding choices of what to believe, what to want, and what to do is outlined.
Book

Structure and Interpretation of Computer Programs

TL;DR: Structure and Interpretation of Computer Programs emphasizes the central role played by different approaches to dealing with time in computational models, appropriate for an introduction to computer science courses, as well as programming languages and program design.
Book

The Design and Implementation of a Log-structured file system

TL;DR: A prototype log-structured file system called Sprite LFS is implemented; it outperforms current Unix file systems by an order of magnitude for small-file writes while matching or exceeding Unix performance for reads and large writes.
Book ChapterDOI

Uniprocessor Garbage Collection Techniques

TL;DR: This work surveys basic garbage collection algorithms, and variations such as incremental and generational collection, which include reference counting, mark-sweep, Mark-compact, copying, and treadmill collection.
References
More filters
Book

The Art of Computer Programming

TL;DR: The arrangement of this invention provides a strong vibration free hold-down mechanism while avoiding a large pressure drop to the flow of coolant fluid.
Journal ArticleDOI

Logical reversibility of computation

TL;DR: This result makes plausible the existence of thermodynamically reversible computers which could perform useful computations at useful speed while dissipating considerably less than kT of energy per logical step.
Journal ArticleDOI

SIMULA: an ALGOL-based simulation language

TL;DR: This paper is an introduction to SIMULA, a programming language designed to provide a systems analyst with unified concepts which facilitate the concise description of discrete event systems.