SlideShare a Scribd company logo
1 of 28
Silberschatz, Galvin, and Gagne ©199910.1
Module 10: Virtual Memory
• Background
• Demand Paging
• Performance of Demand Paging
• Page Replacement
• Page-Replacement Algorithms
• Allocation of Frames
• Thrashing
• Other Considerations
• Demand Segmenation
Silberschatz, Galvin, and Gagne ©199910.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.
– Need to allow pages to be swapped in and out.
• Virtual memory can be implemented via:
– Demand paging
– Demand segmentation
Silberschatz, Galvin, and Gagne ©199910.3
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, and Gagne ©199910.4
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.
• During address translation, if valid–invalid bit in page table entry
is 0 ⇒ page fault.
1
1
1
1
0
0
0

Frame # valid-invalid bit
page table
Silberschatz, Galvin, and Gagne ©199910.5
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, and Gagne ©199910.6
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, and Gagne ©199910.7
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, and Gagne ©199910.8
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, and Gagne ©199910.9
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, and Gagne ©199910.10
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, and Gagne ©199910.11
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
• FIFO Replacement – Belady’s Anomaly
– more frames ⇒ less page faults
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
44 3
Silberschatz, Galvin, and Gagne ©199910.12
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
• How do you know this?
• Used for measuring how well your algorithm performs.
1
2
3
4
6 page faults
4 5
Silberschatz, Galvin, and Gagne ©199910.13
Least Recently Used (LRU)
Algorithm
• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
• Counter implementation
– 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.
1
2
3
5
4
4 3
5
Silberschatz, Galvin, and Gagne ©199910.14
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, and Gagne ©199910.15
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, and Gagne ©199910.16
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, and Gagne ©199910.17
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, and Gagne ©199910.18
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.
m
S
s
pa
m
sS
ps
i
ii
i
ii
×==
=
∑=
=
forallocation
framesofnumbertotal
processofsize
5964
137
127
564
137
10
127
10
64
2
1
2
≈×=
≈×=
=
=
=
a
a
s
s
m
i
Silberschatz, Galvin, and Gagne ©199910.19
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, and Gagne ©199910.20
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, and Gagne ©199910.21
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, and Gagne ©199910.22
Thrashing Diagram
• Why does paging work?
Locality model
– Process migrates from one locality to another.
– Localities may overlap.
• Why does thrashing occur?
Σ size of locality > total memory size
Silberschatz, Galvin, and Gagne ©199910.23
Working-Set Model
∀∆ ≡ 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 ∆ (varies in
time)
– if ∆ too small will not encompass entire locality.
– if ∆ too large will encompass several localities.
– if ∆ = ∞ ⇒ will encompass entire program.
• D = Σ WSSi ≡ total demand frames
• if D > m ⇒ Thrashing
• Policy if D > m, then suspend one of the processes.
Silberschatz, Galvin, and Gagne ©199910.24
Keeping Track of the Working Set
• Approximate with interval timer + a reference bit
• Example: ∆ = 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, and Gagne ©199910.25
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, and Gagne ©199910.26
Other Considerations
• Preparing
• Page size selection
– fragmentation
– table size
– I/O overhead
– locality
Silberschatz, Galvin, and Gagne ©199910.27
Other Consideration (Cont.)
• Program structure
– Array A[1024, 1024] of integer
– Each row is stored in one page
– One frame
– Program 1 for j := 1 to 1024 do
for i := 1 to 1024 do
A[i,j] := 0;
1024 x 1024 page faults
– Program 2 for i := 1 to 1024 do
for j := 1 to 1024 do
A[i,j] := 0;
1024 page faults
• I/O interlock and addressing
Silberschatz, Galvin, and Gagne ©199910.28
Demand Segmentation
• Used when insufficient hardware to implement demand paging.
• OS/2 allocates memory in segments, which it keeps track of
through segment descriptors
• Segment descriptor contains a valid bit to indicate whether the
segment is currently in memory.
– If segment is in main memory, access continues,
– If not in memory, segment fault.

More Related Content

Similar to 운영체제론 Ch10

Galvin-operating System(Ch10)
Galvin-operating System(Ch10)Galvin-operating System(Ch10)
Galvin-operating System(Ch10)dsuyal1
 
Ch10: Virtual Memory
Ch10: Virtual MemoryCh10: Virtual Memory
Ch10: Virtual MemoryAhmar Hashmi
 
Chapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatzChapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatzGiulianoRanauro
 
운영체제론 - Ch09
운영체제론 - Ch09운영체제론 - Ch09
운영체제론 - Ch09Jongmyoung Kim
 
Ch10 OS
Ch10 OSCh10 OS
Ch10 OSC.U
 
Unit 2chapter 2 memory mgmt complete
Unit 2chapter 2  memory mgmt completeUnit 2chapter 2  memory mgmt complete
Unit 2chapter 2 memory mgmt completeKalai Selvi
 
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.pptPhoenixEagles
 
unit 4 virtual memory.ppt
unit 4 virtual memory.pptunit 4 virtual memory.ppt
unit 4 virtual memory.pptsaiPrasad758296
 
Virtual Memory Management Part - II.pdf
Virtual Memory Management Part - II.pdfVirtual Memory Management Part - II.pdf
Virtual Memory Management Part - II.pdfHarika Pudugosula
 
Large-Scale, Semi-Automated Go Garbage Collection Tuning at Uber
Large-Scale, Semi-Automated Go Garbage Collection Tuning at UberLarge-Scale, Semi-Automated Go Garbage Collection Tuning at Uber
Large-Scale, Semi-Automated Go Garbage Collection Tuning at UberScyllaDB
 
Chapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryChapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryWayne Jones Jnr
 

Similar to 운영체제론 Ch10 (20)

Galvin-operating System(Ch10)
Galvin-operating System(Ch10)Galvin-operating System(Ch10)
Galvin-operating System(Ch10)
 
Ch10: Virtual Memory
Ch10: Virtual MemoryCh10: Virtual Memory
Ch10: Virtual Memory
 
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
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
ch9.ppt
ch9.pptch9.ppt
ch9.ppt
 
Ch9 Virtual Memory
Ch9 Virtual MemoryCh9 Virtual Memory
Ch9 Virtual Memory
 
운영체제론 - Ch09
운영체제론 - Ch09운영체제론 - Ch09
운영체제론 - Ch09
 
OSCh10
OSCh10OSCh10
OSCh10
 
Ch10 OS
Ch10 OSCh10 OS
Ch10 OS
 
OS_Ch10
OS_Ch10OS_Ch10
OS_Ch10
 
Segmentation and paging
Segmentation and paging Segmentation and paging
Segmentation and paging
 
Unit 2chapter 2 memory mgmt complete
Unit 2chapter 2  memory mgmt completeUnit 2chapter 2  memory mgmt complete
Unit 2chapter 2 memory mgmt complete
 
O ssvv82014
O ssvv82014O ssvv82014
O ssvv82014
 
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
 
ch9_virMem.pdf
ch9_virMem.pdfch9_virMem.pdf
ch9_virMem.pdf
 
unit 4 virtual memory.ppt
unit 4 virtual memory.pptunit 4 virtual memory.ppt
unit 4 virtual memory.ppt
 
Virtual Memory Management Part - II.pdf
Virtual Memory Management Part - II.pdfVirtual Memory Management Part - II.pdf
Virtual Memory Management Part - II.pdf
 
Large-Scale, Semi-Automated Go Garbage Collection Tuning at Uber
Large-Scale, Semi-Automated Go Garbage Collection Tuning at UberLarge-Scale, Semi-Automated Go Garbage Collection Tuning at Uber
Large-Scale, Semi-Automated Go Garbage Collection Tuning at Uber
 
Chapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryChapter 9 - Virtual Memory
Chapter 9 - Virtual Memory
 

More from Jongmyoung Kim

iTunes media server for ubuntu
iTunes media server for ubuntuiTunes media server for ubuntu
iTunes media server for ubuntuJongmyoung Kim
 
Open source for upload
Open source for uploadOpen source for upload
Open source for uploadJongmyoung Kim
 
취업캠프 특강 - 기업의 서비스 개발 프로젝트
취업캠프 특강 - 기업의 서비스 개발 프로젝트취업캠프 특강 - 기업의 서비스 개발 프로젝트
취업캠프 특강 - 기업의 서비스 개발 프로젝트Jongmyoung Kim
 
TTS System을 이용한 교육용 소프트웨어 개발
TTS System을 이용한 교육용 소프트웨어 개발TTS System을 이용한 교육용 소프트웨어 개발
TTS System을 이용한 교육용 소프트웨어 개발Jongmyoung Kim
 
Web app service project
Web app service projectWeb app service project
Web app service projectJongmyoung Kim
 

More from Jongmyoung Kim (19)

REST
RESTREST
REST
 
iTunes media server for ubuntu
iTunes media server for ubuntuiTunes media server for ubuntu
iTunes media server for ubuntu
 
Open source for upload
Open source for uploadOpen source for upload
Open source for upload
 
취업캠프 특강 - 기업의 서비스 개발 프로젝트
취업캠프 특강 - 기업의 서비스 개발 프로젝트취업캠프 특강 - 기업의 서비스 개발 프로젝트
취업캠프 특강 - 기업의 서비스 개발 프로젝트
 
TTS System을 이용한 교육용 소프트웨어 개발
TTS System을 이용한 교육용 소프트웨어 개발TTS System을 이용한 교육용 소프트웨어 개발
TTS System을 이용한 교육용 소프트웨어 개발
 
운영체제론 Ch19
운영체제론 Ch19운영체제론 Ch19
운영체제론 Ch19
 
운영체제론 Ch21
운영체제론 Ch21운영체제론 Ch21
운영체제론 Ch21
 
운영체제론 Ch18
운영체제론 Ch18운영체제론 Ch18
운영체제론 Ch18
 
운영체제론 Ch20
운영체제론 Ch20운영체제론 Ch20
운영체제론 Ch20
 
운영체제론 Ch17
운영체제론 Ch17운영체제론 Ch17
운영체제론 Ch17
 
운영체제론 Ch14
운영체제론 Ch14운영체제론 Ch14
운영체제론 Ch14
 
운영체제론 Ch13
운영체제론 Ch13운영체제론 Ch13
운영체제론 Ch13
 
운영체제론 Ch16
운영체제론 Ch16운영체제론 Ch16
운영체제론 Ch16
 
운영체제론 Ch12
운영체제론 Ch12운영체제론 Ch12
운영체제론 Ch12
 
운영체제론 Ch11
운영체제론 Ch11운영체제론 Ch11
운영체제론 Ch11
 
운영체제론 Ch22
운영체제론 Ch22운영체제론 Ch22
운영체제론 Ch22
 
Web app service project
Web app service projectWeb app service project
Web app service project
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bigdata
BigdataBigdata
Bigdata
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

운영체제론 Ch10

  • 1. Silberschatz, Galvin, and Gagne ©199910.1 Module 10: Virtual Memory • Background • Demand Paging • Performance of Demand Paging • Page Replacement • Page-Replacement Algorithms • Allocation of Frames • Thrashing • Other Considerations • Demand Segmenation
  • 2. Silberschatz, Galvin, and Gagne ©199910.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. – Need to allow pages to be swapped in and out. • Virtual memory can be implemented via: – Demand paging – Demand segmentation
  • 3. Silberschatz, Galvin, and Gagne ©199910.3 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
  • 4. Silberschatz, Galvin, and Gagne ©199910.4 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. • During address translation, if valid–invalid bit in page table entry is 0 ⇒ page fault. 1 1 1 1 0 0 0  Frame # valid-invalid bit page table
  • 5. Silberschatz, Galvin, and Gagne ©199910.5 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
  • 6. Silberschatz, Galvin, and Gagne ©199910.6 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.
  • 7. Silberschatz, Galvin, and Gagne ©199910.7 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)
  • 8. Silberschatz, Galvin, and Gagne ©199910.8 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)
  • 9. Silberschatz, Galvin, and Gagne ©199910.9 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.
  • 10. Silberschatz, Galvin, and Gagne ©199910.10 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.
  • 11. Silberschatz, Galvin, and Gagne ©199910.11 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 • FIFO Replacement – Belady’s Anomaly – more frames ⇒ less page faults 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 44 3
  • 12. Silberschatz, Galvin, and Gagne ©199910.12 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 • How do you know this? • Used for measuring how well your algorithm performs. 1 2 3 4 6 page faults 4 5
  • 13. Silberschatz, Galvin, and Gagne ©199910.13 Least Recently Used (LRU) Algorithm • Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • Counter implementation – 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. 1 2 3 5 4 4 3 5
  • 14. Silberschatz, Galvin, and Gagne ©199910.14 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
  • 15. Silberschatz, Galvin, and Gagne ©199910.15 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.
  • 16. Silberschatz, Galvin, and Gagne ©199910.16 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.
  • 17. Silberschatz, Galvin, and Gagne ©199910.17 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
  • 18. Silberschatz, Galvin, and Gagne ©199910.18 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. m S s pa m sS ps i ii i ii ×== = ∑= = forallocation framesofnumbertotal processofsize 5964 137 127 564 137 10 127 10 64 2 1 2 ≈×= ≈×= = = = a a s s m i
  • 19. Silberschatz, Galvin, and Gagne ©199910.19 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.
  • 20. Silberschatz, Galvin, and Gagne ©199910.20 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.
  • 21. Silberschatz, Galvin, and Gagne ©199910.21 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.
  • 22. Silberschatz, Galvin, and Gagne ©199910.22 Thrashing Diagram • Why does paging work? Locality model – Process migrates from one locality to another. – Localities may overlap. • Why does thrashing occur? Σ size of locality > total memory size
  • 23. Silberschatz, Galvin, and Gagne ©199910.23 Working-Set Model ∀∆ ≡ 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 ∆ (varies in time) – if ∆ too small will not encompass entire locality. – if ∆ too large will encompass several localities. – if ∆ = ∞ ⇒ will encompass entire program. • D = Σ WSSi ≡ total demand frames • if D > m ⇒ Thrashing • Policy if D > m, then suspend one of the processes.
  • 24. Silberschatz, Galvin, and Gagne ©199910.24 Keeping Track of the Working Set • Approximate with interval timer + a reference bit • Example: ∆ = 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.
  • 25. Silberschatz, Galvin, and Gagne ©199910.25 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.
  • 26. Silberschatz, Galvin, and Gagne ©199910.26 Other Considerations • Preparing • Page size selection – fragmentation – table size – I/O overhead – locality
  • 27. Silberschatz, Galvin, and Gagne ©199910.27 Other Consideration (Cont.) • Program structure – Array A[1024, 1024] of integer – Each row is stored in one page – One frame – Program 1 for j := 1 to 1024 do for i := 1 to 1024 do A[i,j] := 0; 1024 x 1024 page faults – Program 2 for i := 1 to 1024 do for j := 1 to 1024 do A[i,j] := 0; 1024 page faults • I/O interlock and addressing
  • 28. Silberschatz, Galvin, and Gagne ©199910.28 Demand Segmentation • Used when insufficient hardware to implement demand paging. • OS/2 allocates memory in segments, which it keeps track of through segment descriptors • Segment descriptor contains a valid bit to indicate whether the segment is currently in memory. – If segment is in main memory, access continues, – If not in memory, segment fault.