Heap Management

Post on 15-Feb-2017

175 views 0 download

Transcript of Heap Management

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.