Skip to content

Latest commit

 

History

History
138 lines (94 loc) · 4.6 KB

h.rst

File metadata and controls

138 lines (94 loc) · 4.6 KB

Memory Management Glossary: H

handle

A handle is an object that represents a resource.

Handles are used when the resource cannot be represented directly. For example, a file handle is an object passed between a process and the OS in order to access a file, because the file itself cannot be represented.

In memory management, a handle is an object that represents another object. Handles are usually used because the object itself needs to be moved <moving garbage collector> in memory (2), or even swapped out to disk. The program therefore cannot know the address of the object.

For example, Apple's Classic Mac OS made extensive use of handles in its heap management to avoid problems due to fragmentation. If the Classic Mac OS Memory Manager could not satisfy a request for memory, it tried compacting <compaction> the heap: moving all the relocatable <relocation> objects together to squeeze out gaps. It could do this because the program only had handles on the objects, and not their actual addresses.

Handle-based heap.Handle-based heap.

pointer.

header

in-band header.

heap

free store, freestore.

The heap or free store is the memory (2) area managed by dynamic allocation.

This use of heap is unconnected with the data structure used by the heapsort algorithm.

heap allocation

dynamic allocation.

Heap allocation or dynamic allocation means run-time allocation <allocate> and deallocation <free (1)> of memory (1) in arbitrary order.

Dynamic allocation is usually for objects whose size, quantity, or lifetime could not be determined at compile-time. It is necessary to implement modern data structures, such as recursive trees and full closures.

Objects on the heap can be managed manually <manual memory management>, as in C, or automatically <automatic memory management>, as in Lisp and Java.

stack allocation, static allocation.

indefinite extent.

hit

A hit is a successful lookup in any form of cache (3) <caching (3)>, most commonly at some level of a storage hierarchy, such as a cache (1) or virtual memory system.

miss.

hit rate

At any level of a storage hierarchy, the hit rate is the proportion of accesses which hit.

miss rate.

hosted

In the C programming language, a hosted implementation is one that provides all the features of the standard C library.

freestanding.

ISO/IEC 9899:1990 <C1990>, ISO/IEC 9899:1999 <C1999>.

hot

hot end

A control stack has two ends: the oldest items are at the cold end and the newest items are at the hot end. Sometimes the hot end is called the "top" of the stack, but that is misleading when the stack grows downwards, as it does on common computing platforms.

cold end

huge page

large page, superpage.

Some processor architectures support multiple page sizes. This allows operating systems to better match the page size to the granularity of memory usage and so reduce the size of the page table.