Operating Systems I Memory Management. Overview F Provide Services –processes –files F Manage...

49
Operating Systems I Memory Management
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    0

Transcript of Operating Systems I Memory Management. Overview F Provide Services –processes –files F Manage...

Page 1: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Operating Systems I

Memory Management

Page 2: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Overview

Provide Services– processes – files

Manage Devices– processor – memory – disk

Page 3: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Simple Memory Management

One process in memory, using it all– each program needs I/O drivers– until 1960

RAM UserProg

I/O drivers

Page 4: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Simple Memory Management Small, protected OS, drivers

– DOS– “Mono-programming” -- No multiprocessing

OS

OS

RAM

ROM DeviceDrivers ROM

OS

RAM RAM

UserProg User

Prog

UserProg

Page 5: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Multiprocessing w/Fixed Partitions

OS

Partion 1

Partion 2

Partion 3

Partion 4

200k300k

500k

900k

OS

Partion 1

Partion 2

Partion 3

Partion 4

(a) (b)

• Unequal queues • Waste large partition• Skip small jobs

Simple!

Page 6: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Address Binding Compile Time

– maybe absolute binding (.com) Link Time

– dynamic vs. static libraries Load Time

– relocatable code Run Time

– relocatable memory segments– overlays– paging

Source

Object

RAMBinary

Compile

Load

LoadModule

Link

Run

Page 7: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Logical vs Physical Addresses Compile-Time + Load Time addresses same Run time addresses different

CPU

RelocationRegister

+

14000

MMU

LogicalAddress

346

PhysicalAddress

Memory14346

User goes from 0 to max Physical goes from R+0 to R+max

Page 8: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Relocatable Code Allow logical addresses Protect other processes

CPU

Limit Reg

<

error

no

Reloc Reg

+yes

physicaladdress

Memory

Addresses must be contiguous!

Page 9: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Object Module

Information required to “load” into memory Header Information Machine Code Initialized Data Symbol Table Relocation Information (see sample)

Page 10: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Loading an Object Resolve references of object module

HeaderExecutable

Code

InitializedData

ExecutableCode

InitializedData

UninitializedData

On Disk In Memory

Page 11: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Variable-Sized Partitions

Idea: want to remove “wasted” memory that is not needed in each partition

Definition:– Hole - a block of available memory– scattered throughout physical memory

New process allocated memory from hole large enough to fit it

Page 12: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Variable-Sized PartitionsOS

process 5

process 8

process 2

OSprocess 5

process 2

8 done

OSprocess 5

process 2

process 99 arrv

OS

process 2

process 910 arrv

process 105 done

OS keeps track of:– allocated partitions– free partitions (holes)– queues!

Page 13: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Variable-Sized Partitions

How do you satisfy a request of sizes?– 20k, 130k, 70k

Given a list of free holes:

100k 75k110k 25k140k

Page 14: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Variable-Sized Partitions

Requests: 20k, 130k, 70k– First-fit: allocate first hole that is big enough– Best-fit: allocate smallest hole that is big enough– Worst-fit: allocate largest hole (say, 120k)

100k 75k110k 25k140k

Page 15: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Variable-Sized Partitions

First-fit: might not search the entire list Best-fit: must search the entire list Worst-fit: must search the entire list

First-fit and Best-ft better than Worst-fit in terms of speed and storage utilization

Page 16: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Request?

What if a request for additional memory?

OS

process 2

process 3

process 8

malloc(20k)?

Page 17: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Internal Fragmentation Have some “empty” space for each

processes

Internal Fragmentation - allocated memory may be slightly larger than requested memory and not being used.

OS

A program

A data

A stack

Room for growthAllocated to A

Page 18: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

External Fragmentation

External Fragmentation - total memory space exists to satisfy request but it is not contiguous OS

process 2

process 3

process 8

50k

100k

Process 9125k ?

Page 19: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Analysis of External Fragmentation

Assume:– system at equilibrium– process in middle– if N processes, 1/2 time process, 1/2 hole

==> 1/2 N holes!

– Fifty-percent Rule– Fundamental:

adjacent holes combined adjacent processes not combined

Page 20: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Compaction Shuffle memory contents to place all free

memory together in one large block Only if relocation dynamic! Same I/O DMA problem

Process 9125k

OS

process 2

process 3

process 8

OS

process 2

process 3

process 8

50k

100k

OS

process 2

process 3

process 8

90k

50k

(a) (b)

Page 21: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Review

What is a relocation register? What is external fragmentation? How to fix? Given fixed partitions. List three ways to

handle a job that requests too much memory.

Page 22: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Cost of Compaction Compaction of Memory vs. Swap (Disk)

process 2

process 3

process 8

50k

100k

90k

50k

process 1 process 1

process 2

process 3

process 8

Disk much slower!

Page 23: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Solution?

Want to minimize external fragmentation– Large Blocks– But internal fagmentation!

Tradeoff– Sacrifice some internal fragmentation for

reduced external fragmentation– Paging

Page 24: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging

Logical address space of a process can be noncontiguous; process is allocated memory wherever latter is available– Divide physical memory into fixed-size blocks

size is a power of 2, between 512 and 8192 bytes called Frames

– Divide logical memory into bocks of same size called Pages

Page 25: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging Address generated by CPU divided into:

– Page number (p) - index to page table page table contains base address of each page in

physical memory (frame)

– Page offset (d) - offset into page/frame

CPU p d

page table

f

f d

physicalmemory

Page 26: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging Example

Page 0

Page size 4 bytes Memory size 32 bytes (8 pages)

Page 1

Page 2

Page 3

1

4

3

7

0

1

2

3

Page TableLogicalMemory

Page 1

Page 3

PhysicalMemory

Page 0

Page 2

0

1

2

3

4

5

6

7

Page 27: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging ExampleP

age

0P

age

1P

age

2P

age

3

01

11

00

10

00

01

10

11

Page Table

LogicalMemory

000

001

010

011

100

101

110

111

PhysicalMemory

000

001

010

011

100

101

110

111

0 0 1 0 1 1

Page

Offset

Frame

Page 28: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging Hardware

page numberp

page offsetd

address space 2m

page size 2n

page offset 2m-n

m-n n

note: not losing any bytes!

phsicalmemory2m bytes

Page 29: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging Example

Consider:– Physical memory = 128 bytes– Physical address space = 8 frames

How many bits in an address? How many bits for page number? How many bits for page offset? Can a logical address space have only 2 pages?

How big would the page table be?

Page 30: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Page Table Example

1

4

0

1

Page Table

Page 0

Page 1

Process A

Page 1A

Page 1B

PhysicalMemory

Page 0A

Page 0B

0

1

2

3

4

5

6

7

Page 0

Page 1

Process B

3

7

0

1

Page Table

page numberp

page offsetd

m-n=3 n=4

b=7

Page 31: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Paging Tradeoffs Advantages

– no external fragmentation (no compaction)– relocation (now pages, before were processes)

Disadvantages– internal fragmentation

consider: 2048 byte pages, 72,766 byte proc – 35 pages + 1086 bytes = 962 bytes

avg: 1/2 page per process small pages!

– overhead page table / process (context switch + space) lookup (especially if page to disk)

Page 32: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Implementation of Page Table

Page table kept in registers Fast! Only good when number of frames is small Expensive!

Registers

Memory

Disk

Page 33: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Implementation of Page Table Page table kept in main memory Page Table Base Register (PTBR)

Page 0

Page 1

1

4

0

1

Page TableLogicalMemory

Page 1

PhysicalMemory

Page 0

0

1

2

3

1 4

PTBR

Page Table Length Two memory accesses per data/inst access.

– Solution? Associative Registers

Page 34: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Associative Registers

CPU

p d

page table

f

f d

physicalmemory

page number

framenumber

associativeregisters

miss

hit

logicaladdress

physicaladdress

10-20% mem time

Page 35: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Associative Register Performance Hit Ratio - percentage of times that a page

number is found in associative registers

Effective access time = Effective access time =

hit ratio hit ratio xx hit time + miss ratio hit time + miss ratio xx miss time miss time hit time = reg time + mem time miss time = reg time + mem time * 2 Example:

– 80% hit ratio, reg time = 20 nanosec, mem time = 100 nanosec

– .80 * 120 + .20 * 220 = 140 nanoseconds

Page 36: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Protection Protection bits with each frame Store in page table Expand to more perms

Page 0

Page 1

Page 2

1

0

3

0

0

1

2

3

Page TableLogicalMemory Physical

Memory

Page 0

Page 2

0

1

2

3

v

v

v

i

Page 1

ProtectionBit

Page 37: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Large Address Spaces Typical logical address spaces:

– 4 Gbytes => 232 address bits (4-byte address) Typical page size:

– 4 Kbytes = 212 bits Page table may have:

– 232 / 212 = 220 = 1million entries Each entry 3 bytes => 3MB per process! Do not want that all in RAM Solution? Page the page table

– Multilevel paging

Page 38: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Multilevel Paging

Page 0

...

......

Outer PageTable

LogicalMemory

...

...

Page Table

...

page numberp1

page offsetd

10 12

p2

10

Page 39: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Multilevel Paging Translation

page numberp1

page offsetdp2

outer page table inner page

table

desiredpage

dp2

p1

Page 40: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Multilevel Paging Performance

2 memory access if miss Effective access time?

– 90% hit rate– .80 * 120 + .20 * 320 = 160 nanoseconds

Page 41: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Inverted Page Table Page table maps to physical addresses

CPU pid dpse

arch

pid p

i

i d

PhysicalMemory

Still need page per process --> backing store

Memory accesses longer! (search + swap)

Page 42: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory View Paging lost users’ view of memory Need “logical” memory units that grow and contract

subroutine

stack

symbol table

main

• Solution? • Segmentation!

ex: stack,shared library

Page 43: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Segmentation Logical address: <segment, offset> Segment table - maps two-dimensional user

defined address into one-dimensional physical address– base - starting physical location– limit - length of segment

Hardware support– Segment Table Base Register– Segment Table Length Register

Page 44: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Segmentation

CPU

s dlogicaladdress

limit base

<

error

no

+

yesphysicaladdress

physicalmemory

main

stack

Page 45: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Management Outline Basic

– Fixed Partitions – Variable Partitions

Paging – Basic – Enhanced

Specific – WinNT– Linux

Virtual Memory

Page 46: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Management in WinNT

32 bit addressess (232 = 4 GB address space)– Upper 2GB shared by all processes (kernel mode)– Lower 2GB privater per process

Page size is 4 KB (212, so offset is 12 bits) Multilevel paging (2 levels)

– 10 bits for outer page table (page directory)– 10 bits for inner page table– 12 bits for offset

Page 47: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Management in WinNT

Each page-table entry has 32 bits– only 20 needed for address translation– 12 bits “left-over”

Characteristics– Access: read only, read-write– States: valid, zeroed, free …

Inverted page table– points to page table entries– list of free frames

Page 48: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Management in Linux

Page size:– Alpha AXP ha 8 Kbyte page– Intel x86 has 4 Kbyte page

Multilevel paging (3 levels)– Even though hardware support on x86!

Page 49: Operating Systems I Memory Management. Overview F Provide Services –processes  –files  F Manage Devices –processor  –memory  –disk

Memory Management in Linux

Buddy-heap Buddy-blocks are combined to larger block Linked list of free blocks at each size If not small enough, broken down

16 KB

8 KB

8 KB

8 KB

4 KB

4 KB