2022. 11. 4. 15:35ใ๐คฟ ์จ์ฐธ๊ณ Deep Dive
๐ ํ์ด์ง์ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ผ์ ํ ํฌ๊ธฐ์ Page ๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ฐฉ์์ผ๋ก, ์ด๋ ์ ์ฌ ๋๋ ์์น๋ ๊ผญ ์ฐ์์ ์ด์ง ์์ ์ ์๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง์ ๊ฐ์ ํฌ๊ธฐ์ frame ์ผ๋ก ๋ฏธ๋ฆฌ ๋๋์ด์ ธ ์์ด, ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ frame์ ๋ถ์ฐ์์ผ ์ ์ฌํ๋ค.
๐๐ปโ๏ธ ์ ์๋ฅด์ง?
๋น๊ต์ ํฌ๊ธฐ๊ฐ ํฐ A ํ๋ก์ธ์ค๊ฐ ์กด์ฌํ ๋, ๋ฉ๋ชจ๋ฆฌ ์์์ B, C ๋ผ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์ ์ค์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์. ํฌ๊ธฐ๊ฐ ํฐ A ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ ํ ์ฌ๋ถ์ ๊ณต๊ฐ์ด ์์๊ธด๋ค๋ฉด, A ํ๋ก์ธ์ค๋ B, C ์ ์์ ์ด ๋๋ ๋๊น์ง ๋๊ธฐ๋ง ํด์ผํ๋ค. ํ์ง๋ง ํ๋ก์ธ์ค๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ์ ์๋ค๋ฉด, ํฌ๊ธฐ๊ฐ ํฐ A ํ๋ก์ธ์ค๋ ์ผ์ ๋ถ๋ถ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ์ ์๋ค.
์ฆ ๋ฉ๋ชจ๋ฆฌ์ ๋ญ๋น๋๋ ๊ณต๊ฐ์ ์ต์ํ์ผ๋ก ์ค์ฌ, ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
๐๐ปโ๏ธ ์ ์ผ์ ํฌ๊ธฐ๋ก ์๋ฅด์ง?
์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์.
๋ถ๊ท ํํ ํฌ๊ธฐ๋ก ํ๋ก์ธ์ค๋ฅผ ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ ์์์๋ ์์ ํ(hole)์ด ์๊ธด๋ค. ์ด๋ฌํ hole ๋ค๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กฐ๊ฐ๋ ์์ผ๋ฉด, ์ถฉ๋ถํ ์ฌ์ ๊ณต๊ฐ์ด ์์์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค.
๐๐ปโ๏ธ ํ์ด์ง์ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง?
์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ธ๋ถ ๋จํธํ๋, ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ์ ๊ณต๊ฐ์ด ์กด์ฌํ์ง๋ง, ๊ทธ ํฌ๊ธฐ๊ฐ ์์ ํ์ฉํ ์ ์๋ ์ํฉ์ ์๋ฏธํ๋ค.
๐๐ปโ๏ธ ํ์ด์ง์ด ์ด๋ป๊ฒ ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง?
ํ์ด์ง์ ํ๋ก์ธ์ค๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ด์ง ํฌ๊ธฐ์ ๋์ผํ๊ฒ ๊ตฌ์ญ(Frame)์ ๋๋์ด ํ์ด์ง๋ฅผ ์ ์ฌํ๋ค. ๋ชจ๋ ์ผ์ ํ ํฌ๊ธฐ๋ก ๊ท ๋ฑํ๊ฒ ์ ์ฌ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ ๊ณต๊ฐ์ธ hole ์ด ๋ฐ์ํ์ง ์๋๋ค.
๐๐ปโ๏ธ ๊ทธ๋ผ ํ์ด์ง์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๊ฐ?
ํ์ด์ง์์๋ ๋ฐ๋๋ก ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๐ ๋ด๋ถ ๋จํธํ๋?
๋ด๋ถ ๋จํธํ๋ ํ๋ก์ธ์ค์๊ฒ ํ์ํ ์๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ ์ํฉ์ ๋ปํ๋ค.
ํ์ด์ง์ ์ผ์ ํ ํฌ๊ธฐ์ ํ์ด์ง๋ก ํ๋ก์ธ์ค๋ฅผ ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋๋ฐ, ์ด๋ ํ๋ก์ธ์ค์ ํฌ๊ธฐ๊ฐ ๊ผญ ํ์ด์ง์ ๋ฐฐ์๊ฐ ์๋ ์ ์๋ค. ์ฆ ํ๋ก์ธ์ค์ ๋ง์ง๋ง ํ์ด์ง๋ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ์๊ธฐ ๋๋ฌธ์, ํด๋น ํ์ด์ง์์๋ ์ฌ์ฉํ ์ ์๋ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐ์ํ๋ค.
C ์์ ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฌ๋ถ์ ์์ ๊ณต๊ฐ์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ด๋ถ ๋จํธํ๋ผ๊ณ ํ๋ค.
๐๐ปโ๏ธ ํ ํ์ด์ง์ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ ๋์ง?
์ผ๋ฐ์ ์ผ๋ก ํ ํ์ด์ง์ ํฌ๊ธฐ๋ 4kB ~ 4MB ๋ก ์๋ ค์ ธ์๋ค.
ํ์ด์ง์ ํฌ๊ธฐ๋ ํ๋์จ์ด์ ์ํด ์ ์๋๋ค. ๋๊ฐ ์ปดํจํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ 512 Byte์์ 16MB ์ฌ์ด์ด๋ฉฐ 2์ ์ ๊ณฑ์ผ๋ก ์ฆ๊ฐํ๋ค.
๐๐ปโ๏ธ ํ์ด์ง์ ํฌ๊ธฐ๋ ์์๊ฒ ์ข์๊น? ํฐ๊ฒ ์ข์๊น?
ํ์ด์ง ํฌ๊ธฐ๊ฐ ์์ ์๋ก ๋ด๋ถ ๋จํธํ์ ๊ณต๊ฐ์ด ์ค์ด๋ค์ด ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ์ข์์ง๋ค. CPU ๊ฐ ํ์ด์ง์ ์ ๊ทผํ ๋๋ ์ง์ญ์ฑ์ ์๋ฆฌ์ ๋ฐ๋ผ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ, ์ด๋ ํ์ด์ง์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ํ์์น ์์ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ฉด์์ ์ํด๋ค.
๐๐ปโ๏ธ ์ด๋ค ์ฅ์ ์ด ์์ง?
์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
๐๐ปโ๏ธ ์ด๋ค ๋จ์ ์ด ์์ง?
๋ด๋ถ ๋จํธํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ด๋ถ ๋จํธํ๋, ํ๋ก์ธ์ค์ ๋จ์ ํ์ด์ง๊ฐ ํ์๋ก ํ๋ ๊ฒ ๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ญ๋น๋๋ ์ํฉ์ ์๋ฏธํ๋ค.
๐๐ปโ๏ธ Page fault ๊ฐ ๋ญ์ง?
์ฌ์ ์ ์ ์ : CPU ๊ฐ ๋ฌดํจ ๋นํธ(invalid bit)๋ก ํ์๋ Page ์ ์ ๊ทผํ๋ ์ํฉ.
CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฐพ๊ณ ์ ํ๋ ๋ช ๋ น์ด(ํ์ด์ง ์กฐ๊ฐ)๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. ์ฆ ์์ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ง ์์ ํ์ด์ง๋ฅผ CPU ๊ฐ ์ฐพ์ผ๋ ค๊ณ ํ๋ฉด page fault ๊ฐ ๋ฐ์ํ๋ค.
๐๐ปโ๏ธ Page fault ๋ฐ์ ๊ณผ์
1. Cpu ๊ฐ Page N ์ ์ฐธ์กฐํ๊ธฐ ์ํด ์ ๊ทผ
2. ํ์ด์ง ํ ์ด๋ธ์์ Page N ์ด ๋ฌดํจ ์ํ์์ ํ์ธ
3. MMU ์์ Page Fault Trap ๋ฐ์
4. ๋์คํฌ์์ Page N ์ ๋น ํ๋ ์์ ์ ์ฌํ๊ณ page Table ์ ์ ๋ฐ์ดํธ ํ๋ค. (invalid -> valid)
MMU(Memory Management Unit)๋ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ณํํด์ฃผ๋ ํ๋์จ์ด ์ฅ์น์ ๋๋ค.
ref
https://jhnyang.tistory.com/290
https://100100e.tistory.com/282
'๐คฟ ์จ์ฐธ๊ณ Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฅ ๋ค์ด๋ถ] ์ด์งํธ๋ฆฌ, ์ด์งํ์ํธ๋ฆฌ, B-Tree, B+Tree ๊ฐ๋ ๊ณผ ๊ผฌ๋ฆฌ์ง๋ฌธ (0) | 2023.03.08 |
---|---|
๋ฉด์ ์ค๋น๋ฅผ ์ํ ์๋ฃ๊ตฌ์กฐ (0) | 2022.06.26 |