๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ณํ๋ OS๊ฐ ๊ด์ฌํ์ง ์์ง๋ง Virtual Memory ๋ณํ๋ OS๊ฐ ๊ด์ฌํ๋ค!
* ๋๋ถ๋ถ paging ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์
Demand Paging
์์ฒญ์ด ์์ผ๋ฉด ๊ทธ ๋ page๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ
- I/O ์์ ๊ฐ์ (ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ ์๋ฏธ์๋ ์ ๋ณด๋ก ์ฑ์ธ ์ ์์)
- Memory ์ฌ์ฉ๋ ๊ฐ์
- ๋น ๋ฅธ ์๋ต ์๊ฐ
- ๋ ๋ง์ ์ฌ์ฉ์ ์์ฉ
Valid / Invalid bit์ ์ฌ์ฉ
* invalid๋?
- ์ฌ์ฉ๋์ง ์๋ ์ฃผ์ ์์ญ์ธ ๊ฒฝ์ฐ
- ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ
- ์ฒ์์๋ ๋ชจ๋ page๊ฐ invalid bit๋ก ์ด๊ธฐํ
- address translation ์์ invalid bit์ด set๋์ด ์์ผ๋ฉด page fault
-> [trap] CPU๊ฐ OS๋ก ๋์ด๊ฐ
-> [page handler] OS๊ฐ fault๋ page๋ฅผ physical memory์ ์ฌ๋ฆผ
Page Fault
1) invalid page ์ ๊ทผ > MMU๊ฐ trap ๋ฐ์(page fault trap)
2) kernel mode ์ง์ > page fault handler ์๋
3) page fault ์ฒ๋ฆฌ
(1) invalid reference ์ฒดํฌ (bad address, protection violation)
-> invalidํ๋ฉด process abort
(2) empty page frame ํ ๋นํ๊ธฐ > ๋ง์ฝ ๋น ๊ณณ ์์ผ๋ฉด ์ซ์๋(replace)
(3) ํด๋น page๋ฅผ disk -> memory๋ก ์ฝ์ด์ด
- disk I/O ๋๋ ๋๊น์ง CPU preempt(block)
- page table entry ๊ธฐ๋ก / valid bit ํ์
- ready queue์ process ๋ฃ๊ธฐ -> ๋์ค์ dispatch
(4) ํด๋น process๊ฐ CPU๋ฅผ ์ก๊ณ running
(5) ์ค๋จ๋์๋ instruction ์ฌ๊ฐ
Performance of Demand Paging
Page replacement
3-2)์์ ๋น์ด์๋ frame์ด ์๋ ๊ฒฝ์ฐ ์ด๋ค frame์ ๋นผ์์ ์ฌ ์ง ๊ฒฐ์ ํด์ผ ํจ
- ๊ณง๋ฐ๋ก ์ฌ์ฉ๋์ง ์์ page๋ฅผ ์ซ์๋ด๋ ๊ฒ์ด ์ข์
- ๋์ผํ page๊ฐ ์ฌ๋ฌ ๋ฒ ๋ฉ๋ชจ๋ฆฌ์์ ์ซ๊ฒจ๋ฌ๋ค๊ฐ ๋ค์ ๋ค์ด์ฌ ์ ์์
Replacement Algorithm
- page-fault rate๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ > ์ฃผ์ด์ง page reference string์ ๋ํด page fault๋ฅผ ์ผ๋ง๋ ๋ด๋์ง ์กฐ์ฌ
Offline - Optimal Algorithm
* ๋ฏธ๋์ ์ฐธ์กฐ๋ฅผ ์๊ณ ์๋ค๋ ๊ฐ์ ํ์ ์งํ(offline algo) -> ์ค์ ๋ก๋ ์ฌ์ฉ X
MIN(OPT) : ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ page๋ฅผ replace
* ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ upper bound ์ ๊ณต(Belady's optimal algorithm, MIN, OPT ๋ฑ์ผ๋ก ๋ถ๋ฆผ)
FIFO Algorithm
FIFO anomaly(belady's anomaly) : more frames != less page faults
๋จผ์ ๋ค์ด์จ ๊ฒ์ ๋จผ์ ๋ด์ซ์
LRU (Least Recently Used) Algorithm
๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐ๋ ๊ฒ์ ์ง์
LFU (Least Frequently Used) Algorithm
์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ ์ง์
์ฌ๋ฌ ๊ฐ ์์ ๊ฒฝ์ฐ 1) ๋๋ค 2) ๊ฐ์ฅ ์ค๋์ ์ ์ฐธ์กฐ๋ page ์ง์ด๋ค
* ์ฅ์ - LRU์ฒ๋ผ ์ง์ ์ฐธ์กฐ ์์ ๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ ์ฅ๊ธฐ์ ์ธ ์๊ฐ ๊ท๋ชจ๋ฅผ ๋ณด๊ธฐ ๋๋ฌธ์ page์ ์ธ๊ธฐ๋๋ฅผ ์ข ๋ ์ ํํ ๋ฐ์
* ๋จ์ - ์ฐธ์กฐ ์์ ์ ์ต๊ทผ์ฑ์ ๋ฐ์ํ์ง ๋ชปํจ
- LRU ๋ณด๋ค ๊ตฌํ์ด ๋ณต์กํจ
๋ค์ํ Caching ํ๊ฒฝ
ํ์ ๋ ๋น ๋ฅธ ๊ณต๊ฐ(cache)์ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ ์์ฒญ ์ cache๋ก๋ถํฐ ์ง์ ์๋น์คํ๋ ๋ฐฉ์
- paging system, cache memory, buffer caching, web caching ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ
* replacement algorithm์ ์๊ฐ ์ ์ฝ
- buffer / web caching : O(1) ~ O(logn)๊น์ง ํ์ฉ
- paging system
1) page hit : ์ฃผ์ ๋ณํ ๊ณผ์ ์์ OS๊ฐ ๊ด์ฌํ์ง ์์ (OS๊ฐ ์ ๊ทผ ์๊ฐ ์ ์ ์์ -> LRU, LFU ์ฌ์ฉ ๋ถ๊ฐ๋ฅ)
2) page fault : I/O ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ OS์๊ฒ๋ก CPU ์ ์ด๊ถ ๋์ด์ด
Clock Algorithm
LRU์ ๊ทผ์ฌ ์๊ณ ๋ฆฌ์ฆ (Second change algorithm / NUR not used recently / NRU not recently used
1) reference bit์ ์ฌ์ฉํด์ ๊ต์ฒด ๋์ ํ์ด์ง ์ ์ (circular list)
2) reference bit์ด 0์ธ ๊ฒ์ ์ฐพ์ ๋๊น์ง ํฌ์ธํฐ ์์ผ๋ก ์ด๋
3) ์ด๋ ์ค reference bit 1์ ๋ชจ๋ 0์ผ๋ก ๋ณ๊ฒฝ
4) ํ ๋ฐํด ๋๋์์์๋(second chance) 0์ด๋ฉด ๊ทธ๋๋ replace
5) ์์ฃผ ์ฌ์ฉ๋๋ page๋ผ๋ฉด second chance ์ 1์ผ ๊ฒ (HW)
* ๊ฐ์
modified bit์ด 0์ธ ๊ฒ์ ์ฐ์ ํด์ ์ซ์๋
- reference bit์ modified bit(dirty bit)์ ํจ๊ป ์ฌ์ฉ
- reference bit = 1 : ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง
- modified bit = 1 : ์ต๊ทผ์ ๋ณ๊ฒฝ๋ ํ์ด์ง(I/O ๋๋ฐ) -> ์ซ์๋ด๊ธฐ ์ ์ backing store์ ๋ฐ์ํด์ผ ํจ
Page frame allocation
๊ฐ process์ ์ผ๋ง๋งํผ์ page frame์ ํ ๋นํ ๊ฒ์ธ๊ฐ?
1) ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ช ๋ น์ด ์ํ ์ ์ต์ํ ํ ๋น๋์ด์ผ ํ๋ frame์ ์๊ฐ ์์ (๋ช ๋ น์ด, ๋ฐ์ดํฐ ๋ฑ ์ฌ๋ฌ ํ์ด์ง ๋์ ์ฐธ์กฐ)
2) loop๋ฅผ ๊ตฌ์ฑํ๋ page๋ค์ ํ๊บผ๋ฒ์ allocate๋๋ ๊ฒ์ด ์ ๋ฆฌํจ
Allocation scheme
1) Equal allocation : ๋ชจ๋ ํ๋ก์ธ์ค์ ๋๊ฐ์ ๊ฐ์ ํ ๋น
2) Proportional allocation : ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋น๋กํ์ฌ ํ ๋น
3) Priority allocation : ํ๋ก์ธ์ค์ priority์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ ๋น
Global vs Local replacement
1) Global replacement
- ๋ค๋ฅธ process์ ํ ๋น๋ frame์ ๋นผ์์ ์ฌ ์ ์์
- FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ global replacement๋ก ์ฌ์ฉ ์ ํด๋น
- Working set, PFF ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ ์ ์์์ ํ ๋น
2) Local replacement
- ์์ ์๊ฒ ํ ๋น๋ frame ๋ด์์๋ง replacement
- FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ process ๋ณ๋ก ์ด์์
Thrashing
ํ๋ก์ธ์ค์ ์ํํ ์ํ์ ํ์ํ ์ต์ํ์ page frame ์๋ฅผ ํ ๋น๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ
1) page fault๊ฐ ๋งค์ฐ ๋น๋ฒํ๊ฒ ๋ฐ์
2) low CPU utilization
3) OS๋ MPD(multiprogramming degree)๋ฅผ ๋์ฌ์ผ ํ๋ค๊ณ ํ๋จ
4) ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์คํ ์ ์ถ๊ฐ๋จ (higher MPD)
5) ํ๋ก์ธ์ค ๋น ํ ๋น๋ frame์ ์๊ฐ ๋์ฑ ๊ฐ์
6) ํ๋ก์ธ์ค๋ page์ swap in / swap out์ผ๋ก ๋งค์ฐ ๋ฐ์จ
7) ๋๋ถ๋ถ์ ์๊ฐ์ CPU๋ ํ๊ฐํจ
8) low throughput
Working-Set Algorithm
* Locality of reference
- ํ๋ก์ธ์ค๋ ํน์ ์๊ฐ ๋์ ์ผ์ ์ฅ์๋ง์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ค
- ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ ํด๋น page๋ค์ ์งํฉ์ locality set์ด๋ผ ํจ
* Working-set model
locality์ ๊ธฐ๋ฐํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ผ์ ์๊ฐ ๋์ ์ํํ๊ฒ ์ํ๋๊ธฐ ์ํด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋ page๋ค์ ์งํฉ
- process์ working set ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ์ํ๋๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ชจ๋ frame์ ๋ฐ๋ฉํ ํ swap out(suspend)
- thrashing์ ๋ฐฉ์ง
- multiprogramming degree๋ฅผ ๊ฒฐ์
* Working-set์ ๊ฒฐ์
time interval ์ฌ์ด์ ์ฐธ์กฐ๋ ์๋ก ๋ค๋ฅธ ํ์ด์ง๋ค์ ์งํฉ
- working set window๋ฅผ ํตํด ์์๋ (๊ณผ๊ฑฐ delta ์๊ฐ ๋์ ์ฐธ์กฐ๋ page = working set window)
-> working set์ ๋ชจ๋ ์ํ page๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํด์ฃผ๊ณ , ์ํ์ง ์์ ์ ๋ค์ ๋ชจ๋ frame ๋ฐ๋ฉ ํ suspend
(์ฐธ์กฐ๋ page๋ฅผ delta ์๊ฐ๋งํผ๋ง ์ ์งํ๊ณ ๋ฒ๋ฆผ)
* algorithm
1) process์ working set size ํฉ > page frame์ ์
- ์ผ๋ถ process๋ฅผ swap out ์์ผ(MPD ์ค์) ๋จ์ process์ working set์ ์ฐ์ ์ ์ผ๋ก ์ถฉ์กฑ์์ผ์ค๋ค
2) working set์ ๋ค ํ ๋นํ๊ณ ๋ page frame์ด ๋จ๋ ๊ฒฝ์ฐ
- swap out๋์๋ ํ๋ก์ธ์ค์๊ฒ working set์ ํ ๋น(MPD ํค์)
PFF(Page-Fault Frequency) Scheme
์ง์ page-fault rate๋ฅผ ๋ณด๊ณ frame ํ ๋น
๋น frame์ด ์์ผ๋ฉด ์ผ๋ถ ํ๋ก์ธ์ค๋ฅผ swap out
Page Size์ ๊ฒฐ์
larger page size๊ฐ ์์ฆ์ ์ถ์ธ (low page fault -> seek ์๊ฐ ๊ฐ์)
page size๋ฅผ ๊ฐ์์ํค๋ ค๋ฉด
- page ์ ์ฆ๊ฐ
- page table ํฌ๊ธฐ ์ฆ๊ฐ
- internal fragmentation ๊ฐ์
- disk transfer์ ํจ์จ์ฑ ๊ฐ์(seek/rotation vs transfer)
- ํ์ํ ์ ๋ณด๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ์ด์ฉ์ด ํจ์จ์ -> locality์ ํ์ฉ ์ธก๋ฉด์์๋ ์ข์ง ์์
'๐ป CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] 11. File System Implementation (0) | 2023.01.22 |
---|---|
[์ด์์ฒด์ ] 10. File Systems (0) | 2023.01.22 |
[์ด์์ฒด์ ] 8. Memory Management (1) | 2023.01.08 |
[์ด์์ฒด์ ] 7. Deadlocks (0) | 2023.01.01 |
[์ด์์ฒด์ ] 6. Process Synchronization (0) | 2022.12.25 |
๋๊ธ