๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋์จ ๊ธฐ์ . 0๋ฒ์ง๋ถํฐ ์์ํ๋ ์๊ธฐ ์์ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ
Page ๋จ์์์ ํ์ฌ ํ์ํ ํ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ์
- I/O ์์ ๊ฐ์
- Memory ์ฌ์ฉ๋ ๊ฐ์
- ๋น ๋ฅธ ์๋ต ์๊ฐ
- ๋ ๋ง์ ์ฌ์ฉ์ ์์ฉ
- Invalid
- ์ฌ์ฉ๋์ง ์๋ ์ฃผ์ ์์ญ์ธ ๊ฒฝ์ฐ
- ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ
- ์ฒ์์๋ ๋ชจ๋ page entry๊ฐ invalid๋ก ์ด๊ธฐํ
- address translation(์ฃผ์ ๋ณํ) ์์ invalid bit์ด set ๋์ด ์์ผ๋ฉด page fault
CPU๊ฐ ์ ๊ทผํ๋ ค๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ. ํ์ด์ง ํ ์ด๋ธ์ invalid bit๊ฐ set ๋ผ์๋ ๊ฒฝ์ฐ
- ํด๋น ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋์ง valid bit๋ฅผ ํ์ธํ๋ค.
- invalid bit๊ฐ set๋ ๊ฒฝ์ฐ๋ผ๋ฉด CPU์ ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ณด๋ด ์ด์์ฒด์ ๋ด๋ถ ํด๋น ISR๋ก ์ ํํ๋ค.
- invalid reference?(ex. bad address, protection violation) -> abort process.
- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด์๋ ํ๋ ์์ ํ๋ํ๋ค. (๋น์ด์๋ ํ๋ ์์ด ์์ผ๋ฉด ๋บ์ด์จ๋ค.:replace)
- ํด๋น ํ์ด์ง๋ฅผ backing store(๋์คํฌ)์์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์จ๋ค.
- disk I/O๊ฐ ๋๋๊ธฐ๊น์ง ์ด ํ๋ก์ธ์ค๋ CPU๋ฅผ preempt ๋นํ๋ค.(block)
- Disk read๊ฐ ๋๋๋ฉด page tables entry๋ฅผ ๊ธฐ๋กํ๊ณ valid/invalid bit๋ฅผ 'valid'๋ก ์ค์ ํ๋ค.
- ready queue์ process๋ฅผ insert
- ํด๋น ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ก๊ณ ๋ค์ running
- ์๊น ์ค๋จ๋์๋ instruction์ ์ฌ๊ฐํ๋ค.
- Pure Demanding Paging
Pure Demanding Paging์ ํ๋ก์ธ์ค๊ฐ ์ต์ด๋ก ์คํ๋ ๋๋ ์ด๋ค ํ์ด์ง๊ฐ ํ์ํ์ง ์ ์ ์์ผ๋ฏ๋ก, ์๋ฌด ํ์ด์ง๋ ์ฌ๋ฆฌ์ง ์๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ์๋ง์ page fault๊ฐ ๋ฐ์ํ๋ค. ์ฆ, ์์ํ๊ฒ ํ์ํ ํ์ด์ง๋ง ์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
Pure Demanding Paging์ ์ฅ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ์์๋ถํฐ page fault๊ฐ ๋ฐ์ํ๋ฏ๋ก ์๋๋ฉด์์ ๋๋ฆฌ๋ค.
-
Page replacement
- ์ด๋ค frame์ ๋นผ์์์ฌ์ง ๊ฒฐ์ ํด์ผ ํจ
- ๊ณง๋ฐ๋ก ์ฌ์ฉ๋์ง ์์ page๋ฅผ ์ซ์๋ด๋ ๊ฒ์ด ์ข์
- ๋์ผํ ํ์ด์ง๊ฐ ์ฌ๋ฌ๋ฒ ๋ฉ๋ชจ๋ฆฌ์์ ์ซ๊ฒจ๋ฌ๋ค๊ฐ ๋ค์๋ค์ด์ฌ ์ ์์
-
Replacement Algorithm
- page fault rate๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ
- ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐ
- ์ฃผ์ด์ง page reference string์ ๋ํด page fault๋ฅผ ์ผ๋ง๋ ๋ด๋์ง ์กฐ์ฌ
๋ง์ฝ victim page๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ์ฌ๋ผ์จ ์ดํ์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์๋ค๋ฉด?
์ซ์๋ด๊ธฐ๋ง ํ๋ฉด ๋๋๊ฒ ์๋๋ผ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ page-out์ด ๋ ๋ backing store์ ์ฐ๊ธฐ(write) ์ฐ์ฐ์ ํด์ผํ๋ค.
backing store๋ ์ฝ๋ ์๊ฐ๋ ๋๋ฆฌ์ง๋ง, ๊ฑฐ๊ธฐ์ ๋ํด ์ฐ๊ธฐ ์์ ๊น์ง ํ๋ค๋ฉด ๋์ฑ ๋นํจ์จ์ ์ผ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ํด๋น ํ์ด์ง๊ฐ ์์ ๋์๋์ง ์๋์๋์ง๋ฅผ ํ๋จํ ์ ์์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ ์ํด ํ์ด์ง ํ ์ด๋ธ์ modified bit(=dirty bit)๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ๊ฒ์ฌํ๋ค.
ํด๋น ํ์ด์ง๊ฐ ์์ ๋์๋ค๋ฉด ์ด ๋นํธ๋ฅผ 1๋ก ๋๊ณ , ์์ ๋์ง ์์ผ๋ฉด 0์ผ๋ก ๋๋ค. ์ด๋ฅผ ์ด์ฉํด์ victim page๋ ์ต๋ํ ์์ ๋์ง ์์ ํ์ด์ง๋ฅผ ์ ํํ๋ค.