31
1 Virtual Memory: Concepts Andrew Case Slides adapted from Jinyang Li, Randy Bryant and Dave O’Hallaron

Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

1

Virtual  Memory:  Concepts    Andrew  Case  

Slides  adapted  from  Jinyang  Li,  Randy  Bryant  and  Dave  O’Hallaron  

Page 2: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

2

Physical  Addressing  

¢  Used  by  microcontrollers  like  those  in  Arduino,  cars  etc.  ¢  Simple  but  fragile  to  program  for:  

§  Buffer  overrun  in  buflab  corrupts  Firefox  memory!  

0:  1:  

M-­‐1:  

Main  memory  

CPU  

2:  3:  4:  5:  6:  7:  

Physical  address  (PA)  

Data  word  

8:   ...  

4

Page 3: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

3

All problems in CS can be solved by another

level of indirection  

Butler  Lampson,  co-­‐inventor  of  PC  

Page 4: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

4

A  System  Using  Virtual  Addressing  

¢  Used  in  all  modern  servers,  desktops,  and  laptops  

0:  1:  

M-­‐1:  

Main  memory  

MMU  

2:  3:  4:  5:  6:  7:  

Physical  address  (PA)  

Data  word  

8:   ...  

CPU  

Virtual  address  (VA)  

CPU  Chip  

4 4100

(Memory  Management  Unit)  

Page 5: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

5

Why  Virtual  Memory  (VM)?  ¢  Simplified  memory  management  

§  Each  process  gets  the  same  uniform  linear  address  space  

¢  Process  IsolaUon  §  Different  processes  have  different  virtual  address  spaces  

§  One  process  can’t  interfere  with  another’s  memory    

¢  Uses  main  memory  efficiently  §  Use  DRAM  as  a  cache  for  the  parts  of  a  virtual  address  space  

 

Page 6: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

6

Today      ¢  Address  spaces  ¢  VM  as  a  tool  for  

§  Caching  §  memory  management  §  protecKon  

¢  Address  translaUon  

Page 7: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

7

VM  as  a  Tool  for  Caching  ¢  Virtual  memory  is  an  array  of  N  conUguous  bytes  stored  

on  disk.    ¢  The  contents  of  the  array  on  disk  are  cached  in  physical  

memory  (DRAM  cache)  §  These  cache  blocks  are  called  pages  (size  is  P  =  2p  bytes)  

PP  2m-­‐p-­‐1  

Physical  memory  

Empty  

Empty  

Uncached  

VP  0  VP  1  

VP  2n-­‐p-­‐1  

Virtual  memory  

Unallocated  Cached  Uncached  Unallocated  Cached  Uncached  

PP  0  PP  1  

Empty  Cached  

0  

N-­‐1  M-­‐1  

0  

Virtual  pages  (VPs)    stored  on  disk  

Physical  pages  (PPs)    cached  in  DRAM  

Page 8: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

8

DRAM  Cache  OrganizaUon  ¢  DRAM  cache  organizaUon  driven  by  the  enormous  miss  penalty  

§  DRAM  is  about  10x  slower  than  slowest  SRAM  §  Disk  is  about  10,000x  slower  than  DRAM  

 ¢  Consequences  

§  Large  page  (block)  size:  typically  4-­‐8  KB,  someKmes  4  MB  §  Fully  associaKve    

§  Any  VP  can  be  placed  in  any  PP  §  Requires  a  “large”  mapping  funcKon  –  different  from  CPU  caches  

§  Highly  sophisKcated,  expensive  replacement  algorithms  §  Too  complicated  and  open-­‐ended  to  be  implemented  in  hardware  

§  Write-­‐back  rather  than  write-­‐through  

Page 9: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

9

Page  Table  ¢  A  page  table  is  an  array  of  page  table  entries  (PTEs)  that  

maps  virtual  pages  to  physical  pages.    §  Per-­‐process  kernel  data  structure  in  DRAM  

null  

null  

Memory  resident  page  table  (DRAM)  

Physical  memory  (DRAM)  

VP  7  VP  4  

Virtual  memory  (disk)  

Valid  0  1  

0  1  0  

1  0  

1  

Physical  page  number  or    disk  address  

PTE  0  

PTE  7  

PP  0  VP  2  VP  1  

PP  3  

VP  1  

VP  2  

VP  4  

VP  6  

VP  7  

VP  3  

Page 10: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

10

Page  Hit  ¢  Page  hit:  VM  data  accessed  is  found  in  physical  memory  

null  

null  

Memory  resident  page  table  (DRAM)  

Physical  memory  (DRAM)  

VP  7  VP  4  

Virtual  memory  (disk)  

Valid  0  1  

0  1  0  

1  0  

1  

Physical  page  number  or    disk  address  

PTE  0  

PTE  7  

PP  0  VP  2  VP  1  

PP  3  

VP  1  

VP  2  

VP  4  

VP  6  

VP  7  

VP  3  

Virtual  address  

Page 11: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

11

Page  Fault  ¢  Page  fault:  VM  data  accessed  is  not  found  in  physical  memory  

null  

null  

Memory  resident  page  table  (DRAM)  

Physical  memory  (DRAM)  

VP  7  VP  4  

Virtual  memory  (disk)  

Valid  0  1  

0  1  0  

1  0  

1  

Physical  page  number  or    disk  address  

PTE  0  

PTE  7  

PP  0  VP  2  VP  1  

PP  3  

VP  1  

VP  2  

VP  4  

VP  6  

VP  7  

VP  3  

Virtual  address  

Page 12: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

12

Handling  Page  Fault  ¢  Page  fault  handler  selects  a  vicKm  to  be  evicted  

null  

null  

Memory  resident  page  table  (DRAM)  

Physical  memory  (DRAM)  

VP  7  VP  4  

Virtual  memory  (disk)  

Valid  0  1  

0  1  0  

1  0  

1  

Physical  page  number  or    disk  address  

PTE  0  

PTE  7  

PP  0  VP  2  VP  1  

PP  3  

VP  1  

VP  2  

VP  4  

VP  6  

VP  7  

VP  3  

Virtual  address  

Page 13: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

13

Handling  Page  Fault  ¢  Page  fault  handler  selects  a  vicKm  to  be  evicted  ¢  Offending  instrucKon  is  restarted:  page  hit!  

null  

null  

Memory  resident  page  table  (DRAM)  

Physical  memory  (DRAM)  

VP  7  VP  3  

Virtual  memory  (disk)  

Valid  0  1  

1  0  0  

1  0  

1  

Physical  page  number  or    disk  address  

PTE  0  

PTE  7  

PP  0  VP  2  VP  1  

PP  3  

VP  1  

VP  2  

VP  4  

VP  6  

VP  7  

VP  3  

Virtual  address  

Page 14: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

14

Locality  to  the  Rescue  Again!  ¢  Virtual  memory  works  because  of  locality    ¢  At  any  point  in  Ume,  programs  tend  to  access  a  set  of  acUve  

virtual  pages  called  the  working  set  §  Programs  with  be_er  temporal  locality  will  have  smaller  working  sets  

¢  If  (working  set  size  <  main  memory  size)    §  Good  performance  for  one  process  aaer  compulsory  misses  

¢  If  (  SUM(working  set  sizes)  >  main  memory  size  )    §  Thrashing:  Performance  meltdown  where  pages  are  swapped  (copied)  

in  and  out  conKnuously  

Page 15: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

15

Memory  Management  ¢  Each  process  has  its  own  virtual  address  (VA)  space  

§  It  can  view  memory  as  a  simple  linear  array  §  One  process  cannot  change  another  processes  memory  

 

VA  space  for  Process  1  

Physical  Address    Space  (DRAM)  

0  

N-­‐1  

(read-­‐only  library  code)  

VA  space  for  Process  2  

VP  1  VP  2  ...  

0  

N-­‐1  

VP  1  VP  2  ...  

PP  2  

PP  6  

PP  8  

...  

0  

M-­‐1  

Address    translaHon

Page 16: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

16

Memory  Management  ¢  Sharing  among  processes  

§  Map  different  virtual  pages  to  the  same  physical  page  

 

VA  space  for  Process  1  

Physical  Address    Space  (DRAM)  

0  

N-­‐1  

(read-­‐only  library  code)  

VA  space  for  Process  2  

VP  1  VP  2  ...  

0  

N-­‐1  

VP  1  VP  2  ...  

PP  2  

PP  6  

PP  8  

...  

0  

M-­‐1  

Address    translaHon

Page 17: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

17

Simplifying  Linking  and  Loading  

¢  Linking    §  Each  program  has  similar  virtual  address  space  

§  Code,  stack,  and  shared  libraries  always  start  at  the  same  address    

¢  Loading    §  execve() causes  kernel  to  allocate  virtual  pages  

§  Kernel  copies  .text and  .data secKons,  page  by  page,  from  disk  to  memory  

Kernel  virtual  memory  

Memory-­‐mapped  region  for  shared  libraries  

Run-­‐Ume  heap  (created  by  malloc)  

User  stack  (created  at  runUme)  

Unused  0  

%esp    (stack    pointer)  

Memory  invisible  to  user  code  0xc0000000

0x08048000

0x40000000

Read/write  segment  (.data,  .bss)  

Read-­‐only  segment  (.init,  .text,  .rodata)  

Loaded    from    the    executable    file  

Page 18: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

18

Memory  ProtecUon  ¢  Extend  PTEs  with  permission  bits  ¢  Page  fault  handler  checks  these  before  remapping  

§  If  violated,  send  process  SIGSEGV  (segmentaKon  fault)  

Process  i:   Address  READ   WRITE  PP  6  Yes   No  PP  4  Yes   Yes  PP  2  Yes  

VP  0:  VP  1:  VP  2:  

•  •  •

Process  j:  

Yes  

SUPER  No  No  Yes  

Address  READ   WRITE  PP  9  Yes   No  PP  6  Yes   Yes  PP  11  Yes   Yes  

SUPER  No  Yes  No  

VP  0:  VP  1:  VP  2:  

Physical    Address  Space  

PP  2  

PP  4  

PP  6  

PP  8  PP  9  

PP  11  

Page 19: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

19

Today      ¢  Address  spaces  ¢  VM  as  a  tool  for    

§  caching  §  memory  management  §  memory  protecKon  

¢  Address  translaUon  

Page 20: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

20

Address  translaUon  ¢  Direct  1  to  1  mapping  from  Virtual  Address  to  Physical  Addresses  

VA=0x08   PA=0x98  VA  

…  

0x08  

..  

..  

..  

PA  

..  

0x98  

..  

..  

invalid  

Page 21: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

21

Summary  of  Address  TranslaUon  Symbols  ¢  Basic  Parameters  

§  N  =  2n  :  Number  of  addresses  in  virtual  address  space  §  M  =  2m  :  Number  of  addresses  in  physical  address  space  §  P  =  2p    :  Page  size  (bytes)  

¢  Components  of  the  virtual  address  (VA)  §  PDBR:  Page  directory  base  registers      §  TLB:  TranslaKon  lookaside  buffer  §  TLBI:  TLB  index  §  TLBT:  TLB  tag  §  VPO:  Virtual  page  offset    §  VPN:  Virtual  page  number    

¢  Components  of  the  physical  address  (PA)  §  PPO:  Physical  page  offset  (same  as  VPO)  §  PPN:  Physical  page  number  §  CO:  Byte  offset  within  cache  line  §  CI:  Cache  index  §  CT:  Cache  tag  

Page 22: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

22

Address  TranslaUon  with  a  Page  Table  

Virtual  page  number  (VPN)   Virtual  page  offset  (VPO)  

Physical  page  number  (PPN)   Physical  page  offset  (PPO)  

Virtual  address  

Physical  address  

Valid   Physical  page  number  (PPN)  Page  table    base  register  

Page  table    

Page  table  address    for  process  

0  p-­‐1  p  n-­‐1  

0  p-­‐1  p  m-­‐1  

How  kernel  tells  hardware  where  to  find  the  page  table.  

PTE  (page  table  entry)  

Page 23: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

23

Simple  Memory  System  Example  ¢  Addressing  

§  14-­‐bit  virtual  addresses  §  12-­‐bit  physical  address  §  Page  size  =  64  bytes  

11   10   9   8   7   6   5   4   3   2   1   0  

PPO  PPN  Physical  Page  Number   Physical  Page  Offset  

13   12   11   10   9   8   7   6   5   4   3   2   1   0  

VPO  VPN  

Virtual  Page  Number   Virtual  Page  Offset  

Page 24: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

24

Memory  System  Page  Table  Example  

1  0D  0F  1  11  0E  1  2D  0D  0  –  0C  0  –  0B  1  09  0A  1  17  09  1  13  08  

Valid  PPN  VPN  

0  –  07  0  –  06  1  16  05  0  –  04  1  02  03  1  33  02  0  –  01  1  28  00  

Valid  PPN  VPN  

Page 25: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

25

Address  TranslaUon  Example  Virtual  Address:  0x0354

       

13   12   11   10   9   8   7   6   5   4   3   2   1   0  

0  0  1  0  1  0  1  0  1  1  0  0  0  0  

What’s  the  corresponding  PPN?  Physical  address?

       

1  0D  0F  1  11  0E  1  2D  0D  0  –  0C  0  –  0B  1  09  0A  1  17  09  1  13  08  

Valid  PPN  VPN  

0  –  07  0  –  06  1  16  05  0  –  04  1  02  03  1  33  02  0  –  01  1  28  00  

Valid  PPN  VPN  

0   3   5   4  

VPN   VPO  

Page 26: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

26

Address  TranslaUon:  Page  Hit  

1)  Processor  sends  virtual  address  to  MMU    

2-­‐3)  MMU  fetches  PTE  from  page  table  in  memory  

4)  MMU  sends  physical  address  to  cache/memory  

5)  Cache/memory  sends  data  word  to  processor  

MMU   Cache/  Memory  PA  

Data  

CPU  VA  

CPU  Chip   PTE  Address  

PTE  1  

2  

3  

4  

5  

Page 27: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

27

Speeding  up  translaUon  with  a  TranslaUon  Lookaside  Buffer  (TLB)  

MMU   Cache/  Memory  

PA  

Data  

CPU  VA  

CPU  Chip  

PTE  

1  

2  

4  

5  

A  TLB  hit  eliminates  a  memory  access  

TLB  

VPN   3  

Cache  a  small  number  of  page  table  entries  

Page 28: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

28

TLB  Miss  

MMU   Cache/  Memory  PA  

Data  

CPU  VA  

CPU  Chip  

PTE  

1  

2  

5  

6  

TLB  

VPN  

4  

PTE  Address  3  

A  TLB  miss  incurs  an  addiUonal  memory  access  (the  PTE)  Fortunately,  TLB  misses  are  rare.  Why?  

Page 29: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

29

MulU-­‐Level  Page  Tables  

¢  Suppose:  §  4KB  (212)  page  size,  48-­‐bit  address  space,  8-­‐byte  (23)  PTE      

¢  Problem:  §  Would  need  a  512  GB  page  table!  

§  248-­‐12    *  23  =  239  bytes  =  512GB    

¢  SoluUon:  §  Example:  2-­‐level  page  table  

§  Level  1  table:  each  PTE  points  to  a  page  table  §  Level  2  table:  each  PTE  points  to  a  page  

Level  1  Table  

...  

Level  2  Tables  

...  

Page 30: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

30

A  Two-­‐Level  Page  Table  Hierarchy  Level  1  

page  table  

...  

Level  2  page  tables  

VP  0  

...  

VP  1023  

VP  1024  

...  

VP  2047  

Gap  

0  

PTE  0  

...  

PTE  1023  

PTE  0  

...  

PTE  1023  

1023  null  PTEs  

PTE  1023   1023    unallocated  

pages  VP  9215  

Virtual  memory  

(1K  -­‐  9)  null  PTEs    

PTE  0  

PTE  1  

PTE  2  (null)  

PTE  3  (null)  

PTE  4  (null)  

PTE  5  (null)  

PTE  6  (null)  

PTE  7  (null)  

PTE  8  

2K  allocated  VM  pages  for  code  and  data  

6K  unallocated  VM  pages  

1023  unallocated    pages  

1  allocated  VM  page  for  the  stack  

32  bit  addresses,  4KB  pages,  4-­‐byte  PTEs  

Page 31: Virtual(Memory:(Concepts( - NYU Computer Scienceacase/fa14/CS201/notes/14-vm-concepts.pdf · Simplifies’memory’managementand’programming’ Simplifies’protecKon’by’providing’aconvenient

31

Summary  

¢  Programmer’s  view  of  virtual  memory  §  Each  process  has  its  own  private  linear  address  space  §  Cannot  be  corrupted  by  other  processes  

¢  System  view  of  virtual  memory  §  Uses  memory  efficiently  by  caching  virtual  memory  pages  

§  Efficient  only  because  of  locality  §  Simplifies  memory  management  and  programming  §  Simplifies  protecKon  by  providing  a  convenient  interposiKoning  point  

to  check  permissions