0% found this document useful (0 votes)
21 views14 pages

381CCS Chapter7

Uploaded by

Maytor Smith
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views14 pages

381CCS Chapter7

Uploaded by

Maytor Smith
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

COURSE NAME : OPERATING SYSTEM

COURSE CODE : 381CCS-3

CHAPTER 7: VIRTUAL MEMORY


SUBJECT TEACHER: DR. NALA ALAHMARI

Topic Text Reference Chapter No. Page No


“Operating System
Concepts”, 10th Edition,
389-399
Virtual Memory Abraham SilberSchatz, Chapter 10
401-412
Peter Baer Galvin,
Greg Gagne, Wiley, 2018
CHAPTER 7 : VIRTUAL MEMORY

 Background 399 (501 to 511)


 Demand Paging 10.2
 Basic Concept
 Free-Frame list
 Performance of Demand paging
 Page Replacement 10.4
 Basic Page Replacement (401 - 412 : 513 to 524)
 FIFO Page Replacement
 Optimal Page Replacement
 LRU Page Replacement
 Counting-Based Page Replacement

2
7.1 BACKGROUND
 Code needs to be in memory to execute, but entire program rarely used
• Error code, unusual routines, large data structures
 Entire program code not needed at same time

 Virtual memory
• It is a scheme that allows a process to execute while it is only partially
in memory,

 Advantages of Virtual memory


• Program no longer constrained by limits of physical memory
• Logical address space will be larger than physical address space Process
size can exceed the physical memory size
• Less I/O needed
• Less memory needed
• Faster response
• More programs running concurrently
• Increased CPU utilization and throughput

 Disadvantages of Virtual memory


• Many page faults when a process is started but should decrease as 3
more pages are brought in
7.1 BACKGROUND(CONT…)
 Virtual address space: logical/virtual) view of how process is stored in memory
 start at address 0, contiguous addresses until end of space
 Physical memory is organized in page frames, assigned to a process may not be
contiguous. Memory Management Unit must map logical to physical
 The heap grow upward used for dynamic memory allocation and the stack grow
downward in memory through successive function calls.
 Virtual address spaces that include holes are known as sparse address spaces..

Figure 7.1 Virtual address space


of a process in memory Figure 7.2 Shared library using virtual memory.
7.2 DEMAND PAGING
 Load pages only as they are needed is known as Demand Paging, commonly
used in virtual memory systems.

7.2.1 BASIC CONCEPT


 With each page table entry a valid–invalid bit is associated
(v  in-memory – memory resident, i  not-in-memory)
 Initially valid–invalid bit is set to i on all entries
 During MMU address translation, if valid–invalid bit in is i  page fault

Figure 7.3 Page table when some pages are not in main memory.
STEPS IN HANDLING A PAGE FAULT
1. If there is a reference to a page, first reference to that page will trap to operating
system Page fault
2. Operating system looks at another table to decide:
Invalid reference  abort, Just not in memory
3. Find free frame
4. Swap page into frame via scheduled disk operation
5. Reset tables to indicate page now in memory, Set validation bit = v
6. Restart the instruction that caused the page fault

Figure 7.3 Page table when some pages are not in main memory.
7.2.2 FREE-FRAME LIST
 When a page fault occurs, the operating system must bring the desired page from
secondary storage into main memory.
 Most operating systems maintain a free-frame list -- a pool of free frames for
satisfying such requests.

 Operating system typically allocate free frames using a technique known as zero-
fill-on-demand -- the content of the frames zeroed-out before being allocated.
 When a system starts up, all available memory is placed on the free-frame list.

7.2.2 PERFORMANCE OF DEMAND PAGING


 Page Fault Rate 0  p  1,if p = 0 no page faults, if p = 1, every reference is a fault
 Effective Access Time (EAT) = (1 − p) × ma + p × page fault time.
 Example: If one access out of 1,000 causes a page fault, Memory access time =
200 nanoseconds, Average page-fault service time = 8 milliseconds Compute EAT
EAT = (1 – p) x 200 + p (8 milliseconds)
= (1 – p) x 200 + p x 8,000,000
= 200 – 200 p + 8,000,000 p =
= 200 + p x 7,999,800
7
= 200 + (1/1000) x 7,999,800 = 8,199.8 nano Seconds
EAT = 8,199.8 /1000 = 8.2 microseconds.
7.3 PAGE REPLACEMENT
 Prevent over-allocation of memory by modifying page-fault service routine to
include page replacement
 Use modify (dirty) bit to reduce overhead of page transfers – only modified
pages are written to disk

7.3.1 BASIC PAGE REPLACEMENT


1. Find the location of the desired page on disk
2. Find a free frame:
- If there is a free frame, use it
- If no free frame, use a page replacement
algorithm to select a victim frame
- Write victim frame to disk if dirty
3. Bring the desired page into the (newly) free
frame; update the page and frame tables
4. Continue the process by restarting the
instruction that caused the trap
8
7.3.2 FIFO PAGE REPLACEMENT ALGORITHM
 When a page must be replaced, the oldest page is chosen.
 Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
 3 frames (3 pages can be in memory at a time per process)

 Page Fault = 15
 Can vary by reference string: consider 1,2,3,4,1,2,5,1,2,3,4,5
• Adding more frames can cause more page faults!
 Belady’s Anomaly
 How to track ages of pages?
• Just use a FIFO queue
9
Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
7.3.3 OPTIMAL PAGE REPLACEMENT ALGORITHM
 Replace page that will not be used for longest period of time
• 9 is optimal for the example
 How do you know this?
• Can’t read the future
 Used for measuring how well your algorithm performs

 Page Fault = 9

1
0
Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
7.3.4 LEAST RECENTLY USED (LRU) ALGORITHM
 Replace page that has not been used in the most amount of time
 Associate time of last use with each page

 Page Fault = 12, Better than FIFO but worse than OPT
 Generally good algorithm and frequently used

7.3.5 COUNTING BASED PAGE REPLACEMENT ALGORITHM


 Lease Frequently Used (LFU) Algorithm:
• Replaces page with smallest count
 Most Frequently Used (MFU) Algorithm:
• Based on the argument that the page with the smallest count was
11
probably just brought in and has yet to be used
Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1

You might also like