Group: memory management

topics > computer science > Group: operating system

heap memory management
memory management by age
memory management by buddy system
memory management by free list
memory management by garbage collection
memory management by paging
memory management by reference counting
memory management by regions or memory pool
memory management by working sets
memory management for programs and modules
virtual memory
computer hardware

data caching
database implementation
dangling pointers
disk allocation
file cache
managing shared memory
memory cache
object code linkers and loaders
operating system kernel
owned resources and data objects
Thesa compiler and loader
register allocation by usage counts
security by access rights
running programs in a workspace or environment
safe use of pointers


Typically blocks of memory are allocated in various sizes, which may be predefined. One scheme with interesting properties is based on powers-of-two sizing, another is based on block multiples. Since memory is used for many purposes a mixed memory manager is often appropriate. For instance some structures should be allowed to grow without bound while others such as a stack should have known limits. The first indicates a pool of available memory while the later indicates a pre-defined size. Other examples are guaranteed memory for one message on each information queue, and small scale memory for frequently used requests with large-scale memory reserved for infrequent requests. Dynamically allocated memory is referenced by pointer variables. Multiple pointers may exist to the same allocated object, which makes storage release difficult. One solution, called garbage collection, is to follow all reference chains, mark used blocks, and then sweep memory of unmarked blocks. Another common technique is to maintain use counts and release storage with zero counts. The amount of memory available is usually accessible by the user. (cbb 5/80)
Subtopic: memory up

Quote: system designers and programmers need to understand program memory management; vast difference in performance [»hoarCA_1971]
Quote: five orders of magnitude performance difference between main store and backing store
Quote: memory is a wire turned sideways in time
Quote: memory is a characteristic feature of computers; the act of inserting an item erases whatever was there before [»straC8_1967]
Quote: a location or L-value is an area of the store that has a content or R-value; change the R-value with an updating operation [»straC8_1967]

Subtopic: multi-process management up

Quote: implemented lock-free malloc (LFMalloc) with MP-RCS; one heap per CPU, low latency, scalable, memory and cache efficient
Quote: Java memory model for multithreaded programs; guarantees sequential consistency of data-race-free programs; bounds the behavior of incorrectly synchronized programs by a notion of causality [»mansJ1_2005]

Subtopic: security up

Quote: most systems for untrusted extensions assume a trusted garbage collector; use Capability Language to verify memory management [»walkD7_2000]
Quote: Capability Language (CL) propagates capabilities for region-based memory operations; provably safe type system; lexical scope not required; e.g., extensible systems and continuation-passing style [»walkD7_2000]
Quote: use region-based memory allocation for secure systems; smaller trusted computing base, avoids garbage collection pauses, region profiling, safe memory operations without leaks [»walkD7_2000]
Quote: track non-aliasing of memory regions via tagged capabilities and type system [»walkD7_2000]

Subtopic: memory placement up

Quote: 'new' needs memory placement arguments for hardware-specific addresses, custom memory allocation, and general resource management [»stroB_1994]
Quote: with memory placement arguments, 'new' can assist with general resource management

Subtopic: copy-on-update, copy-on-write, steal up

Quote: instead of smart pointers or handles, use copy-on-update for heap structures; duplicate those parts that are changed [»simoAJ10_1998]
Quote: instead of copy-on-write, allow low-level objects to steal heap structures from temporary variables [»simoAJ10_1998]

Subtopic: slab memory management up

Quote: the SunOS slab memory allocator retains the state of complex objects between uses; object-coloring for global cache utilization; space efficient and fast [»bonwJ6_1994]
Quote: the slab allocator manages policy and memory while clients manage the object's name, size, alignment, and constructors [»bonwJ6_1994]
Quote: the slab allocator has independent caches with per-cache locking, statistics, and no shared state [»bonwJ6_1994]
Quote: the slab allocator allocates non-cached objects from 30 slabs of 8 bytes to 9K; larger requests allocated by the back-end page supplier [»bonwJ6_1994]
Quote: a slab is one or more pages of contiguous memory divided into equal size chunks; reference count of allocated chucks [»bonwJ6_1994]

Subtopic: heap metadata up

Quote: two bits of meta-data per heap data; delimiter bit and value bit gives size, free and allocated [»kharM10_2006]
Quote: store metadata for library data structures in a parallel data structure; e.g., another linked list to mirror a linked list [»necuGC5_2005]

Subtopic: stack allocation up

Quote: use escape analysis to identify object lifetimes; e.g., for stack allocation [»gayD3_2000]

Subtopic: segment allocation up

Quote: Multics avoids buffer overflow -- PL/I strings have a fixed maximum length; data can not be executed; virtual addresses are segmented; stacks grew up instead of down [»kargPA12_2002]
Quote: efficient intra-address space protection by combining segmentation and paging hardware [»chiuTC3_1999]
Quote: a capability is a pointer to a computing object and the actions that the computation may perform on that object; e.g., segment capabilities for reading, writing, and executing

Subtopic: memory errors up

Quote: for hardware failures, 30% memory, 26% disk, 17% processor; for driver failures, 35% display, 13% anti-virus, 10% CD-burning, 9% audio, 9% modem

Subtopic: temperature and memory up

Quote: purge semiconductor memory by heating it to 140 deg. C; retain for weeks by cooling to -60 deg. C [»gutmP7_1996]

Subtopic: error-correcting memory up

Quote: can write a Java or .NET program so that most memory errors break security of the virtual machine; defend with error-correcting memory [»goviS5_2003]

Subtopic: pre-allocated vs dynamic allocation up

QuoteRef: cbb_1973 ;;1/12/74 Information queuing want allocated storage, provide an endzone where only queue heads can go, means information is always there if it is available, basically gives two completely different modes of operation

Subtopic: memory leak detection up

Quote: use adaptive profiling to identify memory leaks in long running programs; sample code segments inversely to execution frequency; a leak is a stale object that is not accessed; SWAT has a low false positive rate [»chilTM10_2004]
Quote: memory leak detector based on owning pointers; automatically inferred; a class member always or never owns its pointee at public method boundaries; found errors in binutils and apache [»heinDL6_2003]
Quote: for leaked objects, SWAT reports last observed access, allocation site, and deallocation sites; sort by number of leaked objects and largest drag [»chilTM10_2004]
Quote: SWAT identified all 34 injected memory leaks (and a real leak) in a large interactive web application; identified 6 leaks in beta code [»chilTM10_2004]
Quote: memory leak detection for garbage-collectors using differences between volumes of type points-from graph; no false positives, space and time efficient [»jumpM1_2007]
Quote: HeapMD detects anomalies in stable, degree-based metrics of the heap; found 31 new bugs in large, commercial applications; 2-3x slowdown; few false-positives; call-stack log [»chilTM10_2006]

Subtopic: memory conditionals up

QuoteRef: sammJE_1969 ;;432 Storage by tests on memory eg, >*n continue routing if storage greater than numeric subscript of constitute n

Subtopic: custom vs. generic memory allocator up

Quote: the Lea memory allocator works as well as custom allocators in six of eight applications; only region allocators do better [»bergED11_2002]

Subtopic: cost of memory management up

Quote: writing an ASDL pickle is dominated by I/O while reading by memory allocation time
Quote: memory management changes runtimes dramatically but users have little control [»kernBW7_1998]
Quote: Java's runtime efficiency is acceptable but it has a huge memory overhead [»precL10_2000]

Group: memory management up

Topic: heap memory management (33 items)
Topic: memory management by age (18 items)
Topic: memory management by buddy system (9 items)
Topic: memory management by free list (25 items)
Topic: memory management by garbage collection (116 items)
Topic: memory management by paging (23 items)
Topic: memory management by reference counting (23 items)
Topic: memory management by regions or memory pool (17 items)
Topic: memory management by working sets (18 items)
Topic: memory management for programs and modules (12 items)
Topic: virtual memory
(32 items)

Related Topics up

Group: computer hardware   (24 topics, 343 quotes)
Group: programming   (339 topics, 10149 quotes)

Topic: compiler (18 items)
Topic: data caching (35 items)
Topic: database implementation (18 items)
Topic: dangling pointers (13 items)
Topic: disk allocation (32 items)
Topic: efficiency (96 items)
Topic: file cache (23 items)
Topic: managing shared memory (74 items)
Topic: memory cache (29 items)
Topic: object code linkers and loaders (31 items)
Topic: operating system kernel (67 items)
Topic: owned resources and data objects (12 items)
Topic: Thesa compiler and loader (23 items)
Topic: register allocation by usage counts (12 items)
Topic: security by access rights (38 items)
Topic: running programs in a workspace or environment (14 items)
Topic: safe use of pointers
(102 items)

Updated barberCB 8/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.