heap management

27
RUN-TIME ENVIRONMENTS HEAP MANAGAGEMENT

Upload: jenny-galino

Post on 15-Feb-2017

174 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

Page 1: Heap Management

RUN-TIME ENVIRONMENTSHEAP MANAGAGEMENT

Page 2: Heap Management

HEAP- portion of the store used for data that lives indefinitely or until explicitly deleted by the program

Nevermore by Paul Gaugin

Page 3: Heap Management

MEMORY MANAGER

Page 4: Heap Management

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

Page 5: Heap Management

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

Page 6: Heap Management

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

Page 7: Heap Management

Space Efficiency

Program Efficiency

Low Overhead

MEMORY MANAGER

Page 8: Heap Management

WINTERTemplate

MEMORY HIERARCHY

01

Page 9: Heap Management

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

Page 10: Heap Management

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.

Page 11: Heap Management

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.”

Page 12: Heap Management

03Two Types of Access Locality

1. Temporal Locality2. Spatial Locality

Principle of Locality

Page 13: Heap Management

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

Page 14: Heap Management

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

Page 15: Heap Management

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition,

Reducing Fragmentation

Page 16: Heap Management

8.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

CONTIGUOUS MEMORY

Page 17: Heap Management

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

Page 18: Heap Management

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

Page 19: Heap Management

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

Page 20: Heap Management

Coalescing

REDUCING FRAGMENTATION

Page 21: Heap Management

COALESCING- combining adjacent chunks of the heap to form a larger chunk

Page 22: Heap Management

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

Page 23: Heap Management

MANUAL DEALLOCATION REQUEST

Page 24: Heap Management

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

Page 25: Heap Management

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

Page 26: Heap Management

Region-based Allocation- allocate all objects in the same

region; then delete the entire region

PROGRAMMING CONVENTIONS & TOOLS

MANUAL DEALLOCATION REQUESTS

Page 27: Heap Management

Fin.