1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical...

22
1 Memory Management Basics

Transcript of 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical...

Page 1: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

1

Memory Management Basics

Page 2: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

2

ProgramP

Basic Memory Management ConceptsAddress spaces

Physical address space — The address space supported by the hardware Starting at address 0, going to address MAXsys

Logical/virtual address space — A process’s view of its own memory Starting at address 0, going to address MAXprog

0

MAXsys

0

MAXprog

MOV r0, @0xfffa620e

But where do addresses come from?

Page 3: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

3

Which is bigger, physical or virtual address space?A. Physical address spaceB. Virtual address spaceC. It depends on the system.

Page 4: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

4

Basic ConceptsAddress generation

The compilation pipeline

prog P : : foo() : :end P

prog P : : foo() : :end P

P: :push ...inc SP, xjmp _foo :foo: ...

P: :push ...inc SP, xjmp _foo :foo: ...

:push ...inc SP, 4jmp 75 : ...

:push ...inc SP, 4jmp 75 : ...

0

75

1100

1175

LibraryRoutines

1000

175

LibraryRoutines

LibraryRoutines

0

100

Compilation Assembly Linking Loading

: : :jmp 1175 : ...

: : :jmp 175 : ...

: : :jmp 175 : ...

Page 5: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

5

Program Relocation

Program issues virtual addresses

Machine has physical addresses.

If virtual == physical, then how can we have multiple programs resident concurrently?

Instead, relocate virtual addresses to physical at run time. While we are relocating, also bounds check addresses for

safety.

I can relocate that program (safely) in two registers…

Page 6: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

6

Basic Concepts (Cont’d.)Address Translation

0

MAXsys

Program

ProgramP’s

logicaladdressspace

ProgramP’s

logicaladdressspace

0

MAXprog

1000

1500CPUCPU ++

10001000

BaseRegister

LogicalAddresses

≤≤

500500

LimitRegister

MEMORYEXCEPTION

PhysicalAddresses

yes

no

Instructions

P’sphysica

laddressspace

Page 7: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

7

With base and bounds registers, the OS needs a hole in physical memory at least as big as the process. A. True B. False

Page 8: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

8

Evaluating Dynamic Allocation TechniquesThe fragmentation problem

External fragmentation Unused memory between units of

allocation E.g, two fixed tables for 2, but a party of 4

Internal fragmentation Unused memory within a unit of allocation E.g., a party of 3 ata table for 4

0

MAX

ProgramR’s PAS

ProgramQ’sPAS

Execution StackExecution Stack

Program Code(“text”)

Program Code(“text”)

DataData

Execution StackExecution Stack

Page 9: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

9

Simple Memory Management SchemesDynamic allocation of partitions

Simple approach: Allocate a partition when a process is admitted

into the system Allocate a contiguous memory partition to the

process

0

MAX

ProgramP2

ProgramP3

ProgramP1

P5

ProgramP4

OS keeps track of...Full-blocksEmpty-blocks (“holes”)

Allocation strategiesFirst-fitBest-fitWorst-fit

Page 10: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

10

First Fit Allocation

To allocate n bytes, use the first available free block such that the block size is larger

than n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes,we use the 1st free blockavailable

2K bytes

500 bytes

Page 11: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

11

Rationale & Implementation

Simplicity of implementation

Requires: Free block list sorted by address Allocation requires a search for a suitable partition De-allocation requires a check to see if the freed partition could be

merged with adjacent free partitions (if any)

Advantages Simple Tends to produce

larger free blocks toward the end of the address space

Disadvantages Slow allocation External fragmentation

Page 12: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

12

Best Fit Allocation

To allocate n bytes, use the smallest available free block such that the block size is

larger than n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes,we use the 3rd free blockavailable (smallest)

1K bytes

2K bytes

Page 13: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

13

Rationale & Implementation

To avoid fragmenting big free blocks

To minimize the size of external fragments produced

Requires: Free block list sorted by size Allocation requires search for a suitable partition De-allocation requires search + merge with adjacent free partitions,

if any

Advantages Works well when most

allocations are of small size

Relatively simple

Disadvantages External fragmentation Slow de-allocation Tends to produce many

useless tiny fragments (not really great)

Doug Lea’s malloc “In most ways this malloc is a best-fit allocator”

Page 14: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

14

Worst Fit Allocation

To allocate n bytes, use the largest available free block such that the block size is larger than n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes,we use the 2nd free blockavailable (largest)

1K bytes

Page 15: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

15

Rationale & Implementation

To avoid having too many tiny fragments

Requires: Free block list sorted by size Allocation is fast (get the largest partition) De-allocation requires merge with adjacent free partitions, if any,

and then adjusting the free block list

Advantages Works best if

allocations are of medium sizes

Disadvantages Slow de-allocation External fragmentation Tends to break large free

blocks such that large partitions cannot be allocated

Page 16: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

16

Allocation strategies

First fit, best fit and worst fit all suffer from external fragmentation.A. TrueB. False

Page 17: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

17

Dynamic Allocation of PartitionsEliminating Fragmentation

Compaction Relocate programs to coalesce holes

0

MAX

ProgramP2

ProgramP3

ProgramP1

ProgramP4

SuspendedSuspended

suspendedqueue

readyqueue

semaphore/condition queues

WaitingWaiting

RunningRunningReadyReady

?

Swapping Preempt processes & reclaim their memory

Page 18: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

18

0

2n-1

ProgramP’sVAS

Memory ManagementSharing Between Processes

Schemes so far have considered only a single address space per process A single name space per process No sharing

Program P’sVAS

Program

DataProgra

mText

Heap

Run-Time Stack

How can one share code and data between programs without paging?

Page 19: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

19

Multiple Name SpacesExample — Protection/Fault isolation & sharing

0

2n-1

0

2n1-1 0

0

0

2n2-1

2n3-1

2n4-1

0

2n6-1Libraries

2n5-1

0

Program

DataProgra

mText

Heap

Run-Time Stack

Program

Text

Program

Data

Run-Time Stack

Heap

User Code

Page 20: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

20

Supporting Multiple Name SpacesSegmentation

New concept: A segment — a memory “object” A virtual address space

A process now addresses objects —a pair (s, addr) s — segment number addr — an offset within an object

Don’t know size of object, so 32 bits for offset?

Segment + Address register scheme

ss addr

addr

Single address scheme

n10 0n20

ss

n

addr

addr

Page 21: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

21

Implementing SegmentationBase + Limit register scheme

0

Program

1000

1500

++

10001000 BaseRegister

LogicalAddresses

≤≤

500500LimitRegister

MEMORYEXCEPTION

PhysicalMemory

yes

noP’s

Segment

Segment Table

s

CPUCPU

0n 320

s o

ProgramP

ProgramP

base limit

STBRSTBR

Add a segment table containing base & limit register values

Page 22: 1 Memory Management Basics. 2 Program P Basic Memory Management Concepts Address spaces Physical address space — The address space supported by the hardware.

22

Memory Management BasicsAre We Done?

Segmentation allows sharing

… but leads to poor memory utilization We might not use much of a large segment, but we must keep the

whole thing in memory (bad memory utilization). Suffers from external fragmentation Allocation/deallocation of arbitrary size segments is complex

How can we improve memory management? Paging