Demand Paging, Memory์ ์๋ Page์ Page Table, Page Fault
Page Replacement
๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์คํํ๊ธฐ ์ํด์๋ ๋ง์ ํ๋ก์ธ์ค๋ค์ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋์ด์ผ ํ๋ค.
๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ฌ๋ผ์ค์ง ์๋๋ผ๋ ์คํ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ธฐ๋ฒ ์ด๋ฉฐ, ํ๋ก๊ทธ๋จ์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ์ปค๋ ๋๋ค๋ ์ฃผ์ ์ฅ์ ์ด ์๋ค.
์คํ๋๋ ์ฝ๋์ ์ ๋ถ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌ์์ผ์ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฉ๋๋ณด๋ค ํฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ์ ์์๋ค.
๋ํ, ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ธฐ์๋ ์ฉ๋์ ํ๊ณ์, ํ์ด์ง ๊ต์ฒด๋ฑ์ ์ฑ๋ฅ ์ด์๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ๋ํ, ๊ฐ๋๋ง ์ฌ์ฉ๋๋ ์ฝ๋๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๋ค์ ํ์ธํ ์ ์๋ค๋ ์ ์์, ๋ถํ์ํ๊ฒ ์ ์ฒด์ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋๊ฒ ์๋๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
ํ๋ก์ธ์ค๋ฅผ ์คํํ ๋, ์คํ์ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค.
- Memory ์ฌ์ฉ๋ ๊ฐ์
- ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ์ ์ฝ๋ฐ์ง ์๊ฒ ๋๋ค.
- ๋ ๋ง์ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํ ์ ์๊ฒ ๋๋ค.
- ์ด์ ๋ฐ๋ผ ์๋ต์๊ฐ์ ์ ์ง๋๊ณ , CPU ์ด์ฉ๋ฅ ๊ณผ ์ฒ๋ฆฌ์จ์ ๋์์ง๋ค.
- I/O ์์ ๊ฐ์
- ๋น ๋ฅธ ์๋ต์๊ฐ
- swap์ ํ์ํ ์ ์ถ๋ ฅ์ด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ๋ค์ด ๋น ๋ฅด๊ฒ ์คํ๋๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ค์ ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ๊ณผ ์ฌ์ฉ์์ ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ ๋ถ๋ฆฌํ ๊ฒ์ผ๋ก ์ ๋ฆฌํ ์ ์๋ค. ์ด๋ก์จ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ๋ ์ผ๋ง๋ ์ง ํฐ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ ๊ณตํ ์ ์๋ค.
-
ํ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋
๋ ผ๋ฆฌ์ ์ธ ๋ชจ์ต
์ ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ๊ตฌํํ ๊ณต๊ฐ์ด๋ค. ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ณตํจ์ผ๋ก์จ ํ์ฌ ์ง์ ์ ์ผ๋ก ํ์์น ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ์ง ์๋ ๊ฒ์ผ๋ก ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ ์ ์๋ค. -
์๋ฅผ ๋ค์ด, ํ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉฐ ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ก 100KB ๊ฐ ์๊ตฌ๋์๋ค๊ณ ํ์. ํ์ง๋ง ์คํ๊น์ง์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(Heap์์ญ, Stack ์์ญ, ์ฝ๋, ๋ฐ์ดํฐ)์ ํฉ์ด 40KB ๋ผ๋ฉด, ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์๋ 40KB ๋ง ์ฌ๋ผ๊ฐ ์๊ณ , ๋๋จธ์ง 60KB ๋งํผ์ ํ์์์ ๋ฌผ๋ฆฌ๋ฉ๋ชจ๋ฆฌ์ ์๊ตฌํ๋ค๊ณ ์ดํดํ ์ ์๊ฒ ๋ค.
stack |
free(60KB) | Heap |
Data |
Code |
---|
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋
์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ฐ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ค ์ฌ์ด์ ๊ณต์ ๋ ์ ์๋๋ก ํ๋ค. ๊ฐ ํ๋ก์ธ์ค๋ค์๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ฅผ ์์ ์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ์ธ์ํ์ง๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ์๋๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๋ค
์ ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ณต์ ๋๊ณ ์๋ค.- ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ , ํ๋ก์ธ์ค๋ค์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด ํต์ ํ ์ ์๋ค. ์ด ๋ํ, ๊ฐ ํ๋ก์ธ์ค๋ค์ ๊ฐ์ ์์ ์ ์ฃผ์ ๊ณต๊ฐ์ฒ๋ผ ์ธ์ํ์ง๋ง, ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ ๊ณต์ ๋๊ณ ์๋ค.
fork()
๋ฅผ ํตํ ํ๋ก์ธ์ค ์์ฑ ๊ณผ์ ์์ ํ์ด์ง๋ค์ด ๊ณต์ ๋๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์์์ ์คํ์ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค๊ณ ํ๋ค.
์ด๋ฌํ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ถ์ ํ์ด์ง ๋จ์
์ผ ์๋ ์๊ณ , ์ธ๊ทธ๋จผํธ ๋จ์
์ผ ์๋ ์์ง๋ง ํ์ฌ ๋๋ถ๋ถ์ ํ์ด์ง ๋จ์๋ฅผ ์ฌ์ฉํ๋ค.
์ด์ฒ๋ผ ํ์ฌ ํ์ํ(์๊ตฌ๋์ด์ง๋) ํ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ Demanding Paging(์๊ตฌ ํ์ด์ง)
์ด๋ผ๊ณ ํ๋ค.
- Invalid์ ์๋ฏธ
- ์ฌ์ฉ๋์ง ์๋ ์ฃผ์ ์์ญ์ธ ๊ฒฝ์ฐ
- ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ
- ์ฒ์์๋ ๋ชจ๋ page entry๊ฐ invalid๋ก ์ด๊ธฐํ
- address translation(์ฃผ์ ๋ณํ) ์์ invalid bit์ด set๋์ด ์์ผ๋ฉด
- page fault
๋ง์ฝ CPU์์ P1์ 3๋ฒ์งธ ํ์ด์ง์ ์ ๊ทผํ๋๋ฐ, valid bit ๊ฐ
์ด 0์ด๋ฉด CPU์ ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ฐ์ํ์ฌ ์ด์์ฒด์ ๋ด๋ถ์ ISR๋ก ์ ํํ๋ค.
์ฌ๊ธฐ์ ๋์คํฌ ๋ด๋ถ์ ํ๋ก์ธ์ค P1์ ์๋ 3๋ฒ์งธ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ์์
์ ํ๋ค.
- Invalid page๋ก ์ ๊ทผํ๋ฉด MMU๊ฐ
trap
์ ๋ฐ์์ํด (page fault trap) - Kernel mode๋ก ๋ค์ด๊ฐ์
page fault handler
๊ฐ invoke๋จ - ๋ค์๊ณผ ๊ฐ์ ์์๋ก page fault๋ฅผ ์ฒ๋ฆฌํ๋ค.
- Invalid reference(์๋ชป๋ ์์ฒญ์ธ์ง ํ์ธ)? (eg. bad address, protection violataion(์ ๊ทผ๊ถํ์ด ์๋ชป๋๊ฒฝ์ฐ ๊ฐ์ ๋ก abort ์ํด))
- Get an empty page frame(๋น ํ์ด์ง ์์ผ๋ฉด ๋บ์ด์จ๋ค.: replace)
- ํด๋น ํ์ด์ง๋ฅผ disk์์ memory๋ก ์ฝ์ด์จ๋ค. (๋๋ฆฐ ์์
)
- disk I/O๊ฐ ๋๋๊ธฐ๊น์ง ์ด ํ๋ก์ธ์ค๋ CPU๋ฅผ ์ ์ ๋นํจ (๋บ๊ฒจ์ block ์ํ๋ก ๋ณํ)
- Disk read๊ฐ ๋๋๋ฉด page tables entry ๊ธฐ๋ก,
valid/invalid bit
์ "valid"๋ก ๊ธฐ๋ก - ready queue์ process๋ฅผ insert -> dispatch later
- ์ด ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ก๊ณ ๋ค์ running
- ์๊น ์ค๋จ๋์๋ instruction์ ์ฌ๊ฐ
์ ๊ทธ๋ฆผ์ page fault๊ฐ ๋ฐ์ํ์ ๋ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋ํ๋ด๋ ๊ณผ์ ์ด๋ค.
1. ํด๋น ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋์ง valid bit๋ฅผ ํ์ธํ๋ค.
2. valid bit๊ฐ 0์ด๋ผ๋ฉด CPU์ ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ณด๋ด ์ด์์ฒด์ ๋ด๋ถ ํด๋น ISR๋ก ์ ํํ๋ค.
3. ํด๋น ISR์์ backing store(๋์คํฌ)๋ฅผ ํ์ํ์ฌ ํด๋น ํ๋ก์ธ์ค์ ํ์ด์ง๋ฅผ ์ฐพ๋๋ค.
4. ํด๋น ํ์ด์ง๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด์๋ ํ๋ ์์ ํ ๋นํ๋ค.
5. ํ์ด์ง ํ
์ด๋ธ์ ๊ฐฑ์ ํ๋ค. (ํ๋ ์ ๋ฒํธ ์ค์ , valid bit 1๋ก ์ค์ )
6. ๋ค์ ๋ช
๋ น์ด๋ก ๋์๊ฐ์ ์คํํ๋ค.
Pure Demanding Paging์ ํ๋ก์ธ์ค๊ฐ ์ต์ด๋ก ์คํ๋ ๋๋ ์ด๋ค ํ์ด์ง๊ฐ ํ์ํ์ง ์ ์ ์์ผ๋ฏ๋ก, ์๋ฌด ํ์ด์ง๋ ์ฌ๋ฆฌ์ง ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ์๋ง์ page fault๊ฐ ๋ฐ์ํ๋ค. ์ฆ, ์์ํ๊ฒ ํ์ํ ํ์ด์ง๋ง ์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค. Pure Demanding Paging์ ์ฅ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ์์๋ถํฐ page fault๊ฐ ๋ฐ์ํ๋ฏ๋ก ์๋๋ฉด์์ ๋๋ฆฌ๋ค.
Prepaging์ pure demanding paging๊ณผ ๋ฐ๋๋๋ ๊ฐ๋ ์ด๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ํ์ํ ๊ฒ์ด๋ผ ํ๋จ๋๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ ์ฅ์ ์ page fault๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ์ ์ผ๋ฏ๋ก ์๋๋ฉด์์ ๋น ๋ฅด์ง๋ง, ๋จ์ ์ผ๋ก ๋ฏธ๋ฆฌ ์ฌ๋ผ๊ฐ ํ์ด์ง๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ญ๋น๋๋ค.
Swapping์ Demanding Paging์ ๊ณตํต์ ์ ๋ ๋ค ๋ฉ๋ชจ๋ฆฌ์ backing store ์ฌ์ด๋ฅผ ์๋ก ์ค๊ณ ๊ฐ๋ ๊ธฐ๋ฅ์ ์ํํ์ง๋ง, Swapping
์ ํ๋ก์ธ์ค ๋จ์๋ก ์ด๋ํ๊ณ Demanding 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
- = (1-p) x memory access
-
- p(OS & HW page fault overhead
-
- [swap page out if needed]
-
- swap page in
- OS & HW restart overhead)
page fault๊ฐ ๋ฐ์ํ๋ฉด ์๊ฐ์ด ๋งค์ฐ ์ค๋๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
ํ์ค์์๋ ์ง์ญ์ฑ์ ์๋ฆฌ(Locality of reference)
๋ก ์ธํด ํ์ด์ง ๋ถ์ฌ ํ๋ฅ ์ ๋งค์ฐ ๋ฎ๋ค.
์ง์ญ์ฑ์ ์๋ฆฌ(Locality of reference): ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์๊ฐ์ ์ง์ญ์ฑ๊ณผ ๊ณต๊ฐ์ ์ง์ญ์ฑ์ ๊ฐ๋๋ค.
- ์๊ฐ์ ์ง์ญ์ฑ: CPU๋ ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฝ์ ํ, ์๊ฐ์ด ์ง๋๋ ๊ทธ ๊ณต๊ฐ์ ๋ค์ ์ฝ์ ํ๋ฅ ์ด ๋งค์ฐ ๋๋ค๋ ๊ฒ์ ๋งํ๋ค.
- ๋ํ์ ์ธ ์๋ก ๋ฐ๋ณต๋ฌธ์ด ์๋ค. ๋ฐ๋ณต๋ฌธ์ ํ๋์ ์ฝ๋ ๊ณต๊ฐ์ ์ฌ๋ฌ ๋ฒ ์ฝ๋๋ค.
- ๊ณต๊ฐ์ ์ง์ญ์ฑ: CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฝ์ ๋๋ ์ธ์ ํ ๋ฒ์ ๋ด์์ ์ฝ๋๋ค๋ ์๋ฏธ์ด๋ค.
- ํ๋ก๊ทธ๋จ์ ๋๋ถ๋ถ ์ ์ฐจ์ ์ธ ์์๋ก ๊ตฌํ๋์ด ์์ด ์์๋๋ก ์ฝ๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํ๋ค
+) ์ฌ๊ธฐ์ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํ์ด์ง ๋ถ์ฌ์ผ ๋ ์์๋๋ ์๊ฐ์ ์ค์ผ ์ ์๋๋ฐ, backing store
๋ก HDD๋ฅผ ์ฌ์ฉํ๊ธฐ ๋ณด๋ค๋ ๋์ฑ ๋น ๋ฅด๊ฒ ๋์ํ๋ SSD๋ ์ ๊ฐ DRAM๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
-
Page replacement
- ์ด๋ค frame์ ๋นผ์์์ฌ์ง ๊ฒฐ์ ํด์ผ ํจ
- ๊ณง๋ฐ๋ก ์ฌ์ฉ๋์ง ์์ page๋ฅผ ์ซ์๋ด๋ ๊ฒ์ด ์ข์
- ๋์ผํ ํ์ด์ง๊ฐ ์ฌ๋ฌ๋ฒ ๋ฉ๋ชจ๋ฆฌ์์ ์ซ๊ฒจ๋ฌ๋ค๊ฐ ๋ค์๋ค์ด์ฌ ์ ์์
-
Replacement Algorithm
- page fault rate๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ
- ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐ
- ์ฃผ์ด์ง page reference string์ ๋ํด page fault๋ฅผ ์ผ๋ง๋ ๋ด๋์ง ์กฐ์ฌ
- ex. reference string = 1,2,3,4,1,2,5,1,2,3,4,5
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ์ฌ์ฉ์ค์ธ ์ํฉ์์์ ๋ฉ๋ชจ๋ฆฌ ๊ต์ฒด ํ๋ฆ์ด๋ค.
- ๋์คํฌ์์ ํ์ํ ํ์ด์ง์ ์์น๋ฅผ ์ฐพ๋๋ค
- ๋น ํ์ด์ง ํ๋ ์์ ์ฐพ๋๋ค.
- ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ํตํด ํฌ์๋ (victim) ํ์ด์ง๋ฅผ ๊ณ ๋ฅธ๋ค.
- ํฌ์๋ ํ์ด์ง๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํ๊ณ , ๊ด๋ จ ํ์ด์ง ํ ์ด๋ธ์ ์์ ํ๋ค.
- ์๋กญ๊ฒ ๋น์์ง ํ์ด์ง ํ ์ด๋ธ ๋ด ํ๋ ์์ ์ ํ์ด์ง๋ฅผ ์ฝ์ด์ค๊ณ , ํ๋ ์ ํ ์ด๋ธ์ ์์ ํ๋ค.
- ์ฌ์ฉ์ ํ๋ก์ธ์ค ์ฌ์์
victim page: backing store๋ก page-out์ด ๋ ํ์ด์ง
๋ง์ฝ victim page๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ์ฌ๋ผ์จ ์ดํ์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์๋ค๋ฉด?
์ซ์๋ด๊ธฐ๋ง ํ๋ฉด ๋๋๊ฒ ์๋๋ผ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ page-out์ด ๋ ๋ backing store์ ์ฐ๊ธฐ(write) ์ฐ์ฐ์ ํด์ผํ๋ค.
backing store๋ ์ฝ๋ ์๊ฐ๋ ๋๋ฆฌ์ง๋ง, ๊ฑฐ๊ธฐ์ ๋ํด ์ฐ๊ธฐ ์์ ๊น์ง ํ๋ค๋ฉด ๋์ฑ ๋นํจ์จ์ ์ผ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ํด๋น ํ์ด์ง๊ฐ ์์ ๋์๋์ง ์๋์๋์ง๋ฅผ ํ๋จํ ์ ์์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ ์ํด ํ์ด์ง ํ
์ด๋ธ์ modified bit(=dirty bit)
๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ๊ฒ์ฌํ๋ค.
ํด๋น ํ์ด์ง๊ฐ ์์ ๋์๋ค๋ฉด ์ด ๋นํธ๋ฅผ 1๋ก ๋๊ณ , ์์ ๋์ง ์์ผ๋ฉด 0์ผ๋ก ๋๋ค. ์ด๋ฅผ ์ด์ฉํด์ victim page๋ ์ต๋ํ ์์ ๋์ง ์์ ํ์ด์ง๋ฅผ ์ ํํ๋ค.
modified bit๋ฅผ ์ถ๊ฐํ ํ์ด์ง ํ ์ด๋ธ์ ๋ชจ์ต์ด๋ค. ์ฌ๊ธฐ์ ์์ ๋์ง ์์ ํ์ด์ง๋ 0, 2, 3๋ฒ 3๊ฐ์ ํ์ด์ง๊ฐ ์กด์ฌํ๋๋ฐ ์ด ์ค์์๋ ์ด๋ค ํ์ด์ง๋ฅผ ์ ํํด์ผ ํ ๊น?
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ๋ฐํจ๊ฒฝ ๊ต์๋ ๊ฐ์
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
- page fault์ ๋ํด ์ค๋ช ํ์์ค.
- demand paging์ ๋ํด ์ค๋ช ํ์์ค