Skip to content
Category

Memory management

page 1
garbage collection
form of automatic memory management
memory management unit
computer hardware unit having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical addresses
paging
memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory
memory management
computer resource management of memory, involving allocation and deallocation
memory leak
type of resource leak that occurs when a computer program incorrectly manages memory allocations
call stack
stack data structure that stores information about the active subroutines of a computer program
memory segmentation
the division of computer's primary memory into segments or sections
segmentation fault
fault, or failure condition, raised by hardware with memory protection, notifying an operating system the software has attempted to access a restricted area of memory
translation lookaside buffer
memory cache that is used to reduce the time taken to access a user memory location; part of the chip’s memory-management unit
shared memory
memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies
Physical Address Extension
memory management feature
memory protection
way to control memory access rights on a computer, and is a part of most modern instruction set architectures and operating systems
dynamic memory allocation
the allocation of memory storage for use in a computer program during runtime
fragmentation
inefficient, non-contiguous allocation of memory or storage space
page table
data structure that maps virtual addresses with physical addresses
page fault
when a running program accesses a memory page that is not currently mapped by the MMU into the virtual address space of a process
Bank switching
a technique to increase the amount of usable memory
static variable
in computer languages, a variable that has been allocated statically so that its lifetime is the entire run of the program (as opposed to shorter-lived automatic variables and dynamically allocated variables)
page
fixed-length contiguous block of virtual memory
input–output memory management unit
memory management unit that connects a direct-memory-access–capable I/O bus to the main memory
reference counting
sorftware resource tracking technique
zram
zram, formerly called compcache, is a Linux kernel module for creating a compressed block device in RAM, i.e. a RAM disk with on-the-fly disk compression. The block device created with zram can then be used for swap or as a general-purpose RAM disk. The two most common uses for zram are for the storage of temporary files () and as a swap device. Initially, zram had only the latter function, hence the original name "compcache" ("compressed cache"). When empty, zram block device allocates about 0.1% of its size.
BSS segment
In computer programming, the block starting symbol (abbreviated to .bss or bss) is the portion of an object file, executable, or assembly language code that contains statically allocated variables that are declared but have not been assigned a value yet. It is often referred to as the "bss section" or "bss segment".
automatic variable
stack-allocated variable that is automatically deallocated upon leaving the scope in which it was declared
C dynamic memory allocation
memory management
Bélády's anomaly
in computer storage, the phenomenon in which having more page frames can cause more page faults for first-in first-out page replacement algorithm
weak reference
Global Descriptor Table
x86 data structure
coalescing
in computer science, the act of merging two adjacent free blocks of memory
code segment
portion of an object file containing executable instructions
Interrupt descriptor table
memory structure of x86 microprocessors
data segment
storage segment
Interleaved memory
computer memory access architecture
zswap
zswap is a Linux kernel feature that provides a compressed write-back cache for swapped pages, as a form of virtual memory compression. Instead of moving memory pages to a swap device when they are to be swapped out, zswap performs their compression and then stores them into a memory pool dynamically allocated in the system RAM. Later writeback to the actual swap device is deferred or even completely avoided, resulting in a significantly reduced I/O for Linux systems that require swapping; the tradeoff is the need for additional CPU cycles to perform the compression.
Memory Management Controller
video game console technology
Bus error
Type of computer fault
Memory pool
dynamic memory allocation method
segment descriptor
used for memory addressing in x86 computer architectures
out of memory
state of computer operation where no additional memory can be allocated
region-based memory management
memory allocation scheme
memory management subsystem
function of a computer operating system responsible for managing the computer's primary memory
free list
data structure used in a scheme for dynamic memory allocation
finalizer
In computer science, a finalizer or finalize method is a special method that performs finalization, generally some form of cleanup. A finalizer is executed during object destruction, prior to the object being deallocated, and is complementary to an initializer, which is executed during object creation, following allocation. Finalizers are strongly discouraged by some, due to difficulty in proper use and the complexity they add, and alternatives are suggested instead, mainly the dispose pattern (see problems with finalizers).
resident set
computer process and data in RAM
pool
collection of computer resources that are kept ready to use rather than acquired on use and released afterwards