ํจ์คํธ์บ ํผ์ค ์ด์์ฒด์ ๊ฐ์์ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ๊ต์ฌ์ ๋ํ TIL์ ๋๋ค.
์ ๋ฒ ํฌ์คํ
์ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น(Placement) ์ ์ฑ
์ ๊ดํ ๊ฒ์ด์๋ค๋ฉด, ์ด๋ฒ ํฌ์คํ
์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ(Fetch) ์ ์ฑ
์ ๊ดํ ๊ฒ์ด๋ค.
์๊ตฌ ํ์ด์ง
์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋์ ์ ๋ถ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ์ง ์๋๋ค. ํ์ํ ๋ชจ๋๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค ์คํํ๊ณ ๋๋จธ์ง ๋ชจ๋์ ์ฌ์ฉ์๊ฐ ํน์ ๊ธฐ๋ฅ์ ์๊ตฌํ ๋์ ๊ฐ์ด ํ์ํ๋ค๊ณ ํ๋จ๋ ๋ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ถ๋ฌ์จ๋ค. ์ด๋ ๊ฒ ์ฌ์ฉ์๊ฐ ์๊ตฌํ ๋ ํด๋น ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๊ตฌ ํ์ด์ง(Demand Paging)์ด๋ผ๊ณ ํ๋ค.
์บ์๊ฐ์ด ์์ผ๋ก ํ์ํ ๊ฒ์ด๋ผ๊ณ ์์๋๋ ๋ถ๋ถ์ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ฌ ์๋ ์๊ฒ ์ง๋ง, ๋ฏธ๋ฆฌ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๊ฐ ์ธ๋ชจ์๊ฒ ๋๋ฉด ํผํด๊ฐ ๋งค์ฐ ํฌ๋ฏ๋ก ํ๋์ ์ด์์ฒด์ ๋ ์๊ตฌ ํ์ด์ง์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค. ์ฐธ๊ณ ๋ก ์๊ตฌ ํ์ด์ง์ ์ฌ์ฉ์๊ฐ ์๊ตฌํ ๋๊น์ง ํ์ด์ง๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ต๋ํ ๋ฏธ๋ฃจ๊ธฐ ๋๋ฌธ์, ์ฐ๊ธฐ ์์ ๋ณต์ฌ(Copy On Write)์ ๋น์ทํ๋ค๊ณ ๋ณผ ์ ์๋ค. ์ด๋ ๋ฏ, ์ฌ์ฉ์๊ฐ ์๊ตฌํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ ๊ฒ์ผ๋ฅธ ์ค์ํผ(Lazy Swapper)๋ผ๊ณ ํ๋ค.
ํ์ด์ง ๋ถ์ฌ(Page Fault)
ํ๋ก์ธ์ค๊ฐ ํ์ด์ง๋ฅผ ์์ฒญํ์ ๋ ๊ทธ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์ํฉ์ ํ์ด์ง ๋ถ์ฌ๋ผ๊ณ ํ๋ค. ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก์ธ์ค๊ฐ ํด๋น ํ์ด์ง๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ์์ญ์์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊ฒจ์ผ ํ๋ค(Swap-In).
์ฐธ๊ณ ๋ก, ์ธ๊ทธ๋จผํ
์ด์
์ค๋ฅ(Segmentation Fault)์ ํ์ด์ง ๋ถ์ฌ(Page Fault)์ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ธ๊ทธ๋จผํ ์ด์ ์ค๋ฅ | ํ์ด์ง ๋ถ์ฌ | |
์์ธ | ์ฌ์ฉ์ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๊ด๋ จ ์ค๋ฅ | ์๊ตฌ ํ์ด์ง์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋ถ์ฌ |
ํด๊ฒฐ ๋ฐฉ๋ฒ | ํ๋ก์ธ์ค ๊ฐ์ ์ข ๋ฃ | Swap-In |
ํ์ด์ง ๋ถ์ฌ์ ๋ํด ๊น๊ฒ ์๋ ค๋ฉด ๋จผ์ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ํด ์๊ณ ์์ด์ผ ํ๋ค.
ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ(PTE: Page Table Entry)
ํ์ด์ง ํ
์ด๋ธ์ ๋ ์ฝ๋ ํ๋(ํ ํ)๋ฅผ PTE๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์๋ ๊ทธ๋ฆผ์ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ํ๋ธ๋ค.
ํ์ด์ง ๋ฒํธ๋ ๋งคํ ๋ฐฉ์์ ๋ฐ๋ผ ํฌํจ๋๊ธฐ๋ ํ๊ณ ์ ์ธ๋๊ธฐ๋ ํ๋ฏ๋ก ์ค์ํ๊ฒ ์๊ฐํ์ง ์์๋ ๋๋ค. ํ๋ ์ ๋ฒํธ๋ ๊ฐ์ ์ฃผ์์ ํด๋น ํ์ด์ง๊ฐ ์ด๋ ํ๋ ์์ ์๋์ง ์๋ ค์ฃผ๋ ์๋ฃ๊ตฌ์กฐ๋ก ํ์ด์ง ํ
์ด๋ธ์ ํต์ฌ์ด๋ค. ํ๋ ์ ๋ฒํธ๋ ์ฃผ์ ํ๋๋ผ๊ณ ๋ ํ๋ค.
๋ค์์ ๊ฐ๊ฐ์ ํ๋๊ทธ ๋นํธ๋ค์ ๋ํ ๊ฐ๋จํ ์ค๋ช
์ด๋ค.
์ ๊ทผ ๋นํธ(Access bit)
ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ ์ฌ์ฉํ ์ ์ด ์์ผ๋ฉด 1, ์์ผ๋ฉด 0์ด ๋๋ค. ์ฐธ์กฐ ๋นํธ(Reference bit)๋ผ๊ณ ๋ ํ๋ค.
๋ณ๊ฒฝ ๋นํธ(Modified bit)
ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์์๋ค๋ฉด 1, ์์๋ค๋ฉด 0์ด ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์๋ก์ด ๊ฐ์ผ๋ก ์ค์ผ๋์๋ค๋ ์๋ฏธ๋ก ๋ํฐ ๋นํธ(Dirty bit)๋ผ๊ณ ๋ ํ๋ค.
์ ํจ ๋นํธ(Valid bit)
ํ์ด์ง๊ฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์์ผ๋ฉด 0, ์ค์ ์์ญ์ ์์ผ๋ฉด 1์ด ๋๋ค. ํ์ฌ ๋นํธ(Present bit)๋ผ๊ณ ๋ ํ๋ค.
์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๋นํธ
ํ์ด์ง์ ๋ํ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๊ถํ์ ๋ํ๋ธ๋ค. ๋ง์ฝ, ์ฝ๊ธฐ ๊ถํ์ด ์๋ ํ๋ก์ธ์ค๊ฐ ์ฝ๊ธฐ๋ฅผ ์ํํ๋ ค ํ ๋ ์ ๊ทผ์ ์ฐจ๋จํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ธ ๊ฐ์ง ๋นํธ๋ฅผ ํฉ์ณ์ ์ ๊ทผ ๊ถํ ๋นํธ(Rights bit)๋ผ๊ณ ๋ ํ๋ค.
ํ์ด์ง ๋ถ์ฌ๋ ์์ฒญํ ํ์ด์ง์ PTE์์ ์ ํจ ๋นํธ๊ฐ 1์ผ ๊ฒฝ์ฐ์ ์ํฉ์ ์๋ฏธํ๋ค.
ํ์ด์ง ๋ถ์ฌ ๋ฐ์ ์ ์กฐ์น
2๋ฒ ๊ทธ๋ฆผ์ 1๋ฒ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ํ์ด์ง 3์ ์์ฒญํ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ์ด๋ค ์์
์ ํ๋์ง ๋ณด์ฌ์ค๋ค. ๋ค์์ ์์
์ ๋ํ ์ผ๋ จ์ ๊ณผ์ ์ด๋ค.
- ํ์ด์ง 3์ ๋ํ PTE์ ์ ํจ ๋นํธ๊ฐ 1์ด๊ธฐ ๋๋ฌธ์ ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ PTE์ ์ฃผ์ ํ๋์ ์ ์ฅ๋์ด ์๋ ์ค์ ์์ญ ๋ด ์ฃผ์, ์ฆ 0๋ฒ์ ์๋ ํ์ด์ง๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด ์๋ 5๋ฒ ํ๋ ์์ผ๋ก ๊ฐ์ ธ์จ๋ค.
- ์ค์์ธ์ด ์๋ฃ๋๋ฉด PTE 3์ ์ ํจ ๋นํธ๋ 1์์ 0์ผ๋ก, ์ฃผ์ ํ๋ ๊ฐ์ ํ๋ ์ 5๋ฒ์ผ๋ก ๋ฐ๊พธ๊ณ , ํ๋ ์ 5๋ฒ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ก์ธ์ค์ ์ ๋ฌํ๋ค.
2๋ฒ ๊ทธ๋ฆผ ์ํฉ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น ํ๋ ์์ด ์์ด์ ์์
์ด ์์ํ์ง๋ง, ๋ง์ฝ, ๋น ํ๋ ์์ด ์์ ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ ์ ์ค ํ๋๋ฅผ ์ค์ ์์ญ์ผ๋ก ๋ณด๋ด์ผ ํ๋ค. ์ด๋ค ํ์ด์ง๋ฅผ ์ค์ ์์ญ์ผ๋ก ๋ด๋ณด๋ผ์ง ๊ฒฐ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ฉฐ, ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ค์ ์์ญ์ผ๋ก ๋ณด๋ผ ํ์ด์ง๋ฅผ ๋์ ํ์ด์ง๋ผ๊ณ ํ๋ค.
3๋ฒ ๊ทธ๋ฆผ์ 2๋ฒ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ, ์ฆ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น ํ๋ ์์ด ์กด์ฌํ์ง ์์ ๋, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ์ด๋ค ์์
์ ํ๋์ง ๋ณด์ฌ์ค๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ์ค๋ ์ฑ (0) | 2023.06.03 |
---|---|
[์ด์์ฒด์ ] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ (1) | 2023.05.20 |
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ (0) | 2023.05.09 |
[์ด์์ฒด์ ] ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (0) | 2023.05.02 |
[์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ(Deadlock) (1) | 2023.04.23 |
๋๊ธ