[์ด์์ฒด์ ] ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ)
์ด์์ฒด์ ์ ๋ํ์ ์ธ ํ ์ผ ์ค ํ๋์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๊ด๋ จํด์ ํฌ์คํ ํด๋ณด๋ ค ํ๋ค!
์ด์์ฒด์ ๋ ์ปดํจํฐ ๋ด์ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด์ผ ํ๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ํ๋๋ก, ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์ด์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ถ์ํํด์ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ณด์ด๊ฒ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค.
์ฆ, ์ฌ์ฉ์์๊ฒ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ง์ ๋ณด์ด๊ฒ ํ๋ ๊ธฐ์ ๋ค.
์ด๋ค ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋ ๋ฉ๋ชจ๋ฆฌ์ ํด๋น ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ์ฌ๋ผ๊ฐ์ง ์๋๋ผ๋ ์คํ ๊ฐ๋ฅํ๋ค๋ ์ ์์ ๊ณ ์๋์๋ค.
ํ๋ก์ธ์ค๋ฅผ ์คํํ ๋ ์คํ์ ํ์ํ ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ณ ๋๋จธ์ง๋ ๋์คํฌ์ ๋๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฐ์์ ์ผ๋ก ์ฃผ์ด์ง ์ฃผ์๋ฅผ '๊ฐ์ ์ฃผ์(Logical address)'๋ผ ํ๋ฉฐ, ์ค์ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ ์ฃผ์๋ฅผ '์ค์ ์ฃผ์(Physical address)'๋ผ ํ๋ค.
๊ฐ์ ์ฃผ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น(MMU)์ ์ํด ์ค์ ์ฃผ์๋ก ๋ณํ๋๋ฉฐ, ์ด ๋๋ถ์ ์ฌ์ฉ์๋ ์ค์ ์ฃผ์๋ฅผ ์์ํ ํ์ ์์ด ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ ์ ์๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ์ฃผ์์ ์ค์ ์ฃผ์๊ฐ ๋งคํ๋์ด ์๊ณ , ํ๋ก์ธ์ค์ ์ฃผ์ ์ ๋ณด๊ฐ ๋ค์ด ์๋ 'ํ์ด์ง ํ ์ด๋ธ'๋ก ๊ด๋ฆฌ๋๋ค.
์ด๋, ์๋ ํฅ์์ ์ํด TLB๋ฅผ ์ด๋ค.
* TLB(Translation Lookaside Buffer) : ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์๋ ์ฃผ์ ๋ณํ์ ์ํ ์บ์์ด๋ค. ํ์ด์ง ํ ์ด๋ธ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ๋ณด๊ดํ๋ฉฐ CPU๊ฐ ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ง ์๋๋ก ํ๊ธฐ ํด์ ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ ์บ์ ๊ณ์ธต์ด๋ค.
์ค์ํ(swapping)
๋ง์ฝ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์กด์ฌํ์ง๋ง, ์ค์ ๋ฉ๋ชจ๋ฆฌ์ธ RAM์๋ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ ์ฝ๋์ ์ ๊ทผํ ๊ฒฝ์ฐ, ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋น์ฅ ์ฌ์ฉํ์ง ์๋ ์์ญ์ ํ๋๋์คํฌ๋ก ์ฎ๊ธฐ๊ณ ํ๋๋์คํฌ์ ์ผ๋ถ๋ถ์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ถ๋ฌ์ ์ฐ๋ ๊ฒ์ ์ค์ํ์ด๋ผ ํ๋ค. ์ด๋ฅผ ํตํด ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ง๋ ๋ค.
ํ์ด์ง ํดํธ ์ธ์๋ ํ๋ก์ธ์ค๋ฅผ ์ถ๊ฐํ ์ ์์ ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ ์ฐฌ ์ํ์์ ํ๋ก์ธ์ค๋ฅผ ์ถ๊ฐํด์ผ ํ ๊ฒฝ์ฐ, ์ค๋ ๊ธฐ๊ฐ ๋๊ธฐ ์ํ์ธ ํ๋ก์ธ์ค๋ฅผ ์ ์ ํ๋๋์คํฌ๋ก ์ฎ๊ธฐ๊ณ (Swap-out), ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์คํํ ์ ์๋ค. ์ด๋ ํ๋๋์คํฌ์ ์ฎ๊ฒจ๋ ํ๋ก์ธ์ค์์ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ฌ ๋๊ธฐ ์ํ๊ฐ ์ข ๋ฃ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.(Swap-in)
ํ์ด์ง ํดํธ(page fault)
ํ์ด์ง ํดํธ๋ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์๋ ์กด์ฌํ์ง๋ง ์ง๊ธ ์ด ์ปดํจํฐ์ RAM์๋ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค.
ํ์ด์ง ํดํธ์ ๊ทธ๋ก ์ธํ ์ค์ํ์ ๋ค์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- CPU๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ธํ์ฌ ํด๋น ํ์ด์ง๊ฐ ์์ผ๋ฉด ํธ๋ฉ์ ๋ฐ์ํด์ ์ด์์ฒด์ ์ ์๋ฆฐ๋ค.
- ์ด์์ฒด์ ๋ CPU์ ๋์์ ์ ์ ๋ฉ์ถ๋ค.
- ์ด์์ฒด์ ๋ ํ์ด์ง ํ ์ด๋ธ์ ํ์ธํ์ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๊ณ , ์์ผ๋ฉด ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด ์๋ ํ๋ ์์ด ์๋์ง ์ฐพ๋๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์๋ ์๋ค๋ฉด ์ค์ํ์ด ๋ฐ๋๋๋ค.
- ๋น์ด ์๋ ํ๋ ์์ ํด๋น ํ์ด์ง๋ฅผ ๋ก๋ํ๊ณ , ํ์ด์ง ํ ์ด๋ธ์ ์ต์ ํํ๋ค.
- ์ค๋จ๋์๋ CPU๋ฅผ ๋ค์ ์์ํ๋ค.
* ํ์ด์ง : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์
* ํ๋ ์ : ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ๋จ์ ํฌ๊ธฐ
์ค๋ ์ฑ(thrashing)
์ค๋ ์ฑ์ ํ์ด์ง์ ๋ฉ๋ชจ๋ฆฌ ํดํธ์จ์ด ๋์ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ ์ปดํจํฐ์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ๋ค.
์ค๋ ์ฑ์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฌ๋ผ๊ฐ์ ์ค์ํ์ด ๋ง์ด ์ผ์ด๋๋ฉด ๋ฐ์ํ๋ค.
ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋๋ฉด ํด๋น ํ์ด์ง ํดํธ๋ฅผ ์์์ ์ธ๊ธํ ๊ณผ์ ์ ํตํด ์ฒ๋ฆฌํ๋ ๋์ CPU๊ฐ ๋ฉ์ถ๋ฉด์ CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๋ค.
CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๊ฒ ๋๋ฉด ์ด์์ฒด์ ๋ CPU๊ฐ ํ๊ฐํ ์ค ์๊ณ ๊ฐ์ฉ์ฑ์ ๋ ๋์ด๊ธฐ ์ํด ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
์ด์ ๊ฐ์ ์ ์ํ์ด ๋ฐ๋ณต๋๋ฉด์ ์ค๋ ์ฑ์ด ์ผ์ด๋๊ฒ ๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฆฌ๊ฑฐ๋, HDD๋ฅผ ์ฌ์ฉํ๋ค๋ฉด HDD๋ฅผ SSD๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์ด์ธ์ ์ด์์ฒด์ ์์ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์์
์ธํธ(working set)
- ํ๋ก์ธ์ค์ ๊ณผ๊ฑฐ ์ฌ์ฉ ์ด๋ ฅ์ธ ์ง์ญ์ฑ์ ํตํด ๊ฒฐ์ ๋ ํ์ด์ง ์งํฉ์ ๋ง๋ค์ด์, ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๊ฒ์ด๋ค.
- ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ฉด ํ์์ ๋๋ ๋น์ฉ์ ์ค์ผ ์ ์๊ณ ์ค์ํ ๋ํ ์ค์ผ ์ ์๋ค.
- PFF(Page Fault Frequency)
- ํ์ด์ง ํดํธ ๋น๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ํ์ ๊ณผ ํํ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ง์ฝ ์ํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ก์ธ์ค๊ฐ ๋ ๋ง์ ํ๋ ์์ด ํ์ํ๋ค๋ ๋ป์ด๋ฏ๋ก ํ๋ ์์ ๋๋ฆฌ๊ณ , ํํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ก์ธ์ค๊ฐ ๋๋ฌด ๋ง์ ํ๋ ์์ ๊ฐ์ง๊ณ ์๋ค๋ ๋ป์ด๋ฏ๋ก ํ๋ ์์ ์ค์ด๋ ๊ฒ์ด๋ค.