cs 31 intro to systems virtual memory
play

CS 31: Intro to Systems Virtual Memory Martin Gagne Swarthmore - PowerPoint PPT Presentation

CS 31: Intro to Systems Virtual Memory Martin Gagne Swarthmore College April 6, 2017 Recap We cant load processes into memory on every context switch like we do with CPU state. Finding a place to put processes when we allocate


  1. CS 31: Intro to Systems Virtual Memory Martin Gagne Swarthmore College April 6, 2017

  2. Recap • We can’t load processes into memory on every context switch like we do with CPU state. • Finding a place to put processes when we allocate memory for them is not simple. – Solution: Divide process memory into pieces • The compiler doesn’t know where, in physical memory, the process will reside. – Solution: Make the process think, via a virtual addressing abstraction, that it has a private address space. Translate virtual addresses to physical addresses on access.

  3. Recap These challenges are why we need virtual memory. • We can’t load processes into memory on every context Getting the benefits of solving these problems justifies switch like we do with CPU state. the complexity of virtual memory. • Finding a place to put processes when we allocate memory for them is not simple. – Solution: Divide process memory into pieces • The compiler doesn’t know where, in physical memory, the process will reside. – Solution: Make the process think, via a virtual addressing abstraction, that it has a private address space. Translate virtual addresses to physical addresses on access.

  4. Recall from Tuesday 0 We support virtual addressing by translating addresses at P 2 runtime. Base + It’s hard achieve this using base Bound and bound registers unless each P 1 process’s memory is all in one < block. 0 y/n? P 2 P 3 Having process in one block N 2 -1 leads to fragmentation N -1

  5. Recall from Tuesday Our solution to fragmentation is to split up a process’s address space into smaller chunks. Physical Memory OS Process 1 Process 3 OS: Process 3 Place Process 2 Process 3 Process 1 Process 3 Process 2 Process 3

  6. Paging Vocabulary • For each process, the virtual address space is divided into fixed-size pages. • For the system, the physical memory is divided into fixed-size frames. • The size of a page is equal to that of a frame. – Often 4 KB in practice.

  7. Main Idea • ANY virtual page can be stored in any available frame. – Makes finding an appropriately-sized memory gap very easy – they’re all the same size. • For each process, OS keeps a table mapping each virtual page to physical frame.

  8. Main Idea • ANY virtual page can be stored in any available frame. – Makes finding an appropriately-sized memory gap very easy – they’re all the same size. Virtual Physical Memory Memory (OS Mapping) Implications for fragmentation? External: goes away. No more awkwardly-sized, unusable gaps. Internal: About the same. Process can always request memory and not use it.

  9. Addressing • Like we did with caching, we’re going to chop up memory addresses into partitions. • Virtual addresses: – High-order bits: page # – Low-order bits: offset within the page • Physical addresses: – High-order bits: frame # – Low-order bits: offset within the frame

  10. Example: 32-bit virtual addresses • Suppose we have 8-KB (8192-byte) pages. • We need enough bits to individually address each byte in the page. – How many bits do we need to address 8192 items?

  11. Example: 32-bit virtual addresses • Suppose we have 8-KB (8192-byte) pages. • We need enough bits to individually address each byte in the page. – How many bits do we need to address 8192 items? – 2 13 = 8192, so we need 13 bits. – Lowest 13 bits: offset within page.

  12. Example: 32-bit virtual addresses • Suppose we have 8-KB (8192-byte) pages. • We need enough bits to individually address each byte in the page. – How many bits do we need to address 8192 items? – 2 13 = 8192, so we need 13 bits. – Lowest 13 bits: offset within page. • Remaining 19 bits: page number.

  13. Example: 32-bit virtual addresses We’ll call these bits p . We’ll call these bits i . • Suppose we have 8-KB (8192-byte) pages. • We need enough bits to individually address each byte in the page. – How many bits do we need to address 8192 items? – 2 13 = 8192, so we need 13 bits. – Lowest 13 bits: offset within page. • Remaining 19 bits: page number.

  14. Address Partitioning Virtual address: We’ll call these bits p . We’ll call these bits i . Once we’ve found the frame, which byte(s) do we want to access? Physical address: We’ll (still) call these bits i .

  15. Address Partitioning Virtual address: We’ll call these bits p . We’ll call these bits i . Where is this page in Once we’ve OS Page Table physical memory? found the frame, For Process (In which frame?) which byte(s) do we want to access? Physical address: We’ll call these bits f . We’ll (still) call these bits i .

  16. Address Translation Logical Address Page p Offset i Perm … V R D Frame Page Table Physical Memory

  17. Address Translation Logical Address Page p Offset i Perm … V R D Frame Page Table Physical Memory

  18. Address Translation Logical Address Page p Offset i Perm … V R D Frame Page Table Physical Address Physical Memory

  19. Page Table • One table per process • Table entry elements Perm … PTBR V R D Frame – V: valid bit PTSR – R: referenced bit – D: dirty bit – Frame: location in phy mem – Perm: access permissions • Table parameters in memory – Page table base register – Page table size register

  20. Address Translation Logical Address Page p Offset i • Physical address = frame of p + Perm … V R D Frame offset i • First, do a series of checks Physical Address

  21. Check if Page p is Within Range Logical Address Page p Offset i PTBR PTSR Perm … V R D Frame p < PTSR Physical Address

  22. Check if Page Table Entry p is Valid Logical Address Page p Offset i PTBR PTSR Perm … V R D Frame V == 1 Physical Address

  23. Check if Operation is Permitted Logical Address Page p Offset i PTBR PTSR Perm … V R D Frame Perm (op) Physical Address

  24. Translate Address Logical Address Page p Offset i PTBR PTSR Perm … V R D Frame con cat Physical Address

  25. Physical Address by Concatenation Logical Address Page p Offset i PTBR PTSR Perm … V R D Frame Physical Address Frame f Offset i

  26. Sizing the Page Table Logical Address Page p Offset i Number of bits n Number of bits specifies max size specifies page size Perm … of table, where V R D Frame number of entries = 2 n Number of bits needed to address physical memory in units of frames

  27. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits Perm … V R D Frame … • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

  28. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits Perm … V R D Frame … • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

  29. How many entries (rows) will there be in this page table? A. 2 12 , because that’s how many the offset field can address B. 2 20 , because that’s how many the page field can address C. 2 30 , because that’s how many we need to address 1 GB D. 2 32 , because that’s the size of the entire address space

  30. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits 20 bits to address 2 20 = How big is a 1 M entries frame? Perm … V R D Frame … • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

  31. What will be the frame size, in bytes? A. 2 12 , because that’s how many bytes the offset field can address B. 2 20 , because that’s how many bytes the page field can address C. 2 30 , because that’s how many bytes we need to address 1 GB D. 2 32 , because that’s the size of the entire address space

  32. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits 20 bits to address 2 20 = Page size = 1 M entries frame size = 2 12 = 4096 bytes Perm … V R D Frame How many bits in frame nb? … • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

  33. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits 20 bits to address 2 20 = Page size = 1 M entries frame size = 2 12 = 4096 bytes Perm … V R D Frame 2 30 / 2 12 = 2 18 so 18 bits … Size of an entry? • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

  34. How big is an entry, in bytes? (Round to a power of two bytes.) Page p : 20 bits Offset i : 12 bits 20 bits to address 2 20 = Page size = 1 M entries frame size = 2 12 = 4096 bytes Perm … V R D Frame 2 30 / 2 12 = 2 18 so 18 bits … Size of an entry? • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset • A: 1 B: 2 C: 4 D: 8

  35. Example of Sizing the Page Table Page p : 20 bits Offset i : 12 bits 20 bits to address 2 20 = Page size = 1 M entries frame size = 2 12 = 4096 bytes Perm … V R D Frame 2 30 / 2 12 = 2 18 so 18 bits … 24 (1+1+1+18+3+ … ) bits Total size of so 4 bytes needed page table? • Given: 32 bit virtual addresses, 1 GB physical memory – Address partition: 20 bit page number, 12 bit offset

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend