4. 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
5. 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
ALLOCATION
MEMORY
ALLOCATION
6. 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
DEALLOCATION
MEMORY
ALLOCATION
11. 03Principle of Locality
Also known as Locality of Reference
The 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.”
12. 03
Two Types of Access Locality
1. Temporal Locality
2. Spatial Locality
Principle of Locality
13. 03
1. 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
14. 03
2. 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
22. 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
COALESCING
REDUCING
FRAGMENTATION
24. 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
25. 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
26. Region-based Allocation
- allocate all objects in the same region; then
delete the entire region
PROGRAMMING CONVENTIONS &
TOOLS
MANUAL DEALLOCATION
REQUESTS