CS502 Operating Systems Fall 2006 - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

CS502 Operating Systems Fall 2006

Description:

... of registers and mechanisms to translate virtual addresses to physical addresses ... a virtual address has two parts: virtual page number & offset ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 45
Provided by: hughc7
Category:

less

Transcript and Presenter's Notes

Title: CS502 Operating Systems Fall 2006


1
Paging
  • CS-502 Operating Systems Fall 2006
  • (Slides include materials from Operating System
    Concepts, 7th ed., by Silbershatz, Galvin,
    Gagne and from Modern Operating Systems, 2nd ed.,
    by Tanenbaum)

2
Paging
  • A different approach
  • Addresses all of the issues of previous topic
  • Introduces new issues of its own

3
Memory Management
  • Virtual (or logical) address vs. Physical
    address
  • Memory Management Unit (MMU)
  • Set of registers and mechanisms to translate
    virtual addresses to physical addresses
  • Processes (and CPU) see virtual addresses
  • Virtual address space is same for all processes,
    usually 0 based
  • Virtual spaces are protected from other
    processes
  • MMU and devices see physical addresses

4
Paging
  • Use fixed size units in both physical and virtual
    memory
  • Provide sufficient MMU hardware to allow units to
    be scattered across memory
  • Make it possible to leave infrequently used parts
    of virtual address space out of physical memory
  • Solve internal external fragmentation problems

5
Paging
  • Processes see a contiguous virtual address space
  • Memory Manager divides the virtual address space
    into equal sized pieces called pages
  • Memory Manager divides the physical address space
    into equal sized pieces called frames
  • Frame size usually a power of 2 between 512 and
    8192 bytes
  • Frame table
  • One entry per frame of physical memory
  • State
  • Free
  • Allocated to one or more processes
  • sizeof(page) sizeof(frame)

6
Address Translation for Paging
  • Translating virtual addresses
  • a virtual address has two parts virtual page
    number offset
  • virtual page number (VPN) is index into a page
    table
  • page table entry contains page frame number (PFN)
  • physical address is startof(PFN) offset
  • Page tables
  • Supported by MMU hardware
  • Managed by the Memory Manager
  • Map virtual page numbers to page frame numbers
  • one page table entry (PTE) per page in virtual
    address space
  • i.e., one PTE per VPN

7
Paging Translation
logical address
offset
virtual page
physical memory
page frame 0
page table
page frame 1
physical address
page frame 2
offset
F(PFN)
page frame
page frame 3

page frame Y
8
Page Translation Example
  • Assume a 32-bit address space
  • Assume page size 4KBytes (log2(4096) 12 bits)
  • For a process to address the full logical address
    space
  • Need 220 PTEs VPN is 20 bits
  • Offset is 12 bits
  • Translation of virtual address 0x12345678
  • Offset is 0x678
  • Assume PTE(12345) contains 0x01000
  • Physical address is 0x01000678

9
PTE Structure
  • Valid bit gives state of this PTE
  • says whether or not a virtual address is valid
    in memory and VA range
  • If not set, page might not be in memory or may
    not even exist!
  • Reference bit says whether the page has been
    accessed
  • it is set by hardware when a page has been read
    or written to
  • Modify bit says whether or not the page is dirty
  • it is set by hardware during every write to the
    page
  • Protection bits control which operations are
    allowed
  • read, write, execute, etc.
  • Page frame number (PFN) determines the physical
    page
  • physical page start address
  • Other bits dependent upon machine architecture

10
Paging Advantages
  • Easy to allocate physical memory
  • pick any free frame
  • No external fragmentation
  • All frames are equal
  • Minimal internal fragmentation
  • Bounded by page/frame size
  • Easy to swap out pages (called pageout)
  • Size is usually a multiple of disk blocks
  • PTEs maycontain info that help reduce disk
    traffic
  • Processes can run with not all pages swapped in

11
Definition Page Fault
  • A trap when a process attempts to reference a
    virtual address of a page not in physical memory
  • Valid bit in PTE is set to false
  • If page exists on disk
  • Suspend process
  • If necessary, throw out some other page (update
    its PTE)
  • Swap in desired page, resume execution
  • If page does not exist on disk
  • Return program error
  • or
  • Conjure up a new page and resume execution
  • E.g., for growing the stack!

12
Steps in Handling a Page Fault
13
Requirement for Paging to Work!
  • Machine instructions must be capable of
    restarting
  • If execution was interrupted during a partially
    completed instruction, need to be able to
  • continue or
  • redo without harm
  • This is a property of all modern CPUs
  • but not of some older CPUs!

14
Note
  • Protection bits are important part of paging
  • A process may have valid pages that are
  • not writable
  • execute only
  • etc.
  • E.g., setting PTE protection bits to prohibit
    certain actions is a legitimate way of detecting
    the first action to that page.

15
Questions?
16
Observations
  • Recurring themes in paging
  • Temporal Locality locations referenced recently
    tend to be referenced again soon
  • Spatial Locality locations near recent
    references tend to be referenced soon
  • Definitions
  • Working set The set of pages that a process
    needs to run without frequent page faults
  • Thrashing Excessive page faulting due to
    insufficient frames to support working set

17
Paging Issues
  • 1 Page Tables can consume large amounts of
    space
  • If PTE is 4 bytes, and use 4KB pages, and have 32
    bit VA space -gt 4MB for each processs page table
  • What happens for 64-bit logical address spaces?
  • 2 Performance Impact
  • Converting virtual to physical address requires
    multiple operations to access memory
  • Read Page Table Entry from memory!
  • Get page frame number
  • Construct physical address
  • Assorted protection and valid checks
  • Without fast hardware support, requires multiple
    memory accesses and a lot of work per logical
    address

18
Issue 1 Page Table Size
  • Process Virtual Address spaces
  • Not usually full dont need every PTE
  • Processes do exhibit locality only need a
    subset of the PTEs
  • Two-level page tables
  • I.e., Virtual Addresses have 3 parts
  • Master page number points to secondary page
    table
  • Secondary page number points to PTE containing
    page frame
  • Offset
  • Physical Address offset startof (PFN)

19
Two-level page tables
virtual address
secondary page
master page
offset
physical memory
page frame 0
master page table
physical address
page frame 1
offset
page frame
secondary page table
secondary page table addr
page frame 2
page frame 3
page frame number

page frame Y
20
Two-level page tables
12 bits
8 bits
12 bits
virtual address
secondary page
master page
offset
physical memory
page frame 0
master page table
physical address
page frame 1
offset
page frame
secondary page table
secondary page table addr
page frame 2
page frame 3
page frame number

page frame Y
21
Note
  • Note Master page number can function as Segment
    number
  • previous topic
  • n-level page tables are possible, but rare in
    32-bit systems

22
Multilevel Page Tables
  • Sparse Virtual Address space very few secondary
    PTs ever needed
  • Process Locality only a few secondary PTs
    needed at one time
  • Can page out secondary PTs that are not needed
    now
  • Dont page Master Page Table
  • Save physical memory
  • However
  • Performance is worse
  • Now have 3 memory access per virtual memory
    reference or instruction fetch
  • How do we get back to about 1 memory access per
    VA reference?
  • Problem 2 of Paging Issues slide

23
Multilevel Page Tables
  • Sparse Virtual Address space very few secondary
    PTs ever needed
  • Process Locality only a few secondary PTs
    needed at one time
  • Can page out secondary PTs that are not needed
    now
  • Dont page Master Page Table
  • Save physical memory
  • However
  • Performance is worse
  • Now have 3 memory accesses per virtual memory
    reference or instruction fetch
  • How do we get back to about 1 memory access per
    VA reference?
  • Problem 2 of Paging Issues slide

24
Paging Issues
  • Minor issue internal fragmentation
  • Memory allocation in units of pages (also file
    allocation!)
  • 1 Page Tables can consume large amounts of
    space
  • If PTE is 4 bytes, and use 4KB pages, and have 32
    bit VA space -gt 4MB for each processs page table
  • What happens for 64-bit logical address spaces?
  • 2 Performance Impact
  • Converting virtual to physical address requires
    multiple operations to access memory
  • Read Page Table Entry from memory!
  • Get page frame number
  • Construct physical address
  • Assorted protection and valid checks
  • Without fast hardware, requires multiple memory
    accesses and a lot of work per logical address

25
Associative Memory(aka Dynamic Address
Translation DAT)
  • Do fast hardware search of all entries in
    parallel for VPN
  • If present, use page frame number (PFN) directly
  • If not,
  • Look up in page table (multiple accesses)
  • Load VPN and PFN into Associative Memory
    (throwing out another entry as needed)

26
Translation Lookaside Buffer (TLB)
  • Associative memory implementation in hardware
  • Translates VPN to PTE (containing PFN)
  • Done in single machine cycle
  • TLB is hardware assist
  • Fully associative all entries searched in
    parallel with VPN as index
  • Returns page frame number (PFN)
  • MMU use PFN and offset to get Physical Address
  • Locality makes TLBs work
  • Usually have 81024 TLB entries
  • Sufficient to deliver 99 hit rate (in most
    cases)
  • Works well with multi-level page tables

27
MMU with TLB
28
Typical Machine Architecture
CPU
MMU and TLBlive here
Bridge
Graphics
29
TLB-related Policies
  • OS must ensure that TLB and page tables are
    consistent
  • When OS changes bits (e.g. protection) in PTE, it
    must invalidate TLB copy
  • If dirty bit is set in TLB, write it back to page
    table entry
  • TLB replacement policies
  • Random
  • Least Recently Used (LRU) with hardware help
  • What happens on context switch?
  • Each process has own page tables (multi-level)
  • Must invalidate all TLB entries
  • Then TLB fills as new process executes
  • Expensive context switches just got more
    expensive!
  • Note benefit of Threads sharing same address space

30
Alternative Page Table format Hashed
  • Common in address spaces gt 32 bits.
  • The virtual page number is hashed into a page
    table. This page table contains a chain of VPNs
    hashing to the same value.
  • Virtual page numbers are compared in this chain
    searching for a match. If a match is found, the
    corresponding physical frame is extracted
  • Still uses TLB for execution

31
Hashed Page Tables
32
Alternative Page Table format Inverted
  • One entry for each real page of memory.
  • Entry consists of virtual address of page stored
    at that real memory location, with information
    about the process that owns that page.
  • Decreases memory needed to store each page table,
    but increases time needed to search the table
    when a page reference occurs.
  • Use hash table to limit the search to one or a
    few page-table entries.
  • Still uses TLB to speed up execution

33
Inverted Page Table Architecture
34
Paging Some Tricks
  • Shared Memory
  • Part of virtual memory of two or more processes
    map to same frames
  • Finer grained sharing than segments
  • Data sharing with Read/Write
  • Shared libraries with eXecute
  • Each process has own PTEs different privileges

35
Shared Pages (illustration)
36
Paging trick Copy-on-write (COW)
  • During fork()
  • Dont copy individual pages of virtual memory
  • Just copy page tables all pages start out shared
  • Set all PTEs to read-only in both processes
  • When either process hits a write-protection fault
    on a valid page
  • Make a copy of that page for that process, set
    write protect bit in PTE to allow writing
  • Resume faulting process
  • Saves a lot of unnecessary copying
  • Especially if child process will delete and
    reload all of virtual memory with call to exec()

37
Paging More Tricks
  • Memory-mapped files
  • Instead of standard system calls (read(),
    write(), etc.) map file starting at virtual
    address X
  • I.e., use the file for swap space for that part
    of VM
  • Access to X n refers to file at offset n
  • All mapped file PTEs marked at start as invalid
  • OS reads from file on first access
  • OS writes to file when page is dirty and page is
    evicted
  • Observation
  • A great idea when used correctly
  • No substitute for structured input output of
    applications

38
Paging Summary
  • Partition virtual memory into equal size units
    called pages
  • Any page can fit into any frame in physical
    memory
  • No relocation in virtual memory needed by loader
  • Only active pages in physical memory at any time
  • Supports very large virtual memories and
    segmentation
  • Hardware assistance is essential
  • An dual instance of the fundamental principle of
    caching

39
Related topic Caching
40
Definition Cache
  • A small subset of active items held in fast
    storage while most of the items are in much
    larger, slower storage
  • Virtual Memory
  • Very large, mostly stored on (slow) disk
  • Small working set in (fast) RAM during execution
  • Page tables
  • Very large, mostly stored in (slow) RAM
  • Small working set stored in (fast) TLB registers

41
Caching is Ubiquitous in Computing
  • Transaction processing
  • Keep records of todays departures in RAM while
    records of future flights are on disk
  • Program execution
  • Keep the bytes near the current program counter
    in on-chip memory while rest of program is in RAM
  • File management
  • Keep disk maps of open files in RAM while
    retaining maps of all files on disk

42
Caching issues
  • When to put something in the cache
  • What to throw out to create cache space for new
    items
  • How to keep cached item and stored item in sync
    after one or the other is updated
  • How to keep multiple caches in sync across
    processors or machines
  • Size of cache needed to be effective
  • Size of cache items for efficiency

43
Homework Assignment
  • Read (for next week)
  • Silbershatz, Chapter 8 and 9.1 9.3
  • Programming Project 2 (two weeks)

44
Break
  • Next Topic
Write a Comment
User Comments (0)
About PowerShow.com