heap management
TRANSCRIPT
RUN-TIME ENVIRONMENTSHEAP MANAGAGEMENT
HEAP- portion of the store used for data that lives indefinitely or until explicitly deleted by the program
Nevermore by Paul Gaugin
MEMORY MANAGER
the subsystem that allocates and deallocates space within the heap
keeps track of all the free space in heap storage at all times
serves as an interface between application programs and the operating system
MEMORY MANAGER
produces a chunk of contiguous heap memory of the requested size
if no chunk of the needed size is available, it increases the heap storage by getting consecutive bytes of virtual memory from the OS
ALLOCATIONMEMORYALLOCATION
returns deallocated space to the pool of free space (so it can reuse the space)
typically does not return memory to the OS, even if heap usage drops
DEALLOCATIONMEMORYALLOCATION
Space Efficiency
Program Efficiency
Low Overhead
MEMORY MANAGER
WINTERTemplate
MEMORY HIERARCHY
01
02Register
1st-Level Cache
2nd-Level Cache
Physical Memory
Virtual Memory (Disk)
Memory Diagram
Typical Sizes
32 Words
16 - 64KB
128KB - 4MB
256MB - 2GB
> 2GB
Typical Access Times
1 ns
5 - 10 ns
40 - 60 ns
100 - 150 ns
3 - 15 ms
02Memory Diagram
Register
1st-Level Cache
2nd-Level Cache
Physical Memory
Virtual Memory (Disk)
The goal is to obtain the best average
access speed while minimizing the total
cost of the entire memory system.
03Principle of Locality
Also known as Locality of ReferenceThe phenomenon of the same value or related storage locations being frequently accessed.
90/10 Rule comes from the empirical
observation:“A program spends 90% of its time in 10% of its code.”
03Two Types of Access Locality
1. Temporal Locality2. Spatial Locality
Principle of Locality
031. Temporal Locality
the memory locations the program accesses are likely to be accessed again within a short period of time
Principle of Locality
Example: Instruction in the body of inner loops
032. Spatial Locality
memory locations close to the location accessed are likely also to be accessed within a short period of time
Principle of Locality
Example: Traversing the elements in a one-dimentional
array
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition,
Reducing Fragmentation
8.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
CONTIGUOUS MEMORY
8.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Contiguous Allocation
Main memory usually into two partitions: Resident operating system, usually held in low memory
with interrupt vector User processes then held in high memory
8.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Contiguous Allocation
Hole – block of available memory; holes of various size are scattered throughout memory
When a process arrives, it is allocated memory from a hole large enough to accommodate it
Operating system maintains information about:a) allocated partitions b) free partitions (hole)
OS
process 5
process 8
process 2
OS
process 5
process 2
OS
process 5
process 2
OS
process 5
process 9
process 2
process 9
process 10
8.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Dynamic Storage-Allocation Problem
First-fit: Allocate the first hole that is big enough Best-fit: Allocate the smallest hole that is big enough; must
search entire list, unless ordered by size Produces the smallest leftover hole
Worst-fit: Allocate the largest hole; must also search entire list Produces the largest leftover hole
How to satisfy a request of size n from a list of free holes
Coalescing
REDUCING FRAGMENTATION
COALESCING- combining adjacent chunks of the heap to form a larger chunk
Boundary Tags- keeping a free/used bit at both ends of each
chunk- adjacent to the free/used bit is a count of
the # of bytes
Doubly Linked, Imbedded Free List- free chunks are linked in a doubly linked list- chunks must accommodate two boundary
tags and two pointers
COALESCINGREDUCING FRAGMENTATION
MANUAL DEALLOCATION REQUEST
Memory-leak Error- failing to EVER delete data that
cannot be referenced
Dangling-pointer-dereference [note: dangling pointers - pointers to storage that has been deallocated] - referencing deleted data
MANUAL DEALLOCATION REQUESTS
Object Ownership- associate an owner with each object
(e.g. functions and their variables)
Reference Counting- associate a count with each
dynamically allocated object
PROGRAMMING CONVENTIONS & TOOLS
MANUAL DEALLOCATION REQUESTS
Region-based Allocation- allocate all objects in the same
region; then delete the entire region
PROGRAMMING CONVENTIONS & TOOLS
MANUAL DEALLOCATION REQUESTS
Fin.