• Corpus ID: 25912

The Slab Allocator: An Object-Caching Kernel Memory Allocator

  title={The Slab Allocator: An Object-Caching Kernel Memory Allocator},
  author={Jeff Bonwick},
  booktitle={USENIX Summer},
  • Jeff Bonwick
  • Published in USENIX Summer 6 June 1994
  • Computer Science
This paper presents a comprehensive design overview of the SunOS 5.4 kernel memory allocator. [] Key Method The allocator's object caches respond dynamically to global memory pressure, and employ an object-coloring scheme that improves the system's overall cache utilization and bus balance. The allocator also has several statistical and debugging features that can detect a wide range of problems throughout the system.

An experimental comparison analysis of kernel-level memory allocators

This study considered the execution time, memory consumption, and memory fragmentation degree of all allocators under the same workload and found that the memory allocator with best general performance was the SLOB, followed by SLAB, SLUB, and SLQB.

A Storage Slab Allocator for Disk Storage Management in File System

A storage slab allocator doesn’t discard the file layout during the process of deleting files, but reuses the free file layout while creating, thereby both block allocation and release will be speeded up.

A Fast Lock-Free User Memory Space Allocator for Embedded Systems

This paper introduces the allocator, lock-free and scalable that free the synchronization cost and low the fragmentation, and improves overall program performance over the standard Linux allocator by up to a factor of 60 on 32 threads, and up-to-a factor of 10 over the next best allocator the authors tested.

Implementation of a constant-time dynamic storage allocator

The proposed algorithm, called TLSF (two-level segregated fit), has an asymptotic constant cost, O(1), maintaining a fast response time (less than 200 processor instructions on a x86 processor) and a low level of memory usage (low fragmentation).

XMalloc: A Scalable Lock-free Dynamic Memory Allocator for Many-core Machines

This work introduces the proposed solution for transforming traditional atomic compare-and-swap based lock-free algorithm to scale on SIMD architectures, and presents a hierarchical cachelike buffer solution to reduce the average latency of accesses to non-scalable or slow resources such as main memory in a many-core machine.

Cache index-aware memory allocation

It is shown that a simple adjustment within the allocator to control the spacing of blocks can provide better index coverage, which in turn reduces the superfluous conflict miss rate in various applications, improving performance with no observed negative consequences.

A comparison of memory allocators for real-time applications

Comparing the behaviour of several allocators under "real-time" loads measuring the temporal cost and the fragmentation incurred by each allocator shows that TLSF allocator obtains the best resuts when both aspects, temporal and spatial are considered.

An Efficient and Scalable Memory Allocator for Multithreaded Tabled Evaluation of Logic Programs

  • M. AreiasRicardo Rocha
  • Computer Science
    2012 IEEE 18th International Conference on Parallel and Distributed Systems
  • 2012
A more efficient and scalable memory allocator for multithreaded tabled evaluation of logic programs that can effectively reduce the execution time and scale better, when increasing the number of threads, than the original allocator.

Implementation of a constant‐time dynamic storage allocator

The design criteria and implementation details of a dynamic storage allocator for real‐time systems, called TLSF, which has an asymptotic constant cost, O(1), maintaining a fast response time and a low level of memory usage, is described.

The myrmics memory allocator: hierarchical,message-passing allocation for global address spaces

The Myrmics hierarchical memory allocator is presented, in which multiple allocator instances organized in a tree hierarchy cooperate to implement a global address space with dynamic region support on distributed memory machines, and is evaluated on an MPI-based x86 cluster.



Improving the cache locality of memory allocation

It is shown how the design of a memory allocator can significantly affect the reference locality for various applications, and measurements suggest an allocator design that is both very fast and has good locality of reference.

Fast allocation and deallocation of memory based on object lifetimes

This paper describes a simple algorithm that is very efficient when there are few object lifetimes, and in terms of instructions executed per byte allocated, the algorithm is almost half the cost of quick fit and less than twice thecost of stack allocation.

Customalloc: Efficient synthesized memory allocators

The allocation and disposal of memory is a ubiquitous operation in most programs, but in some applications, programmers use domain‐specific knowledge in an attempt to improve the speed or memory utilization of memory allocators.

Using lifetime predictors to improve memory allocation performance

Research is described that can improve all aspects of the performance of dynamic storage allocation by predicting the lifetimes of short-lived objects when they are allocated and can significantly improve a program's memory overhead and reference locality, and even, at times, improve CPU performance as well.

The measured cost of conservative garbage collection

  • B. Zorn
  • Computer Science
    Softw. Pract. Exp.
  • 1993
It is found that programmer enhancements often have little effect on program performance and that the true cost of conservative garbage collection is not the CPU overhead, but the memory system overhead of the algorithm.

An efficient algorithm for heap storage allocation

Replacing the original allocator with the one described below improved performance by nearly an order of magnitude.

An adaptive system for dynamic storage allocation

We describe a technique (the adaptive creation of free lists) for dynamic storage allocation that is particularly suited to situations in which the distribution of sizes of blocks requested has one

Garbage collection in an uncooperative environment

This approach greatly simplifies the implementation of languages supporting garbage collection and allows conventional compilers to be used with a garbage collector, either as the primary means of storage reclamation, or as a debugging tool.

The impact of operating system structure on memory system performance

This paper evaluates the memory system behavior of two distinctly different implementations of the UNIX operating system: DEC's Ultrix, a monolithic system, and Mach 3.0 with CMU's UNIX server, a microkernel-based system, showing that the micro kernel- based system executes substantially more non-idle system instructions for an equivalent workload than themonolithic system.

Analysis of Free-Storage Algorithms - Revisited

Simulations were done of established, and proposed, dynamic storage algorithms for the VM/SP operating system, and empirical evidence is given that simplifying statistical assumptions about the distribution of interarrival times and holding times has high predictive ability.