slide 11-1 copyright © 2004 pearson education, inc. operating systems: a modern perspective,...

35
Operating Systems: A Modern Perspective, Chapter 11 Slide 11-1 Copyright © 2004 Pearson Education, Inc.

Upload: raul-laflin

Post on 01-Apr-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-1

Copyright © 2004 Pearson Education, Inc.

Page 2: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-2

Copyright © 2004 Pearson Education, Inc.

11MemoryManagement

Page 3: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-3

Copyright © 2004 Pearson Education, Inc.

The External View of the Memory Manager

Hardware

ApplicationProgram

ApplicationProgram

Fil

e M

gr

Dev

ice

Mgr

Mem

ory

Mgr

Pro

cess

Mgr

UNIXF

ile

Mgr

Dev

ice

Mgr

Mem

ory

Mgr

Pro

cess

Mgr

Windows

VMQuery()VirtualFree()VirtualLock()

ZeroMemory()

VirtualAlloc()

sbrk()exec()

getrlimit()

shmalloc()

Page 4: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-4

Copyright © 2004 Pearson Education, Inc.

Memory Manager

• Requirements– Minimize executable memory access time– Maximize executable memory size– Executable memory must be cost-effective

• Today’s memory manager:– Allocates primary memory to processes– Maps process address space to primary memory– Minimizes access time using cost-effective

memory configuration– May use static or dynamic techniques

Page 5: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-5

Copyright © 2004 Pearson Education, Inc.

Storage Hierarchies

Less Frequently

Used Information

More Frequently

Used Information

Page 6: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-6

Copyright © 2004 Pearson Education, Inc.

The Basic Memory Hierarchy

CPU Registers

Primary Memory(Executable Memory)

e.g. RAM

Secondary Memorye.g. Disk or Tape

More Frequently

Used Information

Less Frequently

Used Information

Page 7: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-7

Copyright © 2004 Pearson Education, Inc.

Contemporary Memory Hierarchy &Dynamic Loading

CPU Registers

“Main” Memory

Rotating Magnetic Memory

Optical Memory

Sequentially Accessed Memory

L1 Cache MemoryL2 Cache Memory

Sec

onda

ryP

rim

ary

(Exe

cuta

ble)

Lar

ger

stor

age

Fas

ter

acce

ss

Page 8: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-8

Copyright © 2004 Pearson Education, Inc.

Exploiting the Hierarchy• Upward moves are (usually) copy operations

– Require allocation in upper memory

– Image exists in both higher & lower memories

• Updates are first applied to upper memory• Downward move is (usually) destructive

– Destroy image in upper memory

– Update image in lower memory

• Place frequently-used info high, infrequently-used info low in the hierarchy

• Reconfigure as process changes phases

Page 9: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-9

Copyright © 2004 Pearson Education, Inc.

Address Space vs Primary Memory

Mapped to objectother than memory

Process Address Space Hardware Primary Memory

Page 10: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-10

Copyright © 2004 Pearson Education, Inc.

Creating an Executable Program

Sourcecode

Sourcecode

•Compile time: Translate elements

•Load time:•Allocate primary memory•Adjust addresses in address space•Copy address space from secondary to primary memory

LoaderLoader Processaddressspace

Primarymemory

C

RelocObjectcode

RelocObjectcode

LinkEdit

LinkEdit

Librarycode

Librarycode

Otherobjects

Otherobjects

Secondary memory

•Link time: Combine elements

Page 11: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-11

Copyright © 2004 Pearson Education, Inc.

A Sample Code Segment

...static int gVar;...int proc_a(int arg){ ... gVar = 7; put_record(gVar); ...}

Page 12: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-12

Copyright © 2004 Pearson Education, Inc.

The Relocatable Object moduleCode SegmentRelativeAddress Generated Code0000 ......0008 entry proc_a...0220 load =7, R10224 store R1, 00360228 push 00360232 call ‘put_record’...0400 External reference table...0404 ‘put_record’ 0232...0500 External definition table...0540 ‘proc_a’ 0008...0600 (symbol table)...0799 (last location in the code segment)

Data SegmentRelativeAddress Generated variable space...0036 [Space for gVar variable]...0049 (last location in the data segment)

Page 13: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-13

Copyright © 2004 Pearson Education, Inc.

The Absolute ProgramCode SegmentRelativeAddress Generated Code0000 (Other modules)...1008 entry proc_a...1220 load =7, R11224 store R1, 01361228 push 10361232 call 2334...1399 (End of proc_a)... (Other modules)2334 entry put_record...2670 (optional symbol table)...2999 (last location in the code segment)

Data SegmentRelativeAddress Generated variable space...0136 [Space for gVar variable]...1000 (last location in the data segment)

Page 14: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-14

Copyright © 2004 Pearson Education, Inc.

The Program Loaded at Location 4000RelativeAddress Generated Code0000 (Other process’s programs)4000 (Other modules)...5008 entry proc_a...5036 [Space for gVar variable]...5220 load =7, R15224 store R1, 71365228 push 50365232 call 6334...5399 (End of proc_a)... (Other modules)6334 entry put_record...6670 (optional symbol table)...6999 (last location in the code segment)7000 (first location in the data segment)...7136 [Space for gVar variable]...8000 (Other process’s programs)

Page 15: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-15

Copyright © 2004 Pearson Education, Inc.

Static Memory Allocation

OperatingSystem

Process 3

Process 0

Process 2

Process 1

Unused

In Use

Issue: Need a mechanism/policy for loading pi’s address space into primary memory

pi

Page 16: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-16

Copyright © 2004 Pearson Education, Inc.

Fixed-Partition Memory Mechanism

OperatingSystem

Region 3

Region 2

Region 1

Region 0 N0

N1

N2

N3

pi

pi needs ni units

ni

Page 17: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-17

Copyright © 2004 Pearson Education, Inc.

Fixed-Partition MemoryBest-Fit

OperatingSystem

Region 3

Region 2

Region 1

Region 0 N0

N1

N2

N3

pi

InternalFragmentation

•Loader must adjust every address in the absolute module when placed in memory

Page 18: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-18

Copyright © 2004 Pearson Education, Inc.

Fixed-Partition MemoryWorst-Fit

OperatingSystem

Region 3

Region 2

Region 1

Region 0 N0

N1

N2

N3

pi

Page 19: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-19

Copyright © 2004 Pearson Education, Inc.

Fixed-Partition MemoryFirst-Fit

OperatingSystem

Region 3

Region 2

Region 1

Region 0 N0

N1

N2

N3

pi

Page 20: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-20

Copyright © 2004 Pearson Education, Inc.

Fixed-Partition MemoryNext-Fit

OperatingSystem

Region 3

Region 2

Region 1

Region 0 N0

N1

N2

N3

pi

Pi+1

Page 21: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-21

Copyright © 2004 Pearson Education, Inc.

Variable Partition Memory

OperatingSystem

OperatingSystem

Process 0

Process 6

Process 2

Process 5Process 4

•Compaction moves program in memory

OperatingSystem

Process 0

Process 6

Process 2

Process 5

Process 4

•External fragmentation

OperatingSystem

Process 0

Process 1

Process 2

Process 3

Process 4

Loader adjusts every address in every absolute module when placed in memory

Page 22: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-22

Copyright © 2004 Pearson Education, Inc.

Cost of Moving Programs

load R1, 0x02010

3F013010

Program loaded at 0x01000 3F016010

Program loaded at 0x04000

•Must run loader over program again!

Consider dynamic techniques

Page 23: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-23

Copyright © 2004 Pearson Education, Inc.

C-Style Memory Layout

Text SegmentText Segment

Initialized Part Data Segment

Initialized Part Data Segment

Uninitialized Part Data Segment

Uninitialized Part Data Segment

Heap StorageHeap Storage

Stack SegmentStack Segment

EnvironmentVariables, …

EnvironmentVariables, …

Page 24: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-24

Copyright © 2004 Pearson Education, Inc.

Program and Process Address Spaces

AbsoluteProgramAddressSpace

0

4GB

3GB

ProcessAddressSpace

SupervisorProcessAddressSpace

UserProcessAddressSpace

PrimaryMemory

Page 25: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-25

Copyright © 2004 Pearson Education, Inc.

Multiprogramming Memory Support

OperatingSystem

Process 1

Process 3

Process 0

Process 1

Unused

In Use

0

AB

C

DE

F

G

H

R0

R1

R2

R3

R4

Page 26: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-26

Copyright © 2004 Pearson Education, Inc.

Dynamic Memory Allocation

• Could use dynamically allocated memory

• Process wants to change the size of its address space– Smaller Creates an external fragment– Larger May have to move/relocate the

program

• Allocate “holes” in memory according to– Best- /Worst- / First- /Next-fit

Page 27: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-27

Copyright © 2004 Pearson Education, Inc.

Memory Mgmt Strategies• Fixed-Partition used only in batch systems• Variable-Partition used everywhere (except

in virtual memory)• Swapping systems

– Popularized in timesharing– Relies on dynamic address relocation– Now dated

• Dynamic Loading (Virtual Memory)– Exploit the memory hierarchy– Paging -- mainstream in contemporary systems– Segmentation -- the future

Page 28: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-28

Copyright © 2004 Pearson Education, Inc.

Moving an Executable Image

ExecutableProgram

ExecutableProgram

LoaderLoader

LoaderLoader

ExecutableImage

ExecutableImage

ExecutableImage

ExecutableImage

02000

06000

Page 29: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-29

Copyright © 2004 Pearson Education, Inc.

Dynamic Address Relocation

CPU

0x02010

0x10000+

MARload R1, 0x02010

0x12010

•Program loaded at 0x10000 Relocation Register = 0x10000•Program loaded at 0x04000 Relocation Register = 0x04000

Relocation Register

Relative Address

We never have to change the load module addresses!

Page 30: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-30

Copyright © 2004 Pearson Education, Inc.

Multiple Segment Relocation Registers

CPU

Relative Address

Code Register

+

MAR

0x12010

Stack Register

Data Register

Page 31: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-31

Copyright © 2004 Pearson Education, Inc.

Runtime Bound Checking

CPU

Relative Address

Relocation Register

+

MAR

Limit Register <

Interrupt

•Bound checking is inexpensive to add•Provides excellent memory protection

Page 32: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-32

Copyright © 2004 Pearson Education, Inc.

Special Case: Swapping

• Special case of dynamic memory allocation

• Suppose there is high demand for executable memory

• Equitable policy might be to time-multiplex processes into the memory (also space-mux)

• Means that process can have its address space unloaded when it still needs memory– Usually only happens when it is blocked

Page 33: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-33

Copyright © 2004 Pearson Education, Inc.

Swapping

Image for pj

Image for pi

Swap pi outSwap pi out

Swap pj in

Page 34: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-34

Copyright © 2004 Pearson Education, Inc.

Sharing a Portion of the Address Space

Process 1Process 1

Process 2Process 2

Address Space for Process 2

Address Space for Process 1

Primary Memory

Page 35: Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11

Operating Systems: A Modern Perspective, Chapter 11

Slide 11-35

Copyright © 2004 Pearson Education, Inc.

Figure 11‑26: Multiple Segments

Relocation

RelocationLimit

Limit

Relocation

RelocationLimit

Limit

CPU Executing Process 1

CPU Executing Process 2

Primary Memory

Shared

Pri

vate

toP

roce

ss 1

Pri

vate

toP

roce

ss 2