MODERN OPERATING SYSTEMS
Third Edition
ANDREW S. TANENBAUM
Chapter 3
Memory Management
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-1. Three simple ways of organizing memory with an
operating system and one user process.
No Memory Abstraction
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-2. Illustration of the relocation problem.
Multiple Programs Without Memory
Abstraction
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-3. Base and limit registers can be used to give each
process a separate address space.
Base and Limit Registers
Figure 3-4. Memory allocation changes as processes come into
memory and leave it. The shaded regions are unused memory.
Swapping (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-5. (a) Allocating space for growing data segment. (b)
Allocating space for growing stack, growing data segment.
Swapping (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-6. (a) A part of memory with five processes and three
holes. The tick marks show the memory allocation units. The
shaded regions (0 in the bitmap) are free. (b) The
corresponding bitmap. (c) The same information as a list.
Memory Management with Bitmaps
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-7. Four neighbor combinations
for the terminating process, X.
Memory Management with Linked Lists
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-8. The position and function of the MMU – shown as
being a part of the CPU chip (it commonly is nowadays).
Logically it could be a separate chip, was in years gone by.
Virtual Memory – Paging (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-9. Relation between virtual addresses and
physical memory addresses given by page table.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Paging (2)
Figure 3-10. The internal operation of the MMU with
16 4-KB pages.
Paging (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-11. A typical page table entry.
Structure of Page Table Entry
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Paging implementation issues:
• The mapping from virtual address to physical
address must be fast.
• If the virtual address space is large, the page table
will be large.
Speeding Up Paging
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-12. A TLB to speed up paging.
Translation Lookaside Buffers
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Multilevel Page Tables
Figure 3-13. (a) A 32-bit address with two page table fields.
(b) Two-level page tables.
Figure 3-14. Comparison of a traditional page table
with an inverted page table.
Inverted Page Tables
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• Optimal page replacement algorithm
• Not recently used page replacement
• First-In, First-Out page replacement
• Second chance page replacement
• Clock page replacement
• Least recently used page replacement
• Working set page replacement
• WSClock page replacement
Page Replacement Algorithms
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-15. Operation of second chance.
(a) Pages sorted in FIFO order.
(b) Page list if a page fault occurs at time 20 and A has its R
bit set. The numbers above the pages are their load times.
Second Chance Algorithm
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-16. The clock page replacement algorithm.
The Clock Page Replacement
Algorithm
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-17. LRU using a matrix when pages are referenced in the
order 0, 1, 2, 3, 2, 1, 0, 3, 2, 3.
LRU Page Replacement Algorithm
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-18. The aging algorithm simulates LRU in software.
Shown are six pages for five clock ticks. The five clock ticks
are represented by (a) to (e).
Simulating LRU in Software
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-19. The working set is the set of pages used by the k
most recent memory references. The function w(k, t) is the
size of the working set at time t.
Working Set Page Replacement (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-20. The working set algorithm.
Working Set Page Replacement (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
When the hand comes all the way around to its
starting point there are two cases to consider:
• At least one write has been scheduled.
• No writes have been scheduled.
The WSClock Page Replacement Algorithm (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-21. Operation of the WSClock algorithm. (a) and (b) give
an example of what happens when R = 1.
The WSClock Page Replacement Algorithm (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-21. Operation of the WSClock algorithm.
(c) and (d) give an example of R = 0.
The WSClock Page Replacement Algorithm (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-22. Page replacement algorithms discussed in the text.
Summary of Page Replacement Algorithms
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-23. Local versus global page replacement.
(a) Original configuration. (b) Local page replacement.
(c) Global page replacement.
Local versus Global Allocation Policies (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-24. Page fault rate as a function
of the number of page frames assigned.
Local versus Global Allocation Policies (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-25. (a) One address space.
(b) Separate I and D spaces.
Separate Instruction and Data Spaces
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-26. Two processes sharing the same program
sharing its page table.
Shared Pages
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-27. A shared library being used by two processes.
Shared Libraries
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• The hardware traps to the kernel, saving the
program counter on the stack.
• An assembly code routine is started to save the
general registers and other volatile information.
• The operating system discovers that a page
fault has occurred, and tries to discover which
virtual page is needed.
• Once the virtual address that caused the fault is
known, the system checks to see if this address
is valid and the protection consistent with the
access
Page Fault Handling (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• If the page frame selected is dirty, the page is
scheduled for transfer to the disk, and a context
switch takes place.
• When page frame is clean, operating system
looks up the disk address where the needed
page is, schedules a disk operation to bring it in.
• When disk interrupt indicates page has arrived,
page tables updated to reflect position, frame
marked as being in normal state.
Page Fault Handling (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• Faulting instruction backed up to state it had
when it began and program counter reset to
point to that instruction.
• Faulting process scheduled, operating system
returns to the (assembly language) routine that
called it.
• This routine reloads registers and other state
information and returns to user space to
continue execution, as if no fault had occurred.
Page Fault Handling (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-28. An instruction causing a page fault.
Instruction Backup
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-29. (a) Paging to a static swap area.
Backing Store (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-29. (b) Backing up pages dynamically.
Backing Store (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Memory management system is divided into
three parts:
• A low-level MMU handler.
• A page fault handler that is part of the kernel.
• An external pager running in user space.
Separation of Policy and Mechanism (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-30. Page fault handling with an external pager.
Separation of Policy and Mechanism (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
A compiler has many tables that are built up as
compilation proceeds, possibly including:
• The source text being saved for the printed listing (on
batch systems).
• The symbol table – the names and attributes of variables.
• The table containing integer, floating-point constants
used.
• The parse tree, the syntactic analysis of the program.
• The stack used for procedure calls within the compiler.
Segmentation (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-31. In a one-dimensional address space with growing
tables, one table may bump into another.
Segmentation (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-32. A segmented memory allows each table to grow or
shrink independently of the other tables.
Segmentation (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-33. Comparison of paging and segmentation.
Implementation of Pure Segmentation
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-34. (a)-(d) Development of checkerboarding. (e) Removal
of the checkerboarding by compaction.
Segmentation with Paging: MULTICS (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-35. The MULTICS virtual memory. (a) The
descriptor segment points to the page tables.
Segmentation with Paging: MULTICS (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-35. The MULTICS virtual memory. (b) A segment
descriptor. The numbers are the field lengths.
Segmentation with Paging: MULTICS (5)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
When a memory reference occurs, the following
algorithm is carried out:
• The segment number used to find segment descriptor.
• Check is made to see if the segment’s page table is in
memory.
– If not, segment fault occurs.
– If there is a protection violation, a fault (trap) occurs.
Segmentation with Paging: MULTICS (6)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• Page table entry for the requested virtual page
examined.
– If the page itself is not in memory, a page fault is
triggered.
– If it is in memory, the main memory address of the
start of the page is extracted from the page table entry
• The offset is added to the page origin to give the
main memory address where the word is located.
• The read or store finally takes place.
Segmentation with Paging: MULTICS (7)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-36. A 34-bit MULTICS virtual address.
Segmentation with Paging: MULTICS (8)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-37. Conversion of a two-part MULTICS address into a
main memory address.
Segmentation with Paging: MULTICS (9)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-38. A simplified version of the MULTICS TLB. The
existence of two page sizes makes the actual TLB more
complicated.
Segmentation with Paging: MULTICS (10)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-39. A Pentium selector.
Segmentation with Paging: The Pentium (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-40. Pentium code segment descriptor.
Data segments differ slightly.
Segmentation with Paging: The Pentium (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-41. Conversion of a (selector, offset)
pair to a linear address.
Segmentation with Paging: The Pentium (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-42. Mapping of a linear address onto a physical address.
Segmentation with Paging: The Pentium (4)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 3-43. Protection on the Pentium.
Segmentation with Paging: The Pentium (5)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

More Related Content

PPT
Multiprocessor Systems
PPT
Memory Management
PPT
file systems-CUSAT
PPT
tan2.ppt
PPT
vdocument.in_modern-operating-systems-third-edition-andrew-s-tanenbaum-chapte...
PPT
vdocument.in_modern-operating-systems-third-edition-andrew-s-tanenbaum-chapte...
PPT
Processes and Threads
PPT
Case Study 1: Linux
Multiprocessor Systems
Memory Management
file systems-CUSAT
tan2.ppt
vdocument.in_modern-operating-systems-third-edition-andrew-s-tanenbaum-chapte...
vdocument.in_modern-operating-systems-third-edition-andrew-s-tanenbaum-chapte...
Processes and Threads
Case Study 1: Linux

Similar to chapter3 memory ugcs.pdf (20)

PPTX
Chapter 6 Deadlocks.What Is Deadlock? How To Avoid Deadlock and Other Deadloc...
PPT
Deadlocks in operating system
PPTX
PPT
IO.ppt
PPT
Input / Output
PPT
Operating System
PDF
ece260project.doc
DOCX
Nayer@jjj
PPT
Scheduling
PPT
Memory Management
PDF
PDF
G1034853
PDF
Oblique Memory Array Design
PDF
Lsm trees
PPT
Chapter01 introduction to Operating systems
DOCX
Os revision ques
PPT
Computer modeling-simulation&examples1
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
Chapter 6 Deadlocks.What Is Deadlock? How To Avoid Deadlock and Other Deadloc...
Deadlocks in operating system
IO.ppt
Input / Output
Operating System
ece260project.doc
Nayer@jjj
Scheduling
Memory Management
G1034853
Oblique Memory Array Design
Lsm trees
Chapter01 introduction to Operating systems
Os revision ques
Computer modeling-simulation&examples1
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
Ad

Recently uploaded (20)

PPTX
Principal presentation for NAAC (1).pptx
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PDF
Java Basics-Introduction and program control
PPT
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
PDF
Unit1 - AIML Chapter 1 concept and ethics
PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PDF
Soil Improvement Techniques Note - Rabbi
PPTX
Amdahl’s law is explained in the above power point presentations
PDF
MLpara ingenieira CIVIL, meca Y AMBIENTAL
PPTX
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
PPTX
Measurement Uncertainty and Measurement System analysis
PDF
August 2025 - Top 10 Read Articles in Network Security & Its Applications
PPTX
Information Storage and Retrieval Techniques Unit III
PPTX
CyberSecurity Mobile and Wireless Devices
PDF
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
PPTX
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
PPTX
Management Information system : MIS-e-Business Systems.pptx
PDF
UEFA_Embodied_Carbon_Emissions_Football_Infrastructure.pdf
PPTX
Feature types and data preprocessing steps
PPTX
Petroleum Refining & Petrochemicals.pptx
Principal presentation for NAAC (1).pptx
August -2025_Top10 Read_Articles_ijait.pdf
Java Basics-Introduction and program control
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
Unit1 - AIML Chapter 1 concept and ethics
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
Soil Improvement Techniques Note - Rabbi
Amdahl’s law is explained in the above power point presentations
MLpara ingenieira CIVIL, meca Y AMBIENTAL
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
Measurement Uncertainty and Measurement System analysis
August 2025 - Top 10 Read Articles in Network Security & Its Applications
Information Storage and Retrieval Techniques Unit III
CyberSecurity Mobile and Wireless Devices
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
Management Information system : MIS-e-Business Systems.pptx
UEFA_Embodied_Carbon_Emissions_Football_Infrastructure.pdf
Feature types and data preprocessing steps
Petroleum Refining & Petrochemicals.pptx
Ad

chapter3 memory ugcs.pdf

  • 1. MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 3 Memory Management Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 2. Figure 3-1. Three simple ways of organizing memory with an operating system and one user process. No Memory Abstraction Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 3. Figure 3-2. Illustration of the relocation problem. Multiple Programs Without Memory Abstraction Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 4. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Figure 3-3. Base and limit registers can be used to give each process a separate address space. Base and Limit Registers
  • 5. Figure 3-4. Memory allocation changes as processes come into memory and leave it. The shaded regions are unused memory. Swapping (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 6. Figure 3-5. (a) Allocating space for growing data segment. (b) Allocating space for growing stack, growing data segment. Swapping (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 7. Figure 3-6. (a) A part of memory with five processes and three holes. The tick marks show the memory allocation units. The shaded regions (0 in the bitmap) are free. (b) The corresponding bitmap. (c) The same information as a list. Memory Management with Bitmaps Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 8. Figure 3-7. Four neighbor combinations for the terminating process, X. Memory Management with Linked Lists Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 9. Figure 3-8. The position and function of the MMU – shown as being a part of the CPU chip (it commonly is nowadays). Logically it could be a separate chip, was in years gone by. Virtual Memory – Paging (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 10. Figure 3-9. Relation between virtual addresses and physical memory addresses given by page table. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Paging (2)
  • 11. Figure 3-10. The internal operation of the MMU with 16 4-KB pages. Paging (3) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 12. Figure 3-11. A typical page table entry. Structure of Page Table Entry Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 13. Paging implementation issues: • The mapping from virtual address to physical address must be fast. • If the virtual address space is large, the page table will be large. Speeding Up Paging Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 14. Figure 3-12. A TLB to speed up paging. Translation Lookaside Buffers Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 15. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Multilevel Page Tables Figure 3-13. (a) A 32-bit address with two page table fields. (b) Two-level page tables.
  • 16. Figure 3-14. Comparison of a traditional page table with an inverted page table. Inverted Page Tables Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 17. • Optimal page replacement algorithm • Not recently used page replacement • First-In, First-Out page replacement • Second chance page replacement • Clock page replacement • Least recently used page replacement • Working set page replacement • WSClock page replacement Page Replacement Algorithms Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 18. Figure 3-15. Operation of second chance. (a) Pages sorted in FIFO order. (b) Page list if a page fault occurs at time 20 and A has its R bit set. The numbers above the pages are their load times. Second Chance Algorithm Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 19. Figure 3-16. The clock page replacement algorithm. The Clock Page Replacement Algorithm Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 20. Figure 3-17. LRU using a matrix when pages are referenced in the order 0, 1, 2, 3, 2, 1, 0, 3, 2, 3. LRU Page Replacement Algorithm Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 21. Figure 3-18. The aging algorithm simulates LRU in software. Shown are six pages for five clock ticks. The five clock ticks are represented by (a) to (e). Simulating LRU in Software Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 22. Figure 3-19. The working set is the set of pages used by the k most recent memory references. The function w(k, t) is the size of the working set at time t. Working Set Page Replacement (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 23. Figure 3-20. The working set algorithm. Working Set Page Replacement (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 24. When the hand comes all the way around to its starting point there are two cases to consider: • At least one write has been scheduled. • No writes have been scheduled. The WSClock Page Replacement Algorithm (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 25. Figure 3-21. Operation of the WSClock algorithm. (a) and (b) give an example of what happens when R = 1. The WSClock Page Replacement Algorithm (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 26. Figure 3-21. Operation of the WSClock algorithm. (c) and (d) give an example of R = 0. The WSClock Page Replacement Algorithm (3) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 27. Figure 3-22. Page replacement algorithms discussed in the text. Summary of Page Replacement Algorithms Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 28. Figure 3-23. Local versus global page replacement. (a) Original configuration. (b) Local page replacement. (c) Global page replacement. Local versus Global Allocation Policies (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 29. Figure 3-24. Page fault rate as a function of the number of page frames assigned. Local versus Global Allocation Policies (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 30. Figure 3-25. (a) One address space. (b) Separate I and D spaces. Separate Instruction and Data Spaces Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 31. Figure 3-26. Two processes sharing the same program sharing its page table. Shared Pages Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 32. Figure 3-27. A shared library being used by two processes. Shared Libraries Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 33. • The hardware traps to the kernel, saving the program counter on the stack. • An assembly code routine is started to save the general registers and other volatile information. • The operating system discovers that a page fault has occurred, and tries to discover which virtual page is needed. • Once the virtual address that caused the fault is known, the system checks to see if this address is valid and the protection consistent with the access Page Fault Handling (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 34. • If the page frame selected is dirty, the page is scheduled for transfer to the disk, and a context switch takes place. • When page frame is clean, operating system looks up the disk address where the needed page is, schedules a disk operation to bring it in. • When disk interrupt indicates page has arrived, page tables updated to reflect position, frame marked as being in normal state. Page Fault Handling (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 35. • Faulting instruction backed up to state it had when it began and program counter reset to point to that instruction. • Faulting process scheduled, operating system returns to the (assembly language) routine that called it. • This routine reloads registers and other state information and returns to user space to continue execution, as if no fault had occurred. Page Fault Handling (3) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 36. Figure 3-28. An instruction causing a page fault. Instruction Backup Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 37. Figure 3-29. (a) Paging to a static swap area. Backing Store (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 38. Figure 3-29. (b) Backing up pages dynamically. Backing Store (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 39. Memory management system is divided into three parts: • A low-level MMU handler. • A page fault handler that is part of the kernel. • An external pager running in user space. Separation of Policy and Mechanism (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 40. Figure 3-30. Page fault handling with an external pager. Separation of Policy and Mechanism (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 41. A compiler has many tables that are built up as compilation proceeds, possibly including: • The source text being saved for the printed listing (on batch systems). • The symbol table – the names and attributes of variables. • The table containing integer, floating-point constants used. • The parse tree, the syntactic analysis of the program. • The stack used for procedure calls within the compiler. Segmentation (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 42. Figure 3-31. In a one-dimensional address space with growing tables, one table may bump into another. Segmentation (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 43. Figure 3-32. A segmented memory allows each table to grow or shrink independently of the other tables. Segmentation (3) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 44. Figure 3-33. Comparison of paging and segmentation. Implementation of Pure Segmentation Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 45. Figure 3-34. (a)-(d) Development of checkerboarding. (e) Removal of the checkerboarding by compaction. Segmentation with Paging: MULTICS (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 46. Figure 3-35. The MULTICS virtual memory. (a) The descriptor segment points to the page tables. Segmentation with Paging: MULTICS (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 47. Figure 3-35. The MULTICS virtual memory. (b) A segment descriptor. The numbers are the field lengths. Segmentation with Paging: MULTICS (5) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 48. When a memory reference occurs, the following algorithm is carried out: • The segment number used to find segment descriptor. • Check is made to see if the segment’s page table is in memory. – If not, segment fault occurs. – If there is a protection violation, a fault (trap) occurs. Segmentation with Paging: MULTICS (6) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 49. • Page table entry for the requested virtual page examined. – If the page itself is not in memory, a page fault is triggered. – If it is in memory, the main memory address of the start of the page is extracted from the page table entry • The offset is added to the page origin to give the main memory address where the word is located. • The read or store finally takes place. Segmentation with Paging: MULTICS (7) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 50. Figure 3-36. A 34-bit MULTICS virtual address. Segmentation with Paging: MULTICS (8) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 51. Figure 3-37. Conversion of a two-part MULTICS address into a main memory address. Segmentation with Paging: MULTICS (9) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 52. Figure 3-38. A simplified version of the MULTICS TLB. The existence of two page sizes makes the actual TLB more complicated. Segmentation with Paging: MULTICS (10) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 53. Figure 3-39. A Pentium selector. Segmentation with Paging: The Pentium (1) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 54. Figure 3-40. Pentium code segment descriptor. Data segments differ slightly. Segmentation with Paging: The Pentium (2) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 55. Figure 3-41. Conversion of a (selector, offset) pair to a linear address. Segmentation with Paging: The Pentium (3) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 56. Figure 3-42. Mapping of a linear address onto a physical address. Segmentation with Paging: The Pentium (4) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
  • 57. Figure 3-43. Protection on the Pentium. Segmentation with Paging: The Pentium (5) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639