SlideShare a Scribd company logo
Chapter 10: Virtual Memory 
 Background 
 Demand Paging 
 Process Creation 
 Page Replacement 
 Allocation of Frames 
 Thrashing 
 Operating System Examples 
Silberschatz, Galvin 10.1 and Gagne Ó2002 Operating System
Background 
 Virtual memory – separation of user logical memory 
from physical memory. 
 Only part of the program needs to be in memory for 
execution. 
 Logical address space can therefore be much larger than 
physical address space. 
 Allows address spaces to be shared by several processes. 
 Allows for more efficient process creation. 
 Virtual memory can be implemented via: 
 Demand paging 
 Demand segmentation 
Silberschatz, Galvin 10.2 and Gagne Ó2002 Operating System
Virtual Memory That is Larger Than Physical 
Memory 
Silberschatz, Galvin 10.3 and Gagne Ó2002 Operating System
Demand Paging 
 Bring a page into memory only when it is needed. 
 Less I/O needed 
 Less memory needed 
 Faster response 
 More users 
 Page is needed Þ reference to it 
 invalid reference Þ abort 
 not-in-memory Þ bring to memory 
Silberschatz, Galvin 10.4 and Gagne Ó2002 Operating System
Transfer of a Paged Memory to Contiguous Disk 
Space 
Silberschatz, Galvin 10.5 and Gagne Ó2002 Operating System
Valid-Invalid Bit 
 With each page table entry a valid–invalid bit is 
associated 
(1 Þ in-memory, 0 Þ not-in-memory) 
 Initially valid–invalid but is set to 0 on all entries. 
 Example of a page table snapshot. 
Frame # valid-invalid bit 
1 
1 
1 
1 
0 
0 
0 
 
page table 
 During address translation, if valid–invalid bit in page 
table entry is 0 Þ page fault. 
Silberschatz, Galvin 10.6 and Gagne Ó2002 Operating System
Page Table When Some Pages Are Not in Main 
Memory 
Silberschatz, Galvin 10.7 and Gagne Ó2002 Operating System
Page Fault 
 If there is ever a reference to a page, first reference will 
trap to 
OS Þ page fault 
 OS looks at another table to decide: 
 Invalid reference Þ abort. 
 Just not in memory. 
 Get empty frame. 
 Swap page into frame. 
 Reset tables, validation bit = 1. 
 Restart instruction: Least Recently Used 
 block move 
 auto increment/decrement location 
Silberschatz, Galvin 10.8 and Gagne Ó2002 Operating System
Steps in Handling a Page Fault 
Silberschatz, Galvin 10.9 and Gagne Ó2002 Operating System
What happens if there is no free frame? 
 Page replacement – find some page in memory, but not 
really in use, swap it out. 
 algorithm 
 performance – want an algorithm which will result in 
minimum number of page faults. 
 Same page may be brought into memory several times. 
Silberschatz, Galvin 10.10 and Gagne Ó2002 Operating System
Performance of Demand Paging 
 Page Fault Rate 0 £ p £ 1.0 
 if p = 0 no page faults 
 if p = 1, every reference is a fault 
 Effective Access Time (EAT) 
EAT = (1 – p) x memory access 
+ p (page fault overhead 
+ [swap page out ] 
+ swap page in 
+ restart overhead) 
Silberschatz, Galvin 10.11 and Gagne Ó2002 Operating System
Demand Paging Example 
 Memory access time = 1 microsecond 
 50% of the time the page that is being replaced has been 
modified and therefore needs to be swapped out. 
 Swap Page Time = 10 msec = 10,000 msec 
EAT = (1 – p) x 1 + p (15000) 
1 + 15000P (in msec) 
Silberschatz, Galvin 10.12 and Gagne Ó2002 Operating System
Process Creation 
 Virtual memory allows other benefits during process 
creation: 
- Copy-on-Write 
- Memory-Mapped Files 
Silberschatz, Galvin 10.13 and Gagne Ó2002 Operating System
Copy-on-Write 
 Copy-on-Write (COW) allows both parent and child 
processes to initially share the same pages in memory. 
If either process modifies a shared page, only then is the 
page copied. 
 COW allows more efficient process creation as only 
modified pages are copied. 
 Free pages are allocated from a pool of zeroed-out 
pages. 
Silberschatz, Galvin 10.14 and Gagne Ó2002 Operating System
Memory-Mapped Files 
 Memory-mapped file I/O allows file I/O to be treated as routine 
memory access by mapping a disk block to a page in memory. 
 A file is initially read using demand paging. A page-sized portion 
of the file is read from the file system into a physical page. 
Subsequent reads/writes to/from the file are treated as ordinary 
memory accesses. 
 Simplifies file access by treating file I/O through memory rather 
than read() write() system calls. 
 Also allows several processes to map the same file allowing the 
pages in memory to be shared. 
Silberschatz, Galvin 10.15 and Gagne Ó2002 Operating System
Memory Mapped Files 
Silberschatz, Galvin 10.16 and Gagne Ó2002 Operating System
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. 
 Page replacement completes separation between logical 
memory and physical memory – large virtual memory can 
be provided on a smaller physical memory. 
Silberschatz, Galvin 10.17 and Gagne Ó2002 Operating System
Need For Page Replacement 
Silberschatz, Galvin 10.18 and Gagne Ó2002 Operating System
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 there is no free frame, use a page replacement 
algorithm to select a victim frame. 
3. Read the desired page into the (newly) free frame. 
Update the page and frame tables. 
4. Restart the process. 
Silberschatz, Galvin 10.19 and Gagne Ó2002 Operating System
Page Replacement 
Silberschatz, Galvin 10.20 and Gagne Ó2002 Operating System
Page Replacement Algorithms 
 Want lowest page-fault rate. 
 Evaluate algorithm by running it on a particular string of 
memory references (reference string) and computing the 
number of page faults on that string. 
 In all our examples, the reference string is 
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 
Silberschatz, Galvin 10.21 and Gagne Ó2002 Operating System
Graph of Page Faults Versus The Number of 
Frames 
Silberschatz, Galvin 10.22 and Gagne Ó2002 Operating System
First-In-First-Out (FIFO) Algorithm 
 Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 
 3 frames (3 pages can be in memory at a time per 
process) 
 4 frames 
1 
2 
3 
1 
2 
3 
4 
1 
2 
5 
3 
4 
9 page faults 
1 
2 
3 
1 
2 
3 
5 
1 
2 
4 
5 10 page faults 
4 4 3 
 FIFO Replacement – Belady’s Anomaly 
 more frames Þ less page faults 
Silberschatz, Galvin 10.23 and Gagne Ó2002 Operating System
FIFO Page Replacement 
Silberschatz, Galvin 10.24 and Gagne Ó2002 Operating System
FIFO Illustrating Belady’s Anamoly 
Silberschatz, Galvin 10.25 and Gagne Ó2002 Operating System
Optimal Algorithm 
 Replace page that will not be used for longest period of 
time. 
 4 frames example 
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 
1 
2 
3 
4 
6 page faults 
4 5 
 How do you know this? 
 Used for measuring how well your algorithm performs. 
Silberschatz, Galvin 10.26 and Gagne Ó2002 Operating System
Optimal Page Replacement 
Silberschatz, Galvin 10.27 and Gagne Ó2002 Operating System
Least Recently Used (LRU) 
Algorithm 
 Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 
1 
2 
3 
5 
5 
4 3 
 Counter implementation 
4 
 Every page entry has a counter; every time page is 
referenced through this entry, copy the clock into the 
counter. 
 When a page needs to be changed, look at the counters to 
determine which are to change. 
Silberschatz, Galvin 10.28 and Gagne Ó2002 Operating System
LRU Page Replacement 
Silberschatz, Galvin 10.29 and Gagne Ó2002 Operating System
LRU Algorithm (Cont.) 
 Stack implementation – keep a stack of page numbers in 
a double link form: 
 Page referenced: 
 move it to the top 
 requires 6 pointers to be changed 
 No search for replacement 
Silberschatz, Galvin 10.30 and Gagne Ó2002 Operating System
Use Of A Stack to Record The Most Recent Page 
References 
Silberschatz, Galvin 10.31 and Gagne Ó2002 Operating System
LRU Approximation Algorithms 
 Reference bit 
 With each page associate a bit, initially = 0 
 When page is referenced bit set to 1. 
 Replace the one which is 0 (if one exists). We do not know 
the order, however. 
 Second chance 
 Need reference bit. 
 Clock replacement. 
 If page to be replaced (in clock order) has reference bit = 1. 
then: 
 set reference bit 0. 
 leave page in memory. 
 replace next page (in clock order), subject to same 
rules. 
Silberschatz, Galvin 10.32 and Gagne Ó2002 Operating System
Second-Chance (clock) Page-Replacement 
Algorithm 
Silberschatz, Galvin 10.33 and Gagne Ó2002 Operating System
Counting Algorithms 
 Keep a counter of the number of references that have 
been made to each page. 
 LFU Algorithm: replaces page with smallest count. 
 MFU Algorithm: based on the argument that the page 
with the smallest count was probably just brought in and 
has yet to be used. 
Silberschatz, Galvin 10.34 and Gagne Ó2002 Operating System
Allocation of Frames 
 Each process needs minimum number of pages. 
 Example: IBM 370 – 6 pages to handle SS MOVE 
instruction: 
 instruction is 6 bytes, might span 2 pages. 
 2 pages to handle from. 
 2 pages to handle to. 
 Two major allocation schemes. 
 fixed allocation 
 priority allocation 
Silberschatz, Galvin 10.35 and Gagne Ó2002 Operating System
Fixed Allocation 
 Equal allocation – e.g., if 100 frames and 5 processes, 
give each 20 pages. 
 Proportional allocation – Allocate according to the size of 
process. 
size of process 
total number of frames 
m 
s = 
p 
i i 
S s 
m 
i 
= å 
= 
a p s 
i 
allocation for 
= = ´ 
S 
i i 
64 5 
= 
= 
= 
= ´ » 
64 59 
64 
10 
127 
10 
137 
127 
= ´ » 
137 
m 
i 
s 
s 
2 
a 
1 
a 
2 
Silberschatz, Galvin 10.36 and Gagne Ó2002 Operating System
Priority Allocation 
 Use a proportional allocation scheme using priorities 
rather than size. 
 If process Pi generates a page fault, 
 select for replacement one of its frames. 
 select for replacement a frame from a process with lower 
priority number. 
Silberschatz, Galvin 10.37 and Gagne Ó2002 Operating System
Global vs. Local Allocation 
 Global replacement – process selects a replacement 
frame from the set of all frames; one process can take a 
frame from another. 
 Local replacement – each process selects from only its 
own set of allocated frames. 
Silberschatz, Galvin 10.38 and Gagne Ó2002 Operating System
Thrashing 
 If a process does not have “enough” pages, the page-fault 
rate is very high. This leads to: 
 low CPU utilization. 
 operating system thinks that it needs to increase the degree 
of multiprogramming. 
 another process added to the system. 
 Thrashing º a process is busy swapping pages in and 
out. 
Silberschatz, Galvin 10.39 and Gagne Ó2002 Operating System
Thrashing 
 Why does paging work? 
Locality model 
 Process migrates from one locality to another. 
 Localities may overlap. 
 Why does thrashing occur? 
S size of locality  total memory size 
Silberschatz, Galvin 10.40 and Gagne Ó2002 Operating System
Locality In A Memory-Reference Pattern 
Silberschatz, Galvin 10.41 and Gagne Ó2002 Operating System
Working-Set Model 
 D º working-set window º a fixed number of page 
references 
Example: 10,000 instruction 
 WSSi (working set of Process Pi) = 
total number of pages referenced in the most recent D 
(varies in time) 
 if D too small will not encompass entire locality. 
 if D too large will encompass several localities. 
 if D = ¥ Þ will encompass entire program. 
 D = S WSSi º total demand frames 
 if D  m Þ Thrashing 
 Policy if D  m, then suspend one of the processes. 
Silberschatz, Galvin 10.42 and Gagne Ó2002 Operating System
Working-set model 
Silberschatz, Galvin 10.43 and Gagne Ó2002 Operating System
Keeping Track of the Working Set 
Approximate with interval timer + a reference bit 
Example: D = 10,000 
Timer interrupts after every 5000 time units. 
Keep in memory 2 bits for each page. 
Whenever a timer interrupts copy and sets the values of all 
reference bits to 0. 
If one of the bits in memory = 1 Þ page in working set. 
Why is this not completely accurate? 
Improvement = 10 bits and interrupt every 1000 time 
units. 
Silberschatz, Galvin 10.44 and Gagne Ó2002 Operating System
Page-Fault Frequency Scheme 
Establish “acceptable” page-fault rate. 
If actual rate too low, process loses frame. 
If actual rate too high, process gains frame. 
Silberschatz, Galvin 10.45 and Gagne Ó2002 Operating System
Other Considerations 
Prepaging 
Page size selection 
fragmentation 
table size 
I/O overhead 
locality 
Silberschatz, Galvin 10.46 and Gagne Ó2002 Operating System
Other Considerations (Cont.) 
TLB Reach - The amount of memory accessible from 
the TLB. 
TLB Reach = (TLB Size) X (Page Size) 
Ideally, the working set of each process is stored in the 
TLB. Otherwise there is a high degree of page faults. 
Silberschatz, Galvin 10.47 and Gagne Ó2002 Operating System
Increasing the Size of the TLB 
Increase the Page Size. This may lead to an increase 
in fragmentation as not all applications require a large 
page size. 
Provide Multiple Page Sizes. This allows 
applications that require larger page sizes the opportunity 
to use them without an increase in fragmentation. 
Silberschatz, Galvin 10.48 and Gagne Ó2002 Operating System
Other Considerations (Cont.) 
Program structure 
int A[][] = new int[1024][1024]; 
Each row is stored in one page 
Program 1 for (j = 0; j  A.length; j++) 
for (i = 0; i  A.length; i+ 
+) 
A[i,j] = 0; 
1024 x 1024 page faults 
Program 2 for (i = 0; i  A.length; i++) 
for (j = 0; j  A.length; j+ 
+) 
A[i,j] = 0; 
1024 page faults 
Silberschatz, Galvin 10.49 and Gagne Ó2002 Operating System
Other Considerations (Cont.) 
I/O Interlock – Pages must sometimes be locked into 
memory. 
Consider I/O. Pages that are used for copying a file from 
a device must be locked from being selected for eviction 
by a page replacement algorithm. 
Silberschatz, Galvin 10.50 and Gagne Ó2002 Operating System
Reason Why Frames Used For I/O Must Be In 
Memory 
Silberschatz, Galvin 10.51 and Gagne Ó2002 Operating System
Operating System Examples 
Windows NT 
Solaris 2 
Silberschatz, Galvin 10.52 and Gagne Ó2002 Operating System
Windows NT 
Uses demand paging with clustering. Clustering brings 
in pages surrounding the faulting page. 
Processes are assigned working set minimum and 
working set maximum. 
Working set minimum is the minimum number of pages 
the process is guaranteed to have in memory. 
A process may be assigned as many pages up to its 
working set maximum. 
When the amount of free memory in the system falls 
below a threshold, automatic working set trimming 
is performed to restore the amount of free memory. 
Working set trimming removes pages from processes that 
have pages in excess of their working set minimum. 
Silberschatz, Galvin 10.53 and Gagne Ó2002 Operating System
Solaris 2 
Maintains a list of free pages to assign faulting processes. 
Lotsfree – threshold parameter to begin paging. 
Paging is peformed by pageout process. 
Pageout scans pages using modified clock algorithm. 
Scanrate is the rate at which pages are scanned. This 
ranged from slowscan to fastscan. 
Pageout is called more frequently depending upon the 
amount of free memory available. 
Silberschatz, Galvin 10.54 and Gagne Ó2002 Operating System
Solar Page Scanner 
Silberschatz, Galvin 10.55 and Gagne Ó2002 Operating System

More Related Content

What's hot

Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
Ra'Fat Al-Msie'deen
 
Process synchonization : operating system ( Btech cse )
Process synchonization : operating system ( Btech cse )Process synchonization : operating system ( Btech cse )
Process synchonization : operating system ( Btech cse )
HimanshuSharma1389
 
Synchronization hardware
Synchronization hardwareSynchronization hardware
Synchronization hardware
Saeram Butt
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
Syaiful Ahdan
 
Ch8 of OS
Ch8 of OSCh8 of OS
Ch8 of OS
Nv Thejaswini
 
Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )
HimanshuSharma1389
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationWayne Jones Jnr
 
Chapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatzChapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatz
GiulianoRanauro
 
Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )
HimanshuSharma1389
 
MPMC chapter
MPMC chapterMPMC chapter
MPMC chapter
subhamsriramka
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatz
GiulianoRanauro
 
Chapter 14 Computer Architecture
Chapter 14 Computer ArchitectureChapter 14 Computer Architecture
Chapter 14 Computer Architecture
GiulianoRanauro
 
Ch2
Ch2Ch2
Deadlocks
DeadlocksDeadlocks
Synchronization
SynchronizationSynchronization
SynchronizationMohd Arif
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-featuresNavneet Upneja
 

What's hot (20)

Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Process synchonization : operating system ( Btech cse )
Process synchonization : operating system ( Btech cse )Process synchonization : operating system ( Btech cse )
Process synchonization : operating system ( Btech cse )
 
OS_Ch6
OS_Ch6OS_Ch6
OS_Ch6
 
OS_Ch7
OS_Ch7OS_Ch7
OS_Ch7
 
Synchronization hardware
Synchronization hardwareSynchronization hardware
Synchronization hardware
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Ch8 of OS
Ch8 of OSCh8 of OS
Ch8 of OS
 
Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
Chapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatzChapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatz
 
Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )
 
MPMC chapter
MPMC chapterMPMC chapter
MPMC chapter
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatz
 
Main memory-2 (ch8,os)
Main memory-2 (ch8,os)Main memory-2 (ch8,os)
Main memory-2 (ch8,os)
 
Chapter 14 Computer Architecture
Chapter 14 Computer ArchitectureChapter 14 Computer Architecture
Chapter 14 Computer Architecture
 
Ch2
Ch2Ch2
Ch2
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Synchronization
SynchronizationSynchronization
Synchronization
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-features
 
Ch6
Ch6Ch6
Ch6
 

Viewers also liked

Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)dsuyal1
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)dsuyal1
 
Demand Paging-R.D.Sivakumar
Demand Paging-R.D.SivakumarDemand Paging-R.D.Sivakumar
Demand Paging-R.D.Sivakumar
Sivakumar R D .
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)dsuyal1
 
4.Threads
4.Threads4.Threads
4.Threads
Senthil Kanth
 
Windows 2000
Windows 2000Windows 2000
Windows 2000
Agnas Jasmine
 
40 demand paging
40 demand paging40 demand paging
40 demand pagingmyrajendra
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6
Nadhiien Abraham
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
rapunzel08
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System Structure
Ahmar Hashmi
 
Chapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryChapter 9 - Virtual Memory
Chapter 9 - Virtual Memory
Wayne Jones Jnr
 
Demand paging
Demand pagingDemand paging
Demand paging
Trinity Dwarka
 
Paging and Segmentation in Operating System
Paging and Segmentation in Operating SystemPaging and Segmentation in Operating System
Paging and Segmentation in Operating System
Raj Mohan
 

Viewers also liked (13)

Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)
 
Demand Paging-R.D.Sivakumar
Demand Paging-R.D.SivakumarDemand Paging-R.D.Sivakumar
Demand Paging-R.D.Sivakumar
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)
 
4.Threads
4.Threads4.Threads
4.Threads
 
Windows 2000
Windows 2000Windows 2000
Windows 2000
 
40 demand paging
40 demand paging40 demand paging
40 demand paging
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System Structure
 
Chapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryChapter 9 - Virtual Memory
Chapter 9 - Virtual Memory
 
Demand paging
Demand pagingDemand paging
Demand paging
 
Paging and Segmentation in Operating System
Paging and Segmentation in Operating SystemPaging and Segmentation in Operating System
Paging and Segmentation in Operating System
 

Similar to Galvin-operating System(Ch10)

Ch10: Virtual Memory
Ch10: Virtual MemoryCh10: Virtual Memory
Ch10: Virtual Memory
Ahmar Hashmi
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
Mavoori Soshmitha
 
Ch9 Virtual Memory
Ch9 Virtual MemoryCh9 Virtual Memory
Ch9 Virtual Memory
Shubham Singh
 
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.pptLecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
PhoenixEagles
 
9.Virtual Memory
9.Virtual Memory9.Virtual Memory
9.Virtual Memory
Senthil Kanth
 
unit 4 virtual memory.ppt
unit 4 virtual memory.pptunit 4 virtual memory.ppt
unit 4 virtual memory.ppt
saiPrasad758296
 
운영체제론 Ch10
운영체제론 Ch10운영체제론 Ch10
운영체제론 Ch10
Jongmyoung Kim
 
Distributed Operating System_3
Distributed Operating System_3Distributed Operating System_3
Distributed Operating System_3
Dr Sandeep Kumar Poonia
 
Chapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatzChapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatz
GiulianoRanauro
 
Ch9
Ch9Ch9
Page Replacement Algorithms.pptx
Page Replacement Algorithms.pptxPage Replacement Algorithms.pptx
Page Replacement Algorithms.pptx
infomerlin
 
Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)
NareenAsad
 
Chapter 11 from Operating system by silberschartz
Chapter 11 from Operating system by silberschartzChapter 11 from Operating system by silberschartz
Chapter 11 from Operating system by silberschartz
GeethaPanneer
 
بيي
بييبيي
بيي
nassarsa
 
Memory Management
 Memory Management Memory Management
Memory Management
Raja Sekar Solairaj
 
Ch10 OS
Ch10 OSCh10 OS
Ch10 OSC.U
 

Similar to Galvin-operating System(Ch10) (20)

Ch10: Virtual Memory
Ch10: Virtual MemoryCh10: Virtual Memory
Ch10: Virtual Memory
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
Ch9 Virtual Memory
Ch9 Virtual MemoryCh9 Virtual Memory
Ch9 Virtual Memory
 
ch9.ppt
ch9.pptch9.ppt
ch9.ppt
 
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.pptLecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
 
9.Virtual Memory
9.Virtual Memory9.Virtual Memory
9.Virtual Memory
 
unit 4 virtual memory.ppt
unit 4 virtual memory.pptunit 4 virtual memory.ppt
unit 4 virtual memory.ppt
 
운영체제론 Ch10
운영체제론 Ch10운영체제론 Ch10
운영체제론 Ch10
 
Ch8
Ch8Ch8
Ch8
 
Distributed Operating System_3
Distributed Operating System_3Distributed Operating System_3
Distributed Operating System_3
 
Chapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatzChapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatz
 
Ch9
Ch9Ch9
Ch9
 
Page Replacement Algorithms.pptx
Page Replacement Algorithms.pptxPage Replacement Algorithms.pptx
Page Replacement Algorithms.pptx
 
Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)
 
Chapter 11 from Operating system by silberschartz
Chapter 11 from Operating system by silberschartzChapter 11 from Operating system by silberschartz
Chapter 11 from Operating system by silberschartz
 
بيي
بييبيي
بيي
 
Memory Management
 Memory Management Memory Management
Memory Management
 
OS_Ch10
OS_Ch10OS_Ch10
OS_Ch10
 
Ch10 OS
Ch10 OSCh10 OS
Ch10 OS
 
OSCh10
OSCh10OSCh10
OSCh10
 

Galvin-operating System(Ch10)

  • 1. Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples Silberschatz, Galvin 10.1 and Gagne Ó2002 Operating System
  • 2. Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical address space can therefore be much larger than physical address space. Allows address spaces to be shared by several processes. Allows for more efficient process creation. Virtual memory can be implemented via: Demand paging Demand segmentation Silberschatz, Galvin 10.2 and Gagne Ó2002 Operating System
  • 3. Virtual Memory That is Larger Than Physical Memory Silberschatz, Galvin 10.3 and Gagne Ó2002 Operating System
  • 4. Demand Paging Bring a page into memory only when it is needed. Less I/O needed Less memory needed Faster response More users Page is needed Þ reference to it invalid reference Þ abort not-in-memory Þ bring to memory Silberschatz, Galvin 10.4 and Gagne Ó2002 Operating System
  • 5. Transfer of a Paged Memory to Contiguous Disk Space Silberschatz, Galvin 10.5 and Gagne Ó2002 Operating System
  • 6. Valid-Invalid Bit With each page table entry a valid–invalid bit is associated (1 Þ in-memory, 0 Þ not-in-memory) Initially valid–invalid but is set to 0 on all entries. Example of a page table snapshot. Frame # valid-invalid bit 1 1 1 1 0 0 0  page table During address translation, if valid–invalid bit in page table entry is 0 Þ page fault. Silberschatz, Galvin 10.6 and Gagne Ó2002 Operating System
  • 7. Page Table When Some Pages Are Not in Main Memory Silberschatz, Galvin 10.7 and Gagne Ó2002 Operating System
  • 8. Page Fault If there is ever a reference to a page, first reference will trap to OS Þ page fault OS looks at another table to decide: Invalid reference Þ abort. Just not in memory. Get empty frame. Swap page into frame. Reset tables, validation bit = 1. Restart instruction: Least Recently Used block move auto increment/decrement location Silberschatz, Galvin 10.8 and Gagne Ó2002 Operating System
  • 9. Steps in Handling a Page Fault Silberschatz, Galvin 10.9 and Gagne Ó2002 Operating System
  • 10. What happens if there is no free frame? Page replacement – find some page in memory, but not really in use, swap it out. algorithm performance – want an algorithm which will result in minimum number of page faults. Same page may be brought into memory several times. Silberschatz, Galvin 10.10 and Gagne Ó2002 Operating System
  • 11. Performance of Demand Paging Page Fault Rate 0 £ p £ 1.0 if p = 0 no page faults if p = 1, every reference is a fault Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart overhead) Silberschatz, Galvin 10.11 and Gagne Ó2002 Operating System
  • 12. Demand Paging Example Memory access time = 1 microsecond 50% of the time the page that is being replaced has been modified and therefore needs to be swapped out. Swap Page Time = 10 msec = 10,000 msec EAT = (1 – p) x 1 + p (15000) 1 + 15000P (in msec) Silberschatz, Galvin 10.12 and Gagne Ó2002 Operating System
  • 13. Process Creation Virtual memory allows other benefits during process creation: - Copy-on-Write - Memory-Mapped Files Silberschatz, Galvin 10.13 and Gagne Ó2002 Operating System
  • 14. Copy-on-Write Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory. If either process modifies a shared page, only then is the page copied. COW allows more efficient process creation as only modified pages are copied. Free pages are allocated from a pool of zeroed-out pages. Silberschatz, Galvin 10.14 and Gagne Ó2002 Operating System
  • 15. Memory-Mapped Files Memory-mapped file I/O allows file I/O to be treated as routine memory access by mapping a disk block to a page in memory. A file is initially read using demand paging. A page-sized portion of the file is read from the file system into a physical page. Subsequent reads/writes to/from the file are treated as ordinary memory accesses. Simplifies file access by treating file I/O through memory rather than read() write() system calls. Also allows several processes to map the same file allowing the pages in memory to be shared. Silberschatz, Galvin 10.15 and Gagne Ó2002 Operating System
  • 16. Memory Mapped Files Silberschatz, Galvin 10.16 and Gagne Ó2002 Operating System
  • 17. 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. Page replacement completes separation between logical memory and physical memory – large virtual memory can be provided on a smaller physical memory. Silberschatz, Galvin 10.17 and Gagne Ó2002 Operating System
  • 18. Need For Page Replacement Silberschatz, Galvin 10.18 and Gagne Ó2002 Operating System
  • 19. 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 there is no free frame, use a page replacement algorithm to select a victim frame. 3. Read the desired page into the (newly) free frame. Update the page and frame tables. 4. Restart the process. Silberschatz, Galvin 10.19 and Gagne Ó2002 Operating System
  • 20. Page Replacement Silberschatz, Galvin 10.20 and Gagne Ó2002 Operating System
  • 21. Page Replacement Algorithms Want lowest page-fault rate. Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string. In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Silberschatz, Galvin 10.21 and Gagne Ó2002 Operating System
  • 22. Graph of Page Faults Versus The Number of Frames Silberschatz, Galvin 10.22 and Gagne Ó2002 Operating System
  • 23. First-In-First-Out (FIFO) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 pages can be in memory at a time per process) 4 frames 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 4 4 3 FIFO Replacement – Belady’s Anomaly more frames Þ less page faults Silberschatz, Galvin 10.23 and Gagne Ó2002 Operating System
  • 24. FIFO Page Replacement Silberschatz, Galvin 10.24 and Gagne Ó2002 Operating System
  • 25. FIFO Illustrating Belady’s Anamoly Silberschatz, Galvin 10.25 and Gagne Ó2002 Operating System
  • 26. Optimal Algorithm Replace page that will not be used for longest period of time. 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 2 3 4 6 page faults 4 5 How do you know this? Used for measuring how well your algorithm performs. Silberschatz, Galvin 10.26 and Gagne Ó2002 Operating System
  • 27. Optimal Page Replacement Silberschatz, Galvin 10.27 and Gagne Ó2002 Operating System
  • 28. Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 2 3 5 5 4 3 Counter implementation 4 Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter. When a page needs to be changed, look at the counters to determine which are to change. Silberschatz, Galvin 10.28 and Gagne Ó2002 Operating System
  • 29. LRU Page Replacement Silberschatz, Galvin 10.29 and Gagne Ó2002 Operating System
  • 30. LRU Algorithm (Cont.) Stack implementation – keep a stack of page numbers in a double link form: Page referenced: move it to the top requires 6 pointers to be changed No search for replacement Silberschatz, Galvin 10.30 and Gagne Ó2002 Operating System
  • 31. Use Of A Stack to Record The Most Recent Page References Silberschatz, Galvin 10.31 and Gagne Ó2002 Operating System
  • 32. LRU Approximation Algorithms Reference bit With each page associate a bit, initially = 0 When page is referenced bit set to 1. Replace the one which is 0 (if one exists). We do not know the order, however. Second chance Need reference bit. Clock replacement. If page to be replaced (in clock order) has reference bit = 1. then: set reference bit 0. leave page in memory. replace next page (in clock order), subject to same rules. Silberschatz, Galvin 10.32 and Gagne Ó2002 Operating System
  • 33. Second-Chance (clock) Page-Replacement Algorithm Silberschatz, Galvin 10.33 and Gagne Ó2002 Operating System
  • 34. Counting Algorithms Keep a counter of the number of references that have been made to each page. LFU Algorithm: replaces page with smallest count. MFU Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used. Silberschatz, Galvin 10.34 and Gagne Ó2002 Operating System
  • 35. Allocation of Frames Each process needs minimum number of pages. Example: IBM 370 – 6 pages to handle SS MOVE instruction: instruction is 6 bytes, might span 2 pages. 2 pages to handle from. 2 pages to handle to. Two major allocation schemes. fixed allocation priority allocation Silberschatz, Galvin 10.35 and Gagne Ó2002 Operating System
  • 36. Fixed Allocation Equal allocation – e.g., if 100 frames and 5 processes, give each 20 pages. Proportional allocation – Allocate according to the size of process. size of process total number of frames m s = p i i S s m i = å = a p s i allocation for = = ´ S i i 64 5 = = = = ´ » 64 59 64 10 127 10 137 127 = ´ » 137 m i s s 2 a 1 a 2 Silberschatz, Galvin 10.36 and Gagne Ó2002 Operating System
  • 37. Priority Allocation Use a proportional allocation scheme using priorities rather than size. If process Pi generates a page fault, select for replacement one of its frames. select for replacement a frame from a process with lower priority number. Silberschatz, Galvin 10.37 and Gagne Ó2002 Operating System
  • 38. Global vs. Local Allocation Global replacement – process selects a replacement frame from the set of all frames; one process can take a frame from another. Local replacement – each process selects from only its own set of allocated frames. Silberschatz, Galvin 10.38 and Gagne Ó2002 Operating System
  • 39. Thrashing If a process does not have “enough” pages, the page-fault rate is very high. This leads to: low CPU utilization. operating system thinks that it needs to increase the degree of multiprogramming. another process added to the system. Thrashing º a process is busy swapping pages in and out. Silberschatz, Galvin 10.39 and Gagne Ó2002 Operating System
  • 40. Thrashing Why does paging work? Locality model Process migrates from one locality to another. Localities may overlap. Why does thrashing occur? S size of locality total memory size Silberschatz, Galvin 10.40 and Gagne Ó2002 Operating System
  • 41. Locality In A Memory-Reference Pattern Silberschatz, Galvin 10.41 and Gagne Ó2002 Operating System
  • 42. Working-Set Model D º working-set window º a fixed number of page references Example: 10,000 instruction WSSi (working set of Process Pi) = total number of pages referenced in the most recent D (varies in time) if D too small will not encompass entire locality. if D too large will encompass several localities. if D = ¥ Þ will encompass entire program. D = S WSSi º total demand frames if D m Þ Thrashing Policy if D m, then suspend one of the processes. Silberschatz, Galvin 10.42 and Gagne Ó2002 Operating System
  • 43. Working-set model Silberschatz, Galvin 10.43 and Gagne Ó2002 Operating System
  • 44. Keeping Track of the Working Set Approximate with interval timer + a reference bit Example: D = 10,000 Timer interrupts after every 5000 time units. Keep in memory 2 bits for each page. Whenever a timer interrupts copy and sets the values of all reference bits to 0. If one of the bits in memory = 1 Þ page in working set. Why is this not completely accurate? Improvement = 10 bits and interrupt every 1000 time units. Silberschatz, Galvin 10.44 and Gagne Ó2002 Operating System
  • 45. Page-Fault Frequency Scheme Establish “acceptable” page-fault rate. If actual rate too low, process loses frame. If actual rate too high, process gains frame. Silberschatz, Galvin 10.45 and Gagne Ó2002 Operating System
  • 46. Other Considerations Prepaging Page size selection fragmentation table size I/O overhead locality Silberschatz, Galvin 10.46 and Gagne Ó2002 Operating System
  • 47. Other Considerations (Cont.) TLB Reach - The amount of memory accessible from the TLB. TLB Reach = (TLB Size) X (Page Size) Ideally, the working set of each process is stored in the TLB. Otherwise there is a high degree of page faults. Silberschatz, Galvin 10.47 and Gagne Ó2002 Operating System
  • 48. Increasing the Size of the TLB Increase the Page Size. This may lead to an increase in fragmentation as not all applications require a large page size. Provide Multiple Page Sizes. This allows applications that require larger page sizes the opportunity to use them without an increase in fragmentation. Silberschatz, Galvin 10.48 and Gagne Ó2002 Operating System
  • 49. Other Considerations (Cont.) Program structure int A[][] = new int[1024][1024]; Each row is stored in one page Program 1 for (j = 0; j A.length; j++) for (i = 0; i A.length; i+ +) A[i,j] = 0; 1024 x 1024 page faults Program 2 for (i = 0; i A.length; i++) for (j = 0; j A.length; j+ +) A[i,j] = 0; 1024 page faults Silberschatz, Galvin 10.49 and Gagne Ó2002 Operating System
  • 50. Other Considerations (Cont.) I/O Interlock – Pages must sometimes be locked into memory. Consider I/O. Pages that are used for copying a file from a device must be locked from being selected for eviction by a page replacement algorithm. Silberschatz, Galvin 10.50 and Gagne Ó2002 Operating System
  • 51. Reason Why Frames Used For I/O Must Be In Memory Silberschatz, Galvin 10.51 and Gagne Ó2002 Operating System
  • 52. Operating System Examples Windows NT Solaris 2 Silberschatz, Galvin 10.52 and Gagne Ó2002 Operating System
  • 53. Windows NT Uses demand paging with clustering. Clustering brings in pages surrounding the faulting page. Processes are assigned working set minimum and working set maximum. Working set minimum is the minimum number of pages the process is guaranteed to have in memory. A process may be assigned as many pages up to its working set maximum. When the amount of free memory in the system falls below a threshold, automatic working set trimming is performed to restore the amount of free memory. Working set trimming removes pages from processes that have pages in excess of their working set minimum. Silberschatz, Galvin 10.53 and Gagne Ó2002 Operating System
  • 54. Solaris 2 Maintains a list of free pages to assign faulting processes. Lotsfree – threshold parameter to begin paging. Paging is peformed by pageout process. Pageout scans pages using modified clock algorithm. Scanrate is the rate at which pages are scanned. This ranged from slowscan to fastscan. Pageout is called more frequently depending upon the amount of free memory available. Silberschatz, Galvin 10.54 and Gagne Ó2002 Operating System
  • 55. Solar Page Scanner Silberschatz, Galvin 10.55 and Gagne Ó2002 Operating System