50
Virtual Memory 11/8/16 (election day) Vote!

w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

VirtualMemory11/8/16

(electionday)

Vote!

Page 2: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Recall:thejoboftheOS

TheOSisaninterfacelayerbetweenauser’sprogramsandhardware.

Itprovidesanabstractviewofthehardwarethatmakesiteasiertouse.

ProgramOperatingSystem

ComputerHardware

Page 3: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

WhatweKnowaboutPhysicalMemory(RAM)

OS0x0

max

RAMisarrayofaddressablebytes,from0x0tomax(ex)address0to230-1for1GBofRAMspace

• TheOSneedstobeinRAM• Usuallyloadedataddress0x0

• PhysicalStorageforrunningprocesses:ProcessAddressSpacesarestoredinRAM

OS0x0

max

RAM

P1

P2

P3

x:

x:P1andP2eachgettheirowncopyofx

3

Regs

Mainmemory(RAM)

Secondarystorage

Cache

Page 4: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Howmuchmemoryisallocated?

int main(){

int i;

printf("a stack address: %p\n", &i);

printf("a text address: %p\n", main);

printf("the difference: %d\n", (unsigned int)(&i) –

(unsigned int)(main));

}

a stack address: 0x7fff7f1e9774

a text address: 0x400596

the difference: 2128515550

>2gigabytes

Page 5: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Thevirtualmemoryabstraction

Solvestwoproblems:• Notenoughphysicalmemorytogoaround.• Don’twantmultipleprogramstoaccidentallymodifythesamephysicalmemorylocation.

Keyideas:• OSallocatesmemorytoprocessesasneeded.• Program’saddressesgettranslatedtophysicaladdresses.

Page 6: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Memory• Abstractiongoal:makeeveryprocessthinkithasthesamememorylayout.• MUCHsimplerforcompilerifthestackalwaysstartsat0xFFFFFFFF,etc.

• Reality:there’sonlysomuchmemorytogoaround,andnotwoprocessesshouldusethesame(physical)memoryaddresses.

Process1

Process3

Process3

OS

Process2

Process1

OS(withhelpfromhardware)willkeeptrackofwho’susingeachmemoryregion.

Text

Data

Stack

OS

Heap

Page 7: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Text

Data

Stack

OS

Heap

Text

Data

Stack

OS

Heap

MemoryTerminology

Process1

Process3

Process3

OS

Process2

Process1

Text

Data

Stack

OS

Heap

PhysicalMemory:Thecontentsofthehardware(RAM)memory.ManagedbyOS.OnlyONE ofthesefortheentiremachine!

Virtual(logical)Memory:Theabstractviewofmemorygiventoprocesses.Eachprocessgetsanindependentviewofthememory.

AddressSpace:Rangeofaddressesforaregionofmemory.

Thesetofavailablestoragelocations.

0x0

0x…(DeterminedbyamountofinstalledRAM.)

0x0

0xFFFFFFFFVirtualaddressspace(VAS):fixedsize.

Page 8: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Text

Data

Stack

OS

Heap

Text

Data

Stack

OS

Heap

MemoryTerminology

Process1

Process3

Process3

OS

Process2

Process1

Text

Data

Stack

OS

HeapAddressSpace:Rangeofaddressesforaregionofmemory.

Thesetofavailablestoragelocations.

0x0

0x…(DeterminedbyamountofinstalledRAM.)

0x0

0xFFFFFFFFVirtualaddressspace(VAS):fixedsize.

Note:Itiscommon forVAStoappearlargerthanphysicalmemory.32-bit(IA32):Canaddressupto4GB,mighthavelessinstalled64-bit(X86-64):Ourlabmachineshave48-bitVAS(256TB),36-bitPAS(64GB)

Page 9: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

CohabitatingPhysicalMemory

• IfprocessisgivenCPU,mustalsobeinmemory.• Problem• Context-switchingtime(CST):10µsec• Loadingfromdisk:10MB/s• Toload1MBprocess:100msec =10,000x CST• Toomuchoverhead!Breaksillusionofsimultaneity

• Solution:keepmultipleprocessesinmemory• Contextswitchonlybetweenprocessesinmemory

Page 10: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryIssuesandTopics

• Whereshouldprocessmemoriesbeplaced?• Topic:“Classic”memorymanagement

• Howdoesthecompilermodelmemory?• Topic:Logicalmemorymodel

• Howtodealwithlimitedphysicalmemory?• Topics:Virtualmemory,paging

Plan:Startwiththebasics(outofdate)tomotivatewhyweneedthecomplexmachineryofvirtualmemoryandpaging.

Page 11: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Problem:Placement

• Whereshouldprocessmemoriesbeplaced?• Topic:“Classic”memorymanagement

• Howdoesthecompilermodelmemory?• Topic:Logicalmemorymodel

• Howtodealwithlimitedphysicalmemory?• Topics:Virtualmemory,paging

Page 12: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryManagement• Physicalmemorystartsasonebigemptyspace.

Page 13: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryManagement• Physicalmemorystartsasonebigemptyspace.

• Processesneedtobeinmemorytoexecute.

Page 14: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryManagement• Physicalmemorystartsasonebigemptyspace.• Whencreatingprocess,allocatememory• Findspacethatcancontainprocess• Allocateregionwithinthatgap• Typically,leavesa(smaller)freespace

Page 15: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryManagement• Physicalmemorystartsasonebigemptyspace.• Whencreatingprocess,allocatememory• Findspacethatcancontainprocess• Allocateregionwithinthatgap• Typically,leavesa(smaller)freespace

• Whenprocessexits,freeitsmemory• Createsagapinthephysicaladdressspace.• Ifnexttoanothergap,coalesce.

Page 16: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Fragmentation

• Eventually,memorybecomesfragmented• Afterrepeatedallocations/de-allocations

• Internalfragmentation• Unusedspacewithinprocess• Cannotbeallocatedtoothers• Cancomeinhandyforgrowth

• Externalfragmentation• Unusedspaceoutsideanyprocess(gaps)• Canbeallocated(toosmall/notuseful?)

Page 17: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

WhichformoffragmentationiseasiestfortheOStoreduce/eliminate?

A. Internalfragmentation

B. Externalfragmentation

C. Neither

Page 18: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit• Bestfit• Worstfit

• Complication• Isregionfixedorvariablesize?

Page 19: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit• Bestfit• Worstfit

• Complication• Isregionfixedorvariablesize?

Page 20: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit• Bestfit• Worstfit

• Complication• Isregionfixedorvariablesize?

Page 21: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Whichmemoryallocationalgorithmleavesthesmallestfragments(external)?

A. first-fit

B. worst-fit

C. best-fit

Isleavingsmallfragmentsagoodthingorabadthing?

Page 22: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit:fast• Bestfit• Worstfit

• Complication• Isregionfixedorvariablesize?

Page 23: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit• Bestfit:leavessmallfragments• Worstfit

• Complication• Isregionfixedorvariablesize?

Page 24: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

PlacingMemory

• Whensearchingforspace,whatiftherearemultipleoptions?• Algorithms• First(ornext)fit• Bestfit• Worstfit:leaveslargefragments

• Complication• Isregionfixedorvariablesize?

Page 25: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Whatifitdoesn’tfit?

• Theremaystillbesignificantunusedspace• Externalfragments• Internalfragments

• Approaches

Page 26: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Whatifitdoesn’tfit?

• Theremaystillbesignificantunusedspace• Externalfragments• Internalfragments

• Approaches• Compaction

Page 27: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Whatifitdoesn’tfit?

• Theremaystillbesignificantunusedspace• Externalfragments• Internalfragments

• Approaches• Compaction• Breakprocessmemoryintopieces

• Easiertofit.• Morestatetokeeptrackof.

Page 28: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Placement

• Whenplacingprocess,itmaybehardtofindalargeenoughfreeregioninphysicalmemory.

• Fragmentationmakesthisharderovertime(freepiecesgetsmaller,spreadout).

• Generalsolution:don’trequireallofaprocess’smemorytobeinonepiece!

Page 29: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Placement

• Generalsolution:don’trequireallofaprocess’smemorytobeinonepiece!

Process1

OS

Process2

Process1

Process3

Process2

PhysicalMemory

Page 30: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Placement

• Generalsolution:don’trequireallofaprocess’smemorytobeinonepiece!

Process1

OS

Process2

Process1

Process3

Process2

PhysicalMemory

OS:Place

Process3

Page 31: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Placement

• Generalsolution:don’trequireallofaprocess’smemorytobeinonepiece!

Process1

OS

Process2

Process1

Process3

Process2

PhysicalMemory

OS:Place

Process3

Process3

Process3

Page 32: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Placement

• Generalsolution:don’trequireallofaprocess’smemorytobeinonepiece!

Process1

OS

Process2

Process1

Process3

Process2

PhysicalMemory

OS:Place

Process3

Process3

Process3Process3

OSmaychoosenottoplacepartsinmemoryatall.

Page 33: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Problem:Addressing

• Whereshouldprocessmemoriesbeplaced?• Topic:“Classic”memorymanagement

• Howdoesthecompilermodelmemory?• Topic:Logicalmemorymodel

• Howtodealwithlimitedphysicalmemory?• Topics:Virtualmemory,paging

Page 34: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

(More)ProblemswithMemoryCohabitation

• Addressing:• Compilergeneratesmemoryreferences• Unknownwhereprocesswillbelocated

• Protection:• Modifyinganotherprocess’smemory

• Space:• Themoreprocessesthereare,thelessmemoryeachindividuallycanhave

P2

P1

P3

Page 35: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Compiler’sViewofMemory

• Compilergeneratesmemoryaddresses• Needsemptyregionfortext,data,heap,stack• Ideally,verylargetoallowheapandstacktogrow• Alternative:fourindependentemptyregions

• Whatcompilerneedstoknow,butdoesn’t• Physicalmemorysize• Wheretoplacedata(e.g.,stackathighend)

• Mustavoidallocatedregionsinmemory

Page 36: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

AddressSpaces• Addressspace• Setofaddressesformemory

• Usuallylinear:0toN-1(sizeN)• PhysicalAddressSpace• 0toN-1,N =size• Kerneloccupieslowestaddresses

0

N-1

PAS

kernel

PM

Page 37: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Virtualvs.PhysicalAddressing• Virtualaddresses• Assumesseparatememorystartingat0• Compilergenerated• Independentoflocationinphysicalmemory

• OS:Mapvirtualtophysical

P10

N1-1

P2

0

N2-1

P3

0

N3-1

VM’sVAS’s

P2

P1

P3

0

N-1

PMPAS

Page 38: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Whenshouldweperformthemappingfromvirtualtophysicaladdress?Why?

A. Whentheprocessisinitiallyloaded:convertalltheaddressestophysicaladdresses

B. Whentheprocessisrunning:maptheaddressesasthey’reused.

C. Performthemappingatsomeothertime.When?

Page 39: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

HardwareforVirtualAddressing• Baseregisterfilledwithstartaddress• Totranslateaddress,addbase• Achievesrelocation• Tomoveprocess:changebase

P2

0

N2-1

P2

P1

P3

0

N-1

Base +

Page 40: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

HardwareforVirtualAddressing• Baseregisterfilledwithstartaddress• Totranslateaddress,addbase• Achievesrelocation• Tomoveprocess:changebase

P2

0

N2-1

P2

P1

P3

0

N-1

Base +

Page 41: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

HardwareforVirtualAddressing• Baseregisterfilledwithstartaddress• Totranslateaddress,addbase• Achievesrelocation• Tomoveprocess:changebase• Protection? P2

0

N2-1

P2

P1

P3

0

N-1

Base +

Page 42: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Protection• Boundregisterworkswithbaseregister• Isaddress<bound• Yes:addtobase• No:invalidaddress,TRAP

• Achievesprotection

P2

0

N2-1

P2

P1

P3

0

N-1

Base +

<

Bound

y/n?

Whenwouldweneedtoupdatethesebase&boundregisters?

Page 43: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Givenwhatwecurrentlyknowaboutmemory,whatmustwedoduringacontextswitch?

• A.Allocatememorytotheswitchingprocess

• B.Loadthebaseandboundregisters

• C.Convertlogicaltophysicalmemoryaddresses

Page 44: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

MemoryRegistersPartofContext

• OnEveryContextSwitch• Loadbase/boundregistersforselectedprocess• Onlykerneldoesloadingoftheseregisters• Kernelmustbeprotectedfromallprocesses

• Benefit• Allowseachprocesstobeseparatelylocated• Protectseachprocessfromallothers

Page 45: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Addressing

• Compilerhasnoideawhere,inphysicalmemory,theprocess’sdatawillbe.

• CompilergeneratesinstructionstoaccessVAS.

• Generalsolution:OSmusttranslateprocess’sVASaccessestothecorrespondingphysicalmemorylocation.

Page 46: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Addressing• Generalsolution:OSmusttranslateprocess’sVASaccessestothecorrespondingphysicalmemorylocation.

Process1

OS

Process2

Process1

Process3

Process2

PhysicalMemory

OS:Translate

Process3

Process3

Process3Process3

Whentheprocesstriestoaccessavirtualaddress,theOStranslatesittothecorrespondingphysicaladdress.

movl (address0x74),%eax

Page 47: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Addressing• Generalsolution:OSmusttranslateprocess’sVASaccessestothecorrespondingphysicalmemorylocation.

Process1

OS

Process2

Process1

Process2

PhysicalMemory

Process3

Process3

0x42F80

Process3OS:

Translate

Process3

Process3

Whentheprocesstriestoaccessavirtualaddress,theOStranslatesittothecorrespondingphysicaladdress.

movl (address0x74),%eax

Page 48: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Let’scombinetheseideas:

1. Allowprocessmemorytobedividedupintomultiplepieces.

2. KeepstateinOS(+hardware/registers)tomapfromvirtualaddressestophysicaladdresses.

Result:Keepatable tostorethemappingofeachregion.

Page 49: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

ProblemSummary:Addressing• Generalsolution:OSmusttranslateprocess’sVASaccessestothecorrespondingphysicalmemorylocation.

Process1

OS

Process2

Process1

Process2

PhysicalMemory

Process3

Process3

0x42F80

Process3OS:

Translate

Process3

Process3

Whentheprocesstriestoaccessavirtualaddress,theOStranslatesittothecorrespondingphysicaladdress.

movl (address0x74),%eaxOSmustkeepatable,foreachprocess,tomapVAStoPAS.Oneentryperdividedregion.

Page 50: w10a virtual memory - Swarthmore College · 2016-11-12 · Heap Text Data Stack OS Heap Memory Terminology Process 1 Process 3 Process 3 OS Process 2 Process 1 Text Data Stack OS

Two(Real)Approaches• Segmentedaddressspace/memory• Partitionaddressspaceandmemoryintosegments• Segmentsaregenerallydifferentsizes

• Pagedaddressspace/memory• Partitionaddressspaceandmemoryintopages• Allpagesarethesamesize