SlideShare una empresa de Scribd logo
1 de 72
Virtual Memory

   Chapter 8




                 1
Hardware and Control
           Structures
• Memory references are dynamically translated
  into physical addresses at run time
   – A process may be swapped in and out of main
     memory such that it occupies different regions
• A process may be broken up into pieces that
  do not need to located contiguously in main
  memory
• All pieces of a process do not need to be
  loaded in main memory during execution


                                        2
Execution of a Program
• Operating system brings into main
  memory a few pieces of the program
• Resident set - portion of process that is
  in main memory
• An interrupt is generated when an
  address is needed that is not in main
  memory
• Operating system places the process in a
  blocking state

                               3
Execution of a Program
• Piece of process that contains the logical
  address is brought into main memory
  – Operating system issues a disk I/O Read
    request
  – Another process is dispatched to run while
    the disk I/O takes place
  – An interrupt is issued when disk I/O
    complete which causes the operating system
    to place the affected process in the Ready
    state

                                 4
Advantages of
     Breaking up a Process
• More processes may be maintained in
  main memory
  – Only load in some of the pieces of each
    process
  – With so many processes in main memory, it
    is very likely a process will be in the Ready
    state at any particular time
• A process may be larger than all of main
  memory
                                   5
Types of Memory
• Real memory
  – Main memory
• Virtual memory
  – Memory on disk
  – Allows for effective multiprogramming and
    relieves the user of tight constraints of main
    memory



                                    6
Thrashing
• Swapping out a piece of a process just
  before that piece is needed
• The processor spends most of its time
  swapping pieces rather than executing
  user instructions




                               7
Principle of Locality
• Program and data references within a
  process tend to cluster
• Only a few pieces of a process will be
  needed over a short period of time
• Possible to make intelligent guesses
  about which pieces will be needed in the
  future
• This suggests that virtual memory may
  work efficiently

                              8
Support Needed for
       Virtual Memory
• Hardware must support paging and
  segmentation
• Operating system must be able to
  management the movement of pages
  and/or segments between secondary
  memory and main memory




                            9
Paging
• Each process has its own page table
• Each page table entry contains the frame
  number of the corresponding page in
  main memory
• A bit is needed to indicate whether the
  page is in main memory or not



                              10
Paging




         11
Modify Bit in
            Page Table
• Modify bit is needed to indicate if the
  page has been altered since it was last
  loaded into main memory
• If no change has been made, the page
  does not have to be written to the disk
  when it needs to be swapped out




                                12
13
Two-Level Scheme for
   32-bit Address




                14
Page Tables
• The entire page table may take up too
  much main memory
• Page tables are also stored in virtual
  memory
• When a process is running, part of its
  page table is in main memory



                               15
Inverted Page Table
• Used on PowerPC, UltraSPARC, and
  IA-64 architecture
• Page number portion of a virtual address
  is mapped into a hash value
• Hash value points to inverted page table
• Fixed proportion of real memory is
  required for the tables regardless of the
  number of processes

                               16
Inverted Page Table
•   Page number
•   Process identifier
•   Control bits
•   Chain pointer




                         17
18
Translation Lookaside Buffer
• Each virtual memory reference can
  cause two physical memory accesses
  – One to fetch the page table
  – One to fetch the data
• To overcome this problem a high-speed
  cache is set up for page table entries
  – Called a Translation Lookaside Buffer
    (TLB)


                                  19
Translation Lookaside Buffer
• Contains page table entries that have
  been most recently used




                               20
Translation Lookaside Buffer
• Given a virtual address, processor
  examines the TLB
• If page table entry is present (TLB hit),
  the frame number is retrieved and the
  real address is formed
• If page table entry is not found in the
  TLB (TLB miss), the page number is
  used to index the process page table

                                21
Translation Lookaside Buffer
• First checks if page is already in main
  memory
  – If not in main memory a page fault is issued
• The TLB is updated to include the new
  page entry




                                  22
23
24
25
26
Page Size
• Smaller page size, less amount of internal
  fragmentation
• Smaller page size, more pages required per
  process
• More pages per process means larger page
  tables
• Larger page tables means large portion of page
  tables in virtual memory
• Secondary memory is designed to efficiently
  transfer large blocks of data so a large page
  size is better
                                  27
Page Size
• Small page size, large number of pages
  will be found in main memory
• As time goes on during execution, the
  pages in memory will all contain
  portions of the process near recent
  references. Page faults low.
• Increased page size causes pages to
  contain locations further from any recent
  reference. Page faults rise.

                               28
29
Example Page Sizes




               30
Segmentation
• May be unequal, dynamic size
• Simplifies handling of growing data
  structures
• Allows programs to be altered and
  recompiled independently
• Lends itself to sharing data among
  processes
• Lends itself to protection

                              31
Segment Tables
• Corresponding segment in main memory
• Each entry contains the length of the
  segment
• A bit is needed to determine if segment
  is already in main memory
• Another bit is needed to determine if the
  segment has been modified since it was
  loaded in main memory

                               32
Segment Table Entries




                 33
34
Combined Paging and
        Segmentation
• Paging is transparent to the programmer
• Segmentation is visible to the
  programmer
• Each segment is broken into fixed-size
  pages




                              35
Combined Segmentation and
         Paging




                  36
37
38
Fetch Policy
• Fetch Policy
  – Determines when a page should be brought
    into memory
  – Demand paging only brings pages into main
    memory when a reference is made to a
    location on the page
     • Many page faults when process first started
  – Prepaging brings in more pages than needed
     • More efficient to bring in pages that reside
       contiguously on the disk


                                        39
Placement Policy
• Determines where in real memory a
  process piece is to reside
• Important in a segmentation system
• Paging or combined paging with
  segmentation hardware performs address
  translation



                             40
Replacement Policy
• Placement Policy
  – Which page is replaced?
  – Page removed should be the page least
    likely to be referenced in the near future
  – Most policies predict the future behavior on
    the basis of past behavior




                                  41
Replacement Policy
• Frame Locking
  –   If frame is locked, it may not be replaced
  –   Kernel of the operating system
  –   Control structures
  –   I/O buffers
  –   Associate a lock bit with each frame




                                     42
Basic Replacement
           Algorithms
• Optimal policy
  – Selects for replacement that page for which
    the time to the next reference is the longest
  – Impossible to have perfect knowledge of
    future events




                                   43
Basic Replacement
           Algorithms
• Least Recently Used (LRU)
  – Replaces the page that has not been
    referenced for the longest time
  – By the principle of locality, this should be
    the page least likely to be referenced in the
    near future
  – Each page could be tagged with the time of
    last reference. This would require a great
    deal of overhead.

                                   44
Basic Replacement
           Algorithms
• First-in, first-out (FIFO)
  – Treats page frames allocated to a process as
    a circular buffer
  – Pages are removed in round-robin style
  – Simplest replacement policy to implement
  – Page that has been in memory the longest is
    replaced
  – These pages may be needed again very soon


                                  45
Basic Replacement
            Algorithms
• Clock Policy
  – Additional bit called a use bit
  – When a page is first loaded in memory, the use bit
    is set to 1
  – When the page is referenced, the use bit is set to 1
  – When it is time to replace a page, the first frame
    encountered with the use bit set to 0 is replaced.
  – During the search for replacement, each use bit set
    to 1 is changed to 0



                                        46
47
48
49
Comparison of Placement
     Algorithms




                  50
51
Basic Replacement
           Algorithms
• Page Buffering
  – Replaced page is added to one of two lists
     • Free page list if page has not been modified
     • Modified page list




                                       52
Resident Set Size
• Fixed-allocation
  – Gives a process a fixed number of pages
    within which to execute
  – When a page fault occurs, one of the pages
    of that process must be replaced
• Variable-allocation
  – Number of pages allocated to a process
    varies over the lifetime of the process


                                  53
Fixed Allocation, Local Scope
• Decide ahead of time the amount of
  allocation to give a process
• If allocation is too small, there will be a
  high page fault rate
• If allocation is too large there will be too
  few programs in main memory



                                 54
Variable Allocation,
          Global Scope
• Easiest to implement
• Adopted by many operating systems
• Operating system keeps list of free
  frames
• Free frame is added to resident set of
  process when a page fault occurs
• If no free frame, replaces one from
  another process
                                55
Variable Allocation,
          Local Scope
• When new process added, allocate
  number of page frames based on
  application type, program request, or
  other criteria
• When page fault occurs, select page
  from among the resident set of the
  process that suffers the fault
• Reevaluate allocation from time to time

                              56
Cleaning Policy
• Demand cleaning
  – A page is written out only when it has been
    selected for replacement
• Precleaning
  – Pages are written out in batches




                                  57
Cleaning Policy
• Best approach uses page buffering
  – Replaced pages are placed in two lists
     • Modified and unmodified
  – Pages in the modified list are periodically
    written out in batches
  – Pages in the unmodified list are either
    reclaimed if referenced again or lost when
    its frame is assigned to another page


                                   58
Load Control
• Determines the number of processes that
  will be resident in main memory
• Too few processes, many occasions
  when all processes will be blocked and
  much time will be spent in swapping
• Too many processes will lead to
  thrashing


                              59
Multiprogramming




              60
Process Suspension
• Lowest priority process
• Faulting process
  – This process does not have its working set
    in main memory so it will be blocked
    anyway
• Last process activated
  – This process is least likely to have its
    working set resident


                                    61
Process Suspension
• Process with smallest resident set
  – This process requires the least future effort
    to reload
• Largest process
  – Obtains the most free frames
• Process with the largest remaining
  execution window


                                    62
UNIX and Solaris Memory
       Management
• Paging System
  –   Page table
  –   Disk block descriptor
  –   Page frame data table
  –   Swap-use table




                              63
64
65
66
UNIX and Solaris Memory
       Management
• Page Replacement
  – Refinement of the clock policy




                                     67
Kernel Memory Allocator
• Lazy buddy system




                      68
Linux Memory Management
• Page directory
• Page middle directory
• Page table




                          69
70
71
Windows Memory
         Management
• Paging
  – Available
  – Reserved
  – Committed




                   72

Más contenido relacionado

Destacado (20)

Repaso: descripción y nacionalidades
Repaso: descripción y nacionalidadesRepaso: descripción y nacionalidades
Repaso: descripción y nacionalidades
 
Je mentends bien
Je mentends bienJe mentends bien
Je mentends bien
 
Excelsiors review
Excelsiors reviewExcelsiors review
Excelsiors review
 
Production log
Production logProduction log
Production log
 
Xd soga
Xd sogaXd soga
Xd soga
 
State of Financial Affairs
State of Financial Affairs State of Financial Affairs
State of Financial Affairs
 
AIESEC Pop Quiz
AIESEC Pop QuizAIESEC Pop Quiz
AIESEC Pop Quiz
 
Chair pdf
Chair pdfChair pdf
Chair pdf
 
Introducing Milkround site-wide search
Introducing Milkround site-wide searchIntroducing Milkround site-wide search
Introducing Milkround site-wide search
 
Vistaar Updates
Vistaar UpdatesVistaar Updates
Vistaar Updates
 
Sona
SonaSona
Sona
 
O gip agm ppt
O gip agm pptO gip agm ppt
O gip agm ppt
 
The role of open source technology based equipment in developing reliablereli...
The role of open source technology based equipment in developing reliablereli...The role of open source technology based equipment in developing reliablereli...
The role of open source technology based equipment in developing reliablereli...
 
Marketing review
Marketing reviewMarketing review
Marketing review
 
Je m´entends bien
Je m´entends bienJe m´entends bien
Je m´entends bien
 
Xd
XdXd
Xd
 
Faculty review
Faculty reviewFaculty review
Faculty review
 
The renaissance l cong review
The renaissance l cong reviewThe renaissance l cong review
The renaissance l cong review
 
Esprit july updates
Esprit july updatesEsprit july updates
Esprit july updates
 
Updates, CIM
Updates, CIMUpdates, CIM
Updates, CIM
 

Similar a Chapter08

08 virtual memory
08 virtual memory08 virtual memory
08 virtual memoryKamal Singh
 
Virtual Memory Management Part - I.pdf
Virtual Memory Management Part - I.pdfVirtual Memory Management Part - I.pdf
Virtual Memory Management Part - I.pdfHarika Pudugosula
 
08 operating system support
08 operating system support08 operating system support
08 operating system supportdilip kumar
 
08 operating system support
08 operating system support08 operating system support
08 operating system supportBitta_man
 
08 operating system support
08 operating system support08 operating system support
08 operating system supportAnwal Mirza
 
16. PagingImplementIssused.pptx
16. PagingImplementIssused.pptx16. PagingImplementIssused.pptx
16. PagingImplementIssused.pptxMyName1sJeff
 
Operating system 37 demand paging
Operating system 37 demand pagingOperating system 37 demand paging
Operating system 37 demand pagingVaibhav Khanna
 
Lecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxLecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxAmanuelmergia
 
Understanding memory management
Understanding memory managementUnderstanding memory management
Understanding memory managementGokul Vasan
 
Computer architecture virtual memory
Computer architecture virtual memoryComputer architecture virtual memory
Computer architecture virtual memoryMazin Alwaaly
 
chap.4.memory.manag.ppt
chap.4.memory.manag.pptchap.4.memory.manag.ppt
chap.4.memory.manag.pptamadayshwan
 
Memory management in operating system | Paging | Virtual memory
Memory management in operating system | Paging | Virtual memoryMemory management in operating system | Paging | Virtual memory
Memory management in operating system | Paging | Virtual memoryShivam Mitra
 
The life and times
The life and timesThe life and times
The life and timesAbeer Naskar
 
07-MemoryManagement.ppt
07-MemoryManagement.ppt07-MemoryManagement.ppt
07-MemoryManagement.ppthello509579
 

Similar a Chapter08 (20)

08 virtual memory
08 virtual memory08 virtual memory
08 virtual memory
 
Virtual Memory.pdf
Virtual Memory.pdfVirtual Memory.pdf
Virtual Memory.pdf
 
08 operating system support
08 operating system support08 operating system support
08 operating system support
 
Virtual Memory Management Part - I.pdf
Virtual Memory Management Part - I.pdfVirtual Memory Management Part - I.pdf
Virtual Memory Management Part - I.pdf
 
08 operating system support
08 operating system support08 operating system support
08 operating system support
 
08 operating system support
08 operating system support08 operating system support
08 operating system support
 
Demand paging
Demand pagingDemand paging
Demand paging
 
08 operating system support
08 operating system support08 operating system support
08 operating system support
 
virtual_memory (3).pptx
virtual_memory (3).pptxvirtual_memory (3).pptx
virtual_memory (3).pptx
 
16. PagingImplementIssused.pptx
16. PagingImplementIssused.pptx16. PagingImplementIssused.pptx
16. PagingImplementIssused.pptx
 
Operating system 37 demand paging
Operating system 37 demand pagingOperating system 37 demand paging
Operating system 37 demand paging
 
Lecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptxLecture 8- Virtual Memory Final.pptx
Lecture 8- Virtual Memory Final.pptx
 
Understanding memory management
Understanding memory managementUnderstanding memory management
Understanding memory management
 
Computer architecture virtual memory
Computer architecture virtual memoryComputer architecture virtual memory
Computer architecture virtual memory
 
4 (1)
4 (1)4 (1)
4 (1)
 
chap.4.memory.manag.ppt
chap.4.memory.manag.pptchap.4.memory.manag.ppt
chap.4.memory.manag.ppt
 
Memory management in operating system | Paging | Virtual memory
Memory management in operating system | Paging | Virtual memoryMemory management in operating system | Paging | Virtual memory
Memory management in operating system | Paging | Virtual memory
 
Chapter07_ds.ppt
Chapter07_ds.pptChapter07_ds.ppt
Chapter07_ds.ppt
 
The life and times
The life and timesThe life and times
The life and times
 
07-MemoryManagement.ppt
07-MemoryManagement.ppt07-MemoryManagement.ppt
07-MemoryManagement.ppt
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Chapter08

  • 1. Virtual Memory Chapter 8 1
  • 2. Hardware and Control Structures • Memory references are dynamically translated into physical addresses at run time – A process may be swapped in and out of main memory such that it occupies different regions • A process may be broken up into pieces that do not need to located contiguously in main memory • All pieces of a process do not need to be loaded in main memory during execution 2
  • 3. Execution of a Program • Operating system brings into main memory a few pieces of the program • Resident set - portion of process that is in main memory • An interrupt is generated when an address is needed that is not in main memory • Operating system places the process in a blocking state 3
  • 4. Execution of a Program • Piece of process that contains the logical address is brought into main memory – Operating system issues a disk I/O Read request – Another process is dispatched to run while the disk I/O takes place – An interrupt is issued when disk I/O complete which causes the operating system to place the affected process in the Ready state 4
  • 5. Advantages of Breaking up a Process • More processes may be maintained in main memory – Only load in some of the pieces of each process – With so many processes in main memory, it is very likely a process will be in the Ready state at any particular time • A process may be larger than all of main memory 5
  • 6. Types of Memory • Real memory – Main memory • Virtual memory – Memory on disk – Allows for effective multiprogramming and relieves the user of tight constraints of main memory 6
  • 7. Thrashing • Swapping out a piece of a process just before that piece is needed • The processor spends most of its time swapping pieces rather than executing user instructions 7
  • 8. Principle of Locality • Program and data references within a process tend to cluster • Only a few pieces of a process will be needed over a short period of time • Possible to make intelligent guesses about which pieces will be needed in the future • This suggests that virtual memory may work efficiently 8
  • 9. Support Needed for Virtual Memory • Hardware must support paging and segmentation • Operating system must be able to management the movement of pages and/or segments between secondary memory and main memory 9
  • 10. Paging • Each process has its own page table • Each page table entry contains the frame number of the corresponding page in main memory • A bit is needed to indicate whether the page is in main memory or not 10
  • 11. Paging 11
  • 12. Modify Bit in Page Table • Modify bit is needed to indicate if the page has been altered since it was last loaded into main memory • If no change has been made, the page does not have to be written to the disk when it needs to be swapped out 12
  • 13. 13
  • 14. Two-Level Scheme for 32-bit Address 14
  • 15. Page Tables • The entire page table may take up too much main memory • Page tables are also stored in virtual memory • When a process is running, part of its page table is in main memory 15
  • 16. Inverted Page Table • Used on PowerPC, UltraSPARC, and IA-64 architecture • Page number portion of a virtual address is mapped into a hash value • Hash value points to inverted page table • Fixed proportion of real memory is required for the tables regardless of the number of processes 16
  • 17. Inverted Page Table • Page number • Process identifier • Control bits • Chain pointer 17
  • 18. 18
  • 19. Translation Lookaside Buffer • Each virtual memory reference can cause two physical memory accesses – One to fetch the page table – One to fetch the data • To overcome this problem a high-speed cache is set up for page table entries – Called a Translation Lookaside Buffer (TLB) 19
  • 20. Translation Lookaside Buffer • Contains page table entries that have been most recently used 20
  • 21. Translation Lookaside Buffer • Given a virtual address, processor examines the TLB • If page table entry is present (TLB hit), the frame number is retrieved and the real address is formed • If page table entry is not found in the TLB (TLB miss), the page number is used to index the process page table 21
  • 22. Translation Lookaside Buffer • First checks if page is already in main memory – If not in main memory a page fault is issued • The TLB is updated to include the new page entry 22
  • 23. 23
  • 24. 24
  • 25. 25
  • 26. 26
  • 27. Page Size • Smaller page size, less amount of internal fragmentation • Smaller page size, more pages required per process • More pages per process means larger page tables • Larger page tables means large portion of page tables in virtual memory • Secondary memory is designed to efficiently transfer large blocks of data so a large page size is better 27
  • 28. Page Size • Small page size, large number of pages will be found in main memory • As time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low. • Increased page size causes pages to contain locations further from any recent reference. Page faults rise. 28
  • 29. 29
  • 31. Segmentation • May be unequal, dynamic size • Simplifies handling of growing data structures • Allows programs to be altered and recompiled independently • Lends itself to sharing data among processes • Lends itself to protection 31
  • 32. Segment Tables • Corresponding segment in main memory • Each entry contains the length of the segment • A bit is needed to determine if segment is already in main memory • Another bit is needed to determine if the segment has been modified since it was loaded in main memory 32
  • 34. 34
  • 35. Combined Paging and Segmentation • Paging is transparent to the programmer • Segmentation is visible to the programmer • Each segment is broken into fixed-size pages 35
  • 37. 37
  • 38. 38
  • 39. Fetch Policy • Fetch Policy – Determines when a page should be brought into memory – Demand paging only brings pages into main memory when a reference is made to a location on the page • Many page faults when process first started – Prepaging brings in more pages than needed • More efficient to bring in pages that reside contiguously on the disk 39
  • 40. Placement Policy • Determines where in real memory a process piece is to reside • Important in a segmentation system • Paging or combined paging with segmentation hardware performs address translation 40
  • 41. Replacement Policy • Placement Policy – Which page is replaced? – Page removed should be the page least likely to be referenced in the near future – Most policies predict the future behavior on the basis of past behavior 41
  • 42. Replacement Policy • Frame Locking – If frame is locked, it may not be replaced – Kernel of the operating system – Control structures – I/O buffers – Associate a lock bit with each frame 42
  • 43. Basic Replacement Algorithms • Optimal policy – Selects for replacement that page for which the time to the next reference is the longest – Impossible to have perfect knowledge of future events 43
  • 44. Basic Replacement Algorithms • Least Recently Used (LRU) – Replaces the page that has not been referenced for the longest time – By the principle of locality, this should be the page least likely to be referenced in the near future – Each page could be tagged with the time of last reference. This would require a great deal of overhead. 44
  • 45. Basic Replacement Algorithms • First-in, first-out (FIFO) – Treats page frames allocated to a process as a circular buffer – Pages are removed in round-robin style – Simplest replacement policy to implement – Page that has been in memory the longest is replaced – These pages may be needed again very soon 45
  • 46. Basic Replacement Algorithms • Clock Policy – Additional bit called a use bit – When a page is first loaded in memory, the use bit is set to 1 – When the page is referenced, the use bit is set to 1 – When it is time to replace a page, the first frame encountered with the use bit set to 0 is replaced. – During the search for replacement, each use bit set to 1 is changed to 0 46
  • 47. 47
  • 48. 48
  • 49. 49
  • 50. Comparison of Placement Algorithms 50
  • 51. 51
  • 52. Basic Replacement Algorithms • Page Buffering – Replaced page is added to one of two lists • Free page list if page has not been modified • Modified page list 52
  • 53. Resident Set Size • Fixed-allocation – Gives a process a fixed number of pages within which to execute – When a page fault occurs, one of the pages of that process must be replaced • Variable-allocation – Number of pages allocated to a process varies over the lifetime of the process 53
  • 54. Fixed Allocation, Local Scope • Decide ahead of time the amount of allocation to give a process • If allocation is too small, there will be a high page fault rate • If allocation is too large there will be too few programs in main memory 54
  • 55. Variable Allocation, Global Scope • Easiest to implement • Adopted by many operating systems • Operating system keeps list of free frames • Free frame is added to resident set of process when a page fault occurs • If no free frame, replaces one from another process 55
  • 56. Variable Allocation, Local Scope • When new process added, allocate number of page frames based on application type, program request, or other criteria • When page fault occurs, select page from among the resident set of the process that suffers the fault • Reevaluate allocation from time to time 56
  • 57. Cleaning Policy • Demand cleaning – A page is written out only when it has been selected for replacement • Precleaning – Pages are written out in batches 57
  • 58. Cleaning Policy • Best approach uses page buffering – Replaced pages are placed in two lists • Modified and unmodified – Pages in the modified list are periodically written out in batches – Pages in the unmodified list are either reclaimed if referenced again or lost when its frame is assigned to another page 58
  • 59. Load Control • Determines the number of processes that will be resident in main memory • Too few processes, many occasions when all processes will be blocked and much time will be spent in swapping • Too many processes will lead to thrashing 59
  • 61. Process Suspension • Lowest priority process • Faulting process – This process does not have its working set in main memory so it will be blocked anyway • Last process activated – This process is least likely to have its working set resident 61
  • 62. Process Suspension • Process with smallest resident set – This process requires the least future effort to reload • Largest process – Obtains the most free frames • Process with the largest remaining execution window 62
  • 63. UNIX and Solaris Memory Management • Paging System – Page table – Disk block descriptor – Page frame data table – Swap-use table 63
  • 64. 64
  • 65. 65
  • 66. 66
  • 67. UNIX and Solaris Memory Management • Page Replacement – Refinement of the clock policy 67
  • 68. Kernel Memory Allocator • Lazy buddy system 68
  • 69. Linux Memory Management • Page directory • Page middle directory • Page table 69
  • 70. 70
  • 71. 71
  • 72. Windows Memory Management • Paging – Available – Reserved – Committed 72