ํฐ์คํ ๋ฆฌ ๋ทฐ
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋? (VM์ด๋?)
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 19. 18:53๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋?
ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ํ๋์จ์ด์ ์ํ๋ฅผ ์ฝ๊ฑฐ๋ ๊ฐฑ์ ํฉ๋๋ค. ์ด๋ ํ๋ก๊ทธ๋จ ์คํ ์ ํ์ํ ์ฃผ์, ์ ๋ณด๋ค์ ์ ์ฅํ๊ณ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ๋ช ๋ น์ด๋ค์ ๊ฐ์ง๊ณ ์์ด ์ฝ๊ณ ์ฐ๋ ๋ฐ์ดํฐ๋ค์ ๊ด๋ฆฌํด์ค๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ ๊ฑฐ๋ํ ๋ฐ์ดํธ์ ๋ฐฐ์ด์ธ ์ฃผ์๊ณต๊ฐ์ผ๋ก ํต์์ ์ผ๋ก RAM, ์ฆ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ปํฉ๋๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
ํ๋์ PC๋ ๋๋ถ๋ถ ํฐ ๋ ธ์ด๋ง ๊ตฌ์กฐ ๊ธฐ๋ฐ์ผ๋ก, ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ์ฝ๋์ ์ ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ก๋ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋๋ณด๋ค ๋ ํฐ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ถ๊ฐ๋ฅํ์ต๋๋ค. ํ์ง๋ง, ๋ฆฌ๋ ์ค ํ๋ก์ธ์ค๋ ํ๋์ 4GB์ธ๋ฐ, ํต์์ ์ธ ๋ฉ๋ชจ๋ฆฌ 8GB ๋๋ 16GB์ด๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฑ์ฅํ์ต๋๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋?
์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ๊ณผ ์ฌ์ฉ์์ ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ ๋ถ๋ฆฌํ ๊ฒ์ ๋๋ค. ์ฆ, ํ๋ก์ธ์ค๋ฅผ ์คํํ ๋ ์คํ์ ํ์ํ ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ณ ๋๋จธ์ง๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์ ๋๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํ์ ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ ๋ง์ด ์ ๊ณตํด์ฃผ๊ธฐ ์ํด ๊ฐ์์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํ๊ณ
- ๋ชจ๋ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ์๊ฐ ์์
- ํ๋ก๊ทธ๋จ์ ๊ต์ฒดํ๋ฉด์ ์ฌ๋ฆฌ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ต์ฒด ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฅ์
- ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒ์ฒ๋ผ ์ํ
- ํ๋ก๊ทธ๋จ ์ฉ๋์ด ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ์ปค๋ ๋จ
- ๋ ๋ง์ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํ ํ ์ ์์(๋ฉํฐํ์คํน)
- ๊ฐ์์ ์ฃผ์ ๊ณต๊ฐ์ ์ฌ์ฉ ํด ๋ ผ๋ฆฌ์ ์ธ ์ฐ์์ฑ ์ ๊ณต
์ ๋ฆฌํ์๋ฉด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ํ๋๋ก ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์ด์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ถ์ํํ์ฌ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ณด์ด๊ฒ ํ๋ ๊ฒ!
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ MMU
MMU(Memory Management Unit)๋ ํ๋์จ์ด ์นฉ์ผ๋ก, ๊ฐ์ ์ฃผ์์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. CPU๊ฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ ๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ณ , ์ค์ ํด๋น ๊ฐ์ ์ฃผ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ๋๋ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ์ ๊ทผํด์ ์ํ๋ฉ๋๋ค. ์ด๋ MMU(Memory Management Unit)๋ฅผ ํตํด ๋ ผ๋ฆฌ(๊ฐ์)์ฃผ์, ๋ฌผ๋ฆฌ์ฃผ์๋ฅผ ๋๋์ด ์ฌ์ฉํจ์ผ๋ก์จ CPU๋ฅผ ์์ผ ์ ์์ต๋๋ค.
- ๊ฐ์ ์ฃผ์(Virtual Address) : ํ๋ก์ธ์ค๊ฐ ์ฐธ์กฐํ๋ ์ฃผ์ (0~4GB) (๊ฐ์์ ์ผ๋ก ์ฃผ์ด์ง ์ฃผ์)
- ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address) : ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ (0~4GB ์ค ์ผ๋ถ)
CPU๋ ๋ฌด์ ๊ฑด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ง์ ์ฐธ์กฐํ๊ณ , MMU๋ ์ด๋ ๊ฐ์ ์ฃผ์๊ฐ ์ด๋ ๋ฌผ๋ฆฌ ์ฃผ์์ ๋งค์นญ ๋๋์ง ํ์ธํ๊ณ ๋งค์นญ๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํฉ๋๋ค. ์ ๊ทผ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์์ data๋ฅผ CPU์๊ฒ ์ ๋ฌํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด MMU์ ์ํด ๊ฐ์ ์ฃผ์๋ฅผ ์ค์ ์ฃผ์๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๋ ์ค์ ์ฃผ์๋ฅผ ์์ํ ํ์ ์์ด ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ ์ ์๊ฒ ๋ฉ๋๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๋ฆฌ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ์ฃผ์์ ์ค์ ์ฃผ์๊ฐ ๋งคํ๋์ด ์๊ณ ํ๋ก์ธ์ค์ ์ฃผ์ ์ ๋ณด๊ฐ ๋ค์ด ์๋ 'ํ์ด์ง ํ ์ด๋ธ'๋ก ๊ด๋ฆฌ๋ฉ๋๋ค.
์ด๋, MMU๋ ์๋ ํฅ์์ ์ํด *TLB๋ผ๋ ์บ์ฑ ๊ณ์ธต์ ํตํด์ ํ์ด์ง ํ ์ด๋ธ์ ์ ๊ทผํ๊ฒ ๋ฉ๋๋ค.
*TLB: ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์๋ ์ฃผ์ ๋ณํ์ ์ํ ์บ์๋ก, ํ์ด์ง ํ ์ด๋ธ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ๋ณด๊ดํ๋ฉฐ CPU๊ฐ ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ง ์๋๋กํด ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ ์บ์ ๊ณ์ธต
ํ์ด์ง ํดํธ๋?
*ํ์ด์ง ํดํธ(page fault)๋ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์๋ ์กด์ฌํ์ง๋ง RAM์๋ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
*ํ์ด์ง: ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์
*ํ๋ ์: ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์
์ค์ํ์ด๋?
์ด์์ฒด์ ๋ ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ฉด ์ค์ํ์ ํตํด ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ์ง ์์ ๊ฒ์ฒ๋ผ ๋ง๋ญ๋๋ค. ์ฆ, ๋น์ฅ ์ฌ์ฉํ์ง ์๋ ์์ญ์ ํ๋๋์คํฌ๋ก ์ฎ๊ธฐ๊ณ , ํ๋๋์คํฌ์ ์ผ๋ถ๋ถ์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ถ๋ฌ์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ์ฌ ์ค์ํ์ด ์๋ํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- CPU๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ธํ์ฌ ํด๋น ํ์ด์ง๊ฐ ์์ผ๋ฉด ํธ๋ฉ์ ๋ฐ์ํด์ OS์๊ฒ ์๋ฆผ
- OS๋ CPU์ ๋์์ ์ ์ ๋ฉ์ถค
- OS๋ ํ์ด์ง ํ ์ด๋ธ์ ํ์ธํ์ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๊ณ , ์์ผ๋ฉด ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด ์๋ ํ๋ฆฌ์์ด ์๋์ง ์ฐพ์. ์ด๋, ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์๋ ์์ผ๋ฉด ์ค์ํ์ด ๋ฐ๋
- ๋น์ด ์๋ ํ๋ ์์ ํด๋น ํ์ด์ง๋ฅผ ๋ก๋ํ๊ณ , ํ์ด์ง ํ ์ด๋ธ์ ์ต์ ํ ํจ
- ์ค๋จ๋์๋ CPU๋ฅผ ๋ค์ ์์
์ค๋ ์ฑ(thrashing)์ด๋?
์ค๋ ์ฑ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํดํธ๊ฐ ๋๋ฌด ๋ง์ด ์ผ์ด๋๋ ์ํฉ์ ์๋ฏธํ๋ฉฐ, ์ด๋ ์ปดํจํฐ์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค. ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฌ๋ผ๊ฐ์ ์ค์ํ์ด ๋ง์ด ์ผ์ด๋๋ ์ํฉ์ ๋๋ค.
์ค๋ ์ฑ์ด ์ผ์ด๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง
- CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๋ฉด OS๋ ๊ฐ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆผ
- ์ด์ ๊ฐ์ ์ ์ํ์ด ๋ฐ๋ณต๋๋ฉฐ ์ค๋ ์ฑ์ด ๋ฐ์
๋ฐ๋ผ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฆฌ๊ฑฐ๋, ์ฌ์ฉ์ค์ธ HDD๋ฅผ SDD๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ํ OS์ธก๋ฉด์์๋ ์์ ์ธํธ์ PFF ๋ฑ์ ์ด์ฉํฉ๋๋ค.
- ์์ ์ธํธ(working set): ํ๋ก์ธ์ค์ ๊ณผ๊ฑฐ ์ฌ์ฉ ์ด๋ ฅ์ธ ์ง์ญ์ฑ(locality)๋ฅผ ํตํด ๊ฒฐ์ ๋ ํ์ด์ง ์งํฉ์ ๋ง๋ค์ด ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๊ฒ์ผ๋ก, ํ์ ๋น์ฉ๊ณผ ์ค์ํ์ ์ค์ผ ์ ์์.
- PFF(Page Fault Frequency): ํ์ด์ง ํดํธ ๋น๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ํ์ ๊ณผ ํํ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ผ๋ก, ์ํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ๋๋ฆฌ๊ณ ํํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ์ค์.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๋ฆฌ ๊ธฐ๋ฒ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๋ฆฌ ๊ธฐ๋ฒ์๋ ํฌ๊ฒ ํ์ด์ง๊ณผ ์ธ๊ทธ๋จผํ ์ด์ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํด๋น ๋ฐฉ๋ฒ์ ๋ํด์๋ ์๋ ํฌ์คํ ์์ ์์ธํ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
[์ฐธ๊ณ ]
https://eunjinii.tistory.com/61
https://steady-coding.tistory.com/524
https://technote-mezza.tistory.com/92
'CS > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ๋๊ธฐ์ ๋น๋๊ธฐ, Blocking๊ณผ Non-Blocking (0) | 2022.10.19 |
---|---|
[์ด์์ฒด์ ] Unix์ Linux๋? + (Shell Script๋?) (1) | 2022.10.18 |
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ์ค๋ ๋ (1) | 2022.09.25 |
[์ด์์ฒด์ ] ๋ฌธ๋งฅ ๊ตํ(Context Switching)์ด๋? (0) | 2022.07.23 |
[์ด์์ฒด์ ] ํ์ด์ง๊ณผ ์ธ๊ทธ๋จผํ ์ด์ (0) | 2022.07.20 |
- Total
- Today
- Yesterday
- ์ด๋ถํ์
- ์ ์ญ ๋ณ์
- ํ๋กํ ์ฝ
- map
- ๋ฐฑ์ค
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ๋คํธ์ํฌ
- ์๋ฐ์คํฌ๋ฆฝํธ
- http
- ์ด์์ฒด์
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ํฌํฌ์ธํฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ์นด์นด์ค ์ธํด
- ์๋ฐ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ์ฝ๋ฉํ ์คํธ
- ๋ฐฑ์ค javascript
- git
- fp
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- JavaScript
- ๋ฐฑ์ค node.js
- Baekjoon
- TDD
- ๋ ์์ปฌ ํ๊ฒฝ
- ๋์์ธ ํจํด
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋กํผํฐ
- ์๊ณ ๋ฆฌ์ฆ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |