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
ALLOCATION
MEMORY
ALLOCATION
 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
 Space Efficiency
 Program Efficiency
 Low Overhead
MEMORY MANAGER
WINTERTemplate
MEMORY
HIERARCHY
01
02
Register
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 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.”
03
Two Types of Access Locality
1. Temporal Locality
2. Spatial Locality
Principle of Locality
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
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
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
COALESCING
REDUCING
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.

Heap Management

  • 1.
  • 2.
    HEAP - portion ofthe store used for data that lives indefinitely or until explicitly deleted by the program Nevermore by Paul Gaugin
  • 3.
  • 4.
     the subsystemthat 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 achunk 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 deallocatedspace 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
  • 7.
     Space Efficiency Program Efficiency  Low Overhead MEMORY MANAGER
  • 8.
  • 9.
    02 Register 1st-Level Cache 2nd-Level Cache Physical Memory VirtualMemory (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
  • 10.
    02Memory Diagram Register 1st-Level Cache 2nd-Level Cache PhysicalMemory Virtual Memory (Disk) The goal is to obtain the best average access speed while minimizing the total cost of the entire memory system.
  • 11.
    03Principle of Locality Alsoknown 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 ofAccess Locality 1. Temporal Locality 2. Spatial Locality Principle of Locality
  • 13.
    03 1. Temporal Locality thememory 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 memorylocations 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
  • 15.
    Silberschatz, Galvin andGagne ©2009Operating System Concepts – 8th Edition, Reducing Fragmentation
  • 16.
    8.16 Silberschatz, Galvinand Gagne ©2009Operating System Concepts – 8th Edition CONTIGUOUS MEMORY
  • 17.
    8.17 Silberschatz, Galvinand 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
  • 18.
    8.18 Silberschatz, Galvinand 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
  • 19.
    8.19 Silberschatz, Galvinand 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
  • 20.
  • 21.
    COALESCING - combining adjacentchunks of the heap to form a larger chunk
  • 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
  • 23.
  • 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
  • 27.