๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ธฐ๋ณธ์ ์ธ ์๋ฆฌ์ ์ธ๋ถ ๋จํธํ์ ๋ํด ํ์ตํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๊ฐ์๋ฉ๋ชจ๋ฆฌ๋?
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)๋ ์ปดํจํฐ ์์คํ ์์ ์ฌ์ฉ๋๋ ์ฃผ๊ธฐ์ต์ฅ์น(RAM)์ ํ์ฅ๋ ํํ๋ก, ์ค์ ๋ฌผ๋ฆฌ์ ์ธ RAM๋ณด๋ค ํฐ ์ฉ๋์ ์ ๊ณตํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ์ ์๋๋ก ํฉ๋๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฃผ๋ก ์ด์ ์ฒด์ ์์ ๊ด๋ฆฌ๋๋ฉฐ, ์ฃผ๊ธฐ์ต์ฅ์น(RAM)์ ํ๋ ๋์คํฌ(๋๋ SSD)์ ์กฐํฉ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ํ์ํ ๋ฐ์ดํฐ์ ์ฝ๋ ์ผ๋ถ๊ฐ RAM์ ๋ก๋๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ RAM์ ์ฌ๋ฆฌ๋ ๊ฒ์ ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ด์ ์ฒด์ ์์๋ ํ๋ก๊ทธ๋จ์ด ์ค์ ๋ก ํ์๋ก ํ ๋๊น์ง ํ๋ ๋์คํฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ , ํ์ํ ๋๋ง๋ค RAM์ผ๋ก ์ฎ๊ฒจ์ ์ฌ์ฉํฉ๋๋ค.
์ฆ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์คํํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ๋ ํฐ ํ๋ก์ธ์ค๋ค์ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ํ์ด์ง ๊ธฐ๋ฒ์ ๋๋ค.
ํ์ด์ง(Paging)์ด๋?
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์์์ ์ธ๋ถ ๋จํธํ๊ฐ ์๊ธด ์ด์ ๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ํฌ๊ธฐ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ํ ๋น ๋ฐ ํด์ ๋์๊ธฐ ๋๋ฌธ์ ๋น ๊ณต๊ฐ์ด ๋ฐ์ํ์ต๋๋ค. ๋ง์ฝ ํ๋ก์ธ์ค๋ฅผ ์ผ์ ํฌ๊ธฐ๋ก ์๋ฅด๊ณ ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ ์ผ๋ก ํ ๋นํ ์ ์๋ค๋ฉด ์ด๋จ๊น์?
์ด๊ฒ์ด ํ์ด์ง์ ๋๋ค. ํ์ด์ง์ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ ์ฃผ์๊ณต๊ฐ์ ํ์ด์ง(Page)๋ผ๋ ์ผ์ ํ ๋จ์๋ก ์๋ฅด๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํ๋ ์(frame)์ด๋ผ๋ ํ์ด์ง์ ๋์ผํ ํฌ๊ธฐ์ ๋จ์๋ก ์๋ฅธ ๋ค ํ์ด์ง๋ฅผ ํ๋ ์์ ํ ๋นํ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ๋๋ค. ์์ ์ค์ํ์ ํ์ตํ์์ต๋๋ค. ํ์ด์ง ์์คํ ์์๋ ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ์๋ ํ์ด์ง ๋จ์๋ก ์ค์ ์์/์ค์ ์ธ ๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ์ ์๋ ํ์ด์ง๋ค์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ก ํ์ด์ง ์์(Page out)๋๊ณ , ์คํ์ ํ์ํ ํ์ด์ง๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ํ์ด์ง ์ธ(Page in) ๋ฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ ํต์ฌ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก์ธ์ค๋ ์คํ๋ ์ ์๋ค๋ ์ ์ ๋๋ค.ํ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํด ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ์๊ฐ ์๋ค๋ ๋ง์ ๋๋ค. ํ๋ก์ธ์ค๋ฅผ ์ด๋ฃจ๋ ํ์ด์ง ์ค ์คํ์ ํ์ํ ์ผ๋ถ ํ์ด์ง๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ ๋น์ฅ ์คํ์ ํ์ํ์ง ์์ ํ์ด์ง๋ค์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ค์์์ญ์ ์์ด๋ ์คํ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ค์ ํ๋ฒ ์ธ๊ธํ๋ฉด, ํ์ด์ง์ ์ฐ๋ฉด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก์ธ์ค๋ ์คํ๋ ์ ์์ต๋๋ค.
ํ์ด์ง ํ ์ด๋ธ(Page Table)
ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋์ด ์๋ค๋ฉด CPU์ ์ฅ์์๋ ์ด๋์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ๋ฐฐ์น๋์ด ์๋์ง ์์์ผ ํฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง ์์คํ ์์๋ ๋ฌผ๋ฆฌ ์ฃผ์์ ๋ถ์ฐ์์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ๋ฐฐ์น๋๋๋ผ๋ ๋ ผ๋ฆฌ ์ฃผ์์๋ ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋๋๋ก ํ์ด์ง ํ ์ด๋ธ์ ์ด์ฉํฉ๋๋ค. ๋ ผ๋ฆฌ ์ฃผ์๋ CPU๊ฐ ๋ฐ๋ผ๋ณด๋ ์ฃผ์์ด๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํ ์ด๋ธ์ CPU์๊ฒ ๋ค์์ ์คํํ ํ๋ก์ธ์ค๋ฅผ ์๋ ค์ฃผ๋ ์ด์ ํ ์ญํ ์ ํฉ๋๋ค.
ํ๋ก์ธ์ค๋ง๋ค ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฌผ๋ฆฌ์ฃผ์์ ํ๋ ์์ ๋ถ์ฐ์์ ์ผ๋ก ๋ ผ๋ฆฌ์ฃผ์์ ํ์ด์ง๊ฐ ํ ๋น ๋์ด์์ ๋, ํ์ด์ง ํ ์ด๋ธ์ ํ์ด์ง ์์๋๋ก ํด๋น ํ์ด์ง๊ฐ ์ด๋ ํ๋ ์์ ์์นํด ์๋์ง ์๋ ค์ฃผ๊ณ ์์ต๋๋ค.
์ฆ ํ๋ก์ธ์ค๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์ ์ฅ๋์ด ์๋๋ผ๋ CPU ์ ์ฅ์์ ๋ฐ๋ผ๋ณธ ๋ ผ๋ฆฌ ์ฃผ์๋ ์ฐ์์ ์ผ๋ก ๋ณด์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ CPU๋ ๊ทธ์ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ์์ฐจ์ ์ผ๋ก ์คํํ๋ฉด ๋ฉ๋๋ค.
๋ด๋ถ ๋จํธํ(Internal Fragmentation)
ํ์ด์ง์ ํตํด ์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ ๋์ ์ ํ์ด์ง์ ์ฐ๋ฉด ๋ด๋ถ ๋จํธํ๋ผ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ์ด์ง์ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํ์ด์ง๋ผ๋ ์ผ์ ํ ํฌ๊ธฐ ๋จ์๋ก ์๋ฆ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ํ์ด์ง ํฌ๊ธฐ์ ๋ฑ ๋ง๊ฒ ์๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค.
ํ์ด์ง ํฌ๊ธฐ๊ฐ 10KB์ด๊ณ , ํ๋ก์ธ์ค ํฌ๊ธฐ๊ฐ 108KB๋ผ๋ฉด 2KB๋งํผ ๋ด๋ถ ๋จํธํ๊ฐ ์๊น๋๋ค. ๋ด๋ถ ๋จํธํ๋ ํ์ด์ง ํฌ๊ธฐ๋ณด๋ค ์์ ํฌ๊ธฐ๋ก ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ธ๋ถ ๋จํธํ๋ณด๋ค๋ ํจ์ฌ ์์ต๋๋ค. CPU ์ค์ผ์ค๋ง์์ ๋ผ์ด๋๋ก๋น์ ํ์ ์ฌ๋ผ์ด์ค์ ์ ์ ํ ํฌ๊ธฐ๊ฐ ์ค์ํ ๊ฒ์ฒ๋ผ ํ์ด์ง์์๋ ํ์ด์ง์ ํฌ๊ธฐ๊ฐ ์ค์ํฉ๋๋ค. ๋๋ฌด ํฌ๋ฉด ๋ด๋ถ ๋จํธํ๊ฐ ํฌ๊ฒ ์๊ธฐ๊ณ , ๋๋ฌด ์์ผ๋ฉด ํ์ด์ง ํ ์ด๋ธ์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํ ์ด๋ธ์ ๊ณต๊ฐ์ด ๋ญ๋น๋ฉ๋๋ค.
ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ(PTE)
ํ์ด์ง ํ ์ด๋ธ์ ์ ์ฅํ๊ณ ์๋ ์์ฑ ๊ฐ๋ค์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ผ๊ณ ํฉ๋๋ค. ์์ ์๊ฐํ ๊ฒ์ฒ๋ผ ํ์ด์ง ๋ฒํธ์ ํ๋ ์ ๋ฒํธ ์ด์ธ์๋ ์ ์ฅํ๊ณ ์๋ ๊ฒ๋ค์ด ์์ต๋๋ค. ์ค์ํ ์ ๋ณด๋ค์ ๋๋ค.
์ ํจ ๋นํธ
์ ํจ ๋นํธ๋ ํ์ฌ ํด๋น ํ์ด์ง์ ์ ๊ทผ ๊ฐ๋ฅํ์ง ์ฌ๋ถ ์ ๋๋ค. PTE์์ ํ๋ ์ ๋ฒํธ ๋ค์์ผ๋ก ์ค์ํ ์ ๋ณด์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์ด๋ฃจ๋ ๋ชจ๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ง ์์ต๋๋ค. ์ผ๋ถ ํ์ด์ง๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ํจ ๋นํธ๋ ํ์ฌ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์๋์ง ์๋๋ฉด ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๋นํธ์ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์์ผ๋ฉด 1์ด๊ณ , ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์์ผ๋ฉด 0์ ๋๋ค. ๋ง์ฝ ์ ํจ ๋นํธ๊ฐ 0์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ํ์ด์ง ํดํธ(Page Fault)๋ผ๋ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ณดํธ ๋นํธ
๋ณดํธ ๋น๋ ํ์ด์ง ๋ณดํธ ๊ธฐ๋ฅ์ ์ํด ์กด์ฌํ๋ ๋นํธ์ ๋๋ค. ๋ณดํธ ๋นํธ๊ฐ 1์ด๋ฉด ์ฝ๊ธฐ ์ฐ๊ธฐ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ ํ์ด์ง์ด๋ฉฐ 0์ด๋ฉด ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค.
ํ๋ก์ธ์ค์ ์ฝ๋ ์์ญ์ ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค. ๋ฐ๋ผ์ ์ฝ๋ ์์ญ์ ํ์ด์ง๋ ๋ชจ๋ ๋ณดํธ ๋นํธ๊ฐ 0์ด ๋ฉ๋๋ค. ๋ณดํธ๋นํธ๋ ์ธ ๊ฐ์ ๋นํธ๋ก ์ชผ๊ฐ์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค. r/w/x๋ก ๊ตฌ์ฑ๋๋ฉฐ ๋ง์ฝ ๋ณดํธ ๋นํธ๊ฐ 110์ด๋ฉด ์ฝ๊ธฐ, ์ฐ๊ธฐ๋ ๊ฐ๋ฅํ์ง๋ง ์คํ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ฐธ์กฐ ๋นํธ
์ฐธ์กฐ ๋นํธ๋ CPU๊ฐ ์ด ํ์ด์ง๋ฅผ ํ ๋ฒ์ด๋ผ๋ ์ ๊ทผํ ์ ์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
CPU๊ฐ ์ฝ๊ฑฐ๋ ์ด ํ์ด์ง๋ ์ฐธ์กฐ ๋นํธ๊ฐ 1๋ก ์ธํ ๋๊ณ , ํ ๋ฒ๋ ์ฝ๊ฑฐ๋ ์ด ์ ์ด ์๋ ํ์ด์ง๋ 0์ผ๋ก ์ ์ง๋ฉ๋๋ค.
์์ ๋นํธ
CPU๊ฐ ์ฐธ์กฐํด์ ๋ณ๊ฒฝํ ์ ์ด ์๋์ง ์๋์ง๋ฅผ ๋ํ๋ ๋๋ค. ๋ํฐ ๋นํธ(Dirty bit)๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ด ํ์ด์ง๊ฐ ์์ ์ด ๋๋์ง ์ ๋๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๋นํธ์ ๋๋ค. ์์ ๋นํธ๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ผ์ง ๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ฐ๊ธฐ ์์ ์ ํด์ผ ํ๋์ง, ํ ํ์๊ฐ ์๋์ง๋ฅผ ํ๋จํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค. ๋ค์ ๋งํด ๋ฉ๋ชจ๋ฆฌ์์ ์์ ๋ ํ์ด์ง๊ฐ ํ์ด์ง ์์์ผ๋ก ๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ก ๊ฐ์ผ ํ๋ฉด ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์๋ ํ์ด์ง์๋ ์ฐ๊ธฐ ์์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์์ ๋นํธ๋ฅผ ๋ณด๊ณ ํ์ธํ๊ฒ ๋ฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์๋ฆฌ์ฆ ๋ง์ง๋ง, ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค!
์ถ์ฒ: ํผ์๊ณต๋ถํ๋ ์ปดํจํฐ๊ตฌ์กฐ+์ด์์ฒด์
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ๋ ์ ํ ๋น (1) | 2023.11.11 |
---|---|
์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Memory Allocation) (2) | 2023.11.06 |
ํ๋ก์ธ์ค ๋๊ธฐํ ๊ธฐ๋ฒ (0) | 2023.11.06 |
CPU ์ค์ผ์ค๋ง ๊ฐ๋ ๊ณผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.11.05 |
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ (0) | 2023.10.31 |
๋๊ธ