-
[ ๋ฉด์ ์ ์ํ cs ์ ๊ณต์ง์ ๋ ธํธ ์ ๋ฆฌ ] 3.์ด์์ฒด์ : ๋ฉ๋ชจ๋ฆฌBook 2024. 4. 17. 15:33๋ฐ์ํ
3.2 ๋ฉ๋ชจ๋ฆฌ
3.2.1 ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต
3.2.2 ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
3.1 ๋ฉ๋ชจ๋ฆฌ
CPU๋ '๋ฉ๋ชจ๋ฆฌ'์ ์ฌ๋ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ค์ ์คํํ ๋ฟ์ด๋ค.
3.2.1 ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต
• ๋ ์ง์คํฐ : CPU์์ ์๋ ์์ ๋ฉ๋ชจ๋ฆฌ, ํ๋ฐ์ฑ, ์๋ ๊ฐ์ฅ ๋น ๋ฅด๋ฉฐ ๊ธฐ์ต ์ฉ๋์ด ๊ฐ์ฅ ์ ๋ค.
• ์บ์ : L1, L2 ์บ์๋ฅผ ์ง์นญํ๋ฉฐ ํ๋ฐ์ฑ, ์๋ ๋น ๋ฆ, ๊ธฐ์ต ์ฉ๋์ด ์ ๋ค.
• ์ฃผ๊ธฐ์ต์ฅ์น : RAM์ ๊ฐ๋ฆฌํค๋ฉฐ, ํ๋ฐ์ฑ, ์๋ ๋ณดํต, ๊ธฐ์ต ์ฉ๋๋ ๋ณดํต์ด๋ค.• ๋ณด์กฐ๊ธฐ์ต์ฅ์น : HDD, SSD๋ฅผ ์ผ์ปฌ์ผ๋ฉฐ ๋นํ๋ฐ์ฑ, ์๋ ๋ฎ์, ๊ธฐ์ต์ฉ๋์ด ๋ง๋ค.
๋จ์ ํ๋๋์คํฌ๋ก๋ถํฐ ์ผ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์ ์์ ์ ์ฅํ๊ณ ์ด๋ฅผ ํ์ ์๋ง๋ค CPU์ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค. ๊ณ์ธต ์๋ก ์ฌ๋ผ๊ฐ์๋ก ๊ฐ๊ฒฉ์ ๋น์ธ์ง๋๋ฐ ์ฉ๋์ ์์์ง๊ณ ์๋๋ ๋นจ๋ผ์ง๋ ํน์ง์ด ์๋ค.
์ด๋ฌํ ๊ณ์ธต์ด ์๋ ์ด์ ๋ ๊ฒฝ์ ์ฑ๊ณผ ์บ์๋๋ฌธ์ผ๋ก RAM๊ณผ SSD์ ๊ฐ๊ฒฉ์ด ๋ฌ๋ผ ๊ณ์ธต์ ๋์ด ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์๋ฅผ๋ค์ด ์น์ฌ์ดํธ ์คํ ์ค '๋ก๋ฉ ์ค'์ด๋ผ๋ ๋ฉ์์ง๊ฐ ๋์ค๋ ๊ฑด ํ๋๋์คํฌ ๋๋ ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด RAM์ผ๋ก ์ ์กํ๋ ๊ณผ์ ์ด ์์ง ๋๋์ง ์์์ ์๋ฏธํ๋ค.
- ์บ์(cache)
๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ ์ฅ์์ด์ ๋น ๋ฅธ ์ฅ์น์ ๋๋ฆฐ ์ฅ์น์์ ์๋ ์ฐจ์ด์ ๋ฐ๋ฅธ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ์ด๋ค.
์บ์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ๋ค์ ๊ณ์ฐํ๋ ์๊ฐ์ ์ ์ฝํ ์ ์๋ค.
์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ CPU์ฌ์ด์ ์๋ ์ฐจ์ด๊ฐ ๋๋ฌด ํฌ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค๊ฐ์ ๋ ์ง์คํฐ ๊ณ์ธต์ ๋ฌ์ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๋๋ฐ, ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ์ธต๊ณผ ๊ณ์ธต ์ฌ์ด์ ์ด์ด ๊ณ์ธต์ ์บ์ฑ ๊ณ์ธต์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น ์ฌ์ด์ ์๋ ์ฃผ๊ธฐ์ต์ฅ์น๋ฅผ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์บ์ฑ ๊ณ์ธต์ด๋ผ๊ณ ํ ์ ์๋ค.
- ์ง์ญ์ฑ์ ์๋ฆฌ
์บ์ ๊ณ์ธต์ ๋๋ ๊ฒ ๋ง๊ณ ์บ์๋ฅผ ์ง์ ์ค์ ํ ๋๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ํด์ผ ํ๋๋ฐ ๊ทธ ๊ทผ๊ฑฐ๊ฐ ๋๋ ๊ฒ์ด ๋ฐ๋ก ์ง์ญ์ฑ์ด๋ค. ์ง์ญ์ฑ์ ์๊ฐ์ง์ญ์ฑ๊ณผ ๊ณต๊ฐ์ง์ญ์ฑ ๋ ๊ฐ์ง๋ก ๋๋๋ค.
* ์๊ฐ์ง์ญ์ฑ(temporal locality)
์ต๊ทผ ์ฌ์ฉํ ๋ฐ์ดํฐ์ ๋ค์ ์ ๊ทผํ๋ ค๋ ํน์ฑ์ ๋งํ๋ค.
* ๊ณต๊ฐ์ง์ญ์ฑ(spatial locality)
์ต๊ทผ ์ ๊ทผํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๊ณต๊ฐ์ด๋ ๊ทธ ๊ฐ๊น์ด ๊ณต๊ฐ์ ์ ๊ทผํ๋ ํน์ฑ์ ๋งํ๋ค.
- ์บ์ํํธ์ ์บ์๋ฏธ์ค
์บ์์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ค๋ฉด ์บ์ํํธ, ํด๋น ๋ฐ์ดํฐ๊ฐ ์บ์์ ์์ผ๋ฉด ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ค๋ ๊ฒ์ ์บ์๋ฏธ์ค๋ผ๊ณ ํ๋ค.
- ์บ์๋งคํ
์บ์๊ฐ ํํธ๋๊ธฐ ์ํด ๋งคํํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ฉฐ CPU์ ๋ ์ง์คํฐ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ(RAM)๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ํ๋ค.
๋ ์ง์คํฐ๋ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ๋นํ๋ฉด ๊ต์ฅํ ์๊ณ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ ๊ต์ฅํ ํฌ๊ธฐ ๋๋ฌธ์ ์์ ๋ ์ง์คํฐ๊ฐ ์บ์ ๊ณ์ธต์ผ๋ก์จ ์ญํ ์ ํด์ฃผ๋ ค๋ฉด ์ด ๋งคํ์ ์ด๋ป๊ฒ ํด์ฃผ๋์ง๊ฐ ์ค์ํ๋ค.
์ด๋ฆ ์ค๋ช ์ง์ ๋งคํ (directed mapping) ๋ฉ๋ชจ๋ฆฌ๊ฐ 1~100์ด ์๊ณ ์บ์๊ฐ 1~10์ด ์๋ค๋ฉด 1:1~10, 2:1~20 ๊ณผ ๊ฐ์ ์์ผ๋ก ๋งคํํ๋ ๊ฒ์ ๋งํ๋ฉฐ, ์ฒ๋ฆฌ๊ฐ ๋น ๋ฅด์ง๋ง ์ถฉ๋ ๋ฐ์์ด ์ฆ๋ค. ์ฐ๊ด ๋งคํ (associative mapping) ์์๋ฅผ ์ผ์น์ํค์ง ์๊ณ ๊ด๋ จ ์๋ ์บ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋งคํํ๋ค. ์ถฉ๋์ด ์ ์ง๋ง ๋ชจ๋ ๋ธ๋ก์ ํ์ํด์ผ ํด์ ์๋๊ฐ ๋๋ฆฌ๋ค. ์งํฉ ์ฐ๊ด ๋งคํ (set associative mapping) ์ง์ ๋งคํ๊ณผ ์ฐ๊ด ๋งคํ์ ํฉ์ณ ๋์ ๊ฒ์ผ๋ก ์์๋ ์ผ์น์ํค์ง๋ง ์งํฉ์ ๋ฌ์ ์ ์ฅํ๋ฉฐ ๋ธ๋กํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฒ์์ ์ข ๋ ํจ์จ์ ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ 1~100์ด ์๊ณ ์บ์๊ฐ 1~10์ด ์๋ค๋ฉด ์บ์ 1~5์๋ 1~50์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์์๋ก ์ ์ฅ์ํค๋ ๊ฒ์ ๋งํ๋ค. - ์น ๋ธ๋ผ์ฐ์ ์ ์บ์
* ์ฟ ํค
๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์๋ก,
same site ์ต์ ์ strict๋ก ์ค์ ํ์ง ์์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์์ ์์ฒญํ์ ๋ ์๋ ์ ์ก๋๋ฉฐ, 4KB๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ณ ๋ง๋ฃ๊ธฐํ์ ์ ํ ์ ์๋ค.
์ฟ ํค๋ฅผ ์ค์ ํ ๋๋ document.coockie๋ก ์ฟ ํค๋ฅผ ๋ณผ ์ ์๊ฒ httponly์ต์ ์ ๊ฑฐ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ํด๋ผ์ด์ธํธ ๋๋ ์๋ฒ์์ ๋ง๋ฃ๊ธฐํ์ ์ ํ ์ ์๋๋ฐ ๋ณดํต ์๋ฒ์์ ์ ํ๋ค.
* ๋ก์ปฌ ์คํ ๋ฆฌ์ง
๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์๋ก,
10MB๊น์ง ์ ์ฅํ ์ ์์ผ๋ฉฐ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์ง๋๊ณ ๋๋ฉ์ธ ๋จ์๋ก ์ ์ฅ, ์์ฑ๋๋ค.
HTML5๋ฅผ ์ง์ํ์ง ์๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ์์๋ง ์์ ๊ฐ๋ฅํ๋ค.
* ์ธ์ ์คํ ๋ฆฌ์ง
๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์๋ก,
ํญ ๋จ์๋ก ์ธ์ ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๋ฉฐ, ํญ์ ๋ซ์ ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ฉฐ 5MB๊น์ง ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค
HTML5๋ฅผ ์ง์ํ์ง ์๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ์์๋ง ์์ ๊ฐ๋ฅํ๋ค. - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์บ์ฑ ๊ณ์ธต
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๊ตฌ์ถํ ๋๋ ๋ฉ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ๋ ๋์ค(redis) ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ณ์ธต์ ์บ์ฑ๊ณ์ธต์ผ๋ก ๋์ด ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ๋ ํ๋ค.
3.2.2 ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
์ด์์ฒด์ ์ ์ญํ ์ค ํ๋์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ์ปดํจํฐ ๋ด์ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ทนํ์ผ๋ก ํ์ฉํ ์ ์๊ฒ ํ๋ค.
- ๊ฐ์๋ฉ๋ชจ๋ฆฌ(virtual memory)
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ํ๋๋ก ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์ด์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ถ์ํํ์ฌ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์๊ฒ ๋งค์ฐ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ณด์ด๊ฒ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค.
๊ฐ์์ ์ผ๋ก ์ฃผ์ด์ง ์ฃผ์๋ฅผ ๊ฐ์์ฃผ์(logical address)๋ผ๊ณ ํ๋ฉฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ ์ฃผ์๋ฅผ ์ค์ ์ฃผ์(physical address)๋ผ๊ณ ํ๋ค. ๊ฐ์ ์ฃผ์๋ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ์ฅ์น(MMU, Memory Management Unit)์ ์ํด ์ค์ ์ฃผ์๋ก ๋ณํ๋๋ฉฐ ์ด ๋๋ถ์ ์ฌ์ฉ์๋ ์ค์ ์ฃผ์๋ฅผ ์์ํ ํ์ ์์ด ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ ์ ์๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ์ฃผ์์ ์ค์ ์ฃผ์๊ฐ ๋งคํ๋์ด ์๊ณ ํ๋ก์ธ์ค์ ์ฃผ์ ์ ๋ณด๊ฐ ๋ค์ด ์๋ 'ํ์ด์ง ํ ์ด๋ธ'๋ก ๊ด๋ฆฌ๋๋๋ฐ ์ด ๋ ์๋ ํฅ์์์ํด *TLB๋ฅผ ์ด๋ค.
* TBL(Translation Lookaside Buffer, ๋ณํ์์ธ๋ฒํผ)
๋ฉ๋ชจ๋ฆฌ์ CPU์ฌ์ด์ ์๋ ์ฃผ์ ๋ณํ์ ์ํ ์บ์๋ก ํ์ด์ง ํ ์ด๋ธ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ๋ณด๊ดํ๋ฉฐ CPU๊ฐ ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ง ์๋๋ก ํด ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ ์บ์ ๊ณ์ธต์ด๋ค.
- ์ค์ํ(swapping)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์กด์ฌํ์ง๋ง ์ค์ ๋ฉ๋ชจ๋ฆฌ์ธ RAM์๋ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ ์ฝ๋์ ์ ๊ทผํ ๊ฒฝ์ฐ ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋น์ฅ ์ฌ์ฉํ์ง ์๋ ์์ญ์ ํ๋๋์คํฌ๋ก ์ฎ๊ธฐ๊ณ ํ๋๋์คํฌ์ ์ผ๋ถ๋ถ์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ถ๋ฌ์ ์ฐ๋ ๊ฒ์ ์ค์ํ์ด๋ผ๊ณ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ง์น ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ง๋ ๋ค. - ํ์ด์งํดํธ(page falut)
ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์๋ ์กด์ฌํ์ง๋ง ์ง๊ธ ์ด ์ปดํจํฐ์ RAM์๋ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค.
ํ์ด์งํดํธ์ ๊ทธ๋ก ์ธํ ์ค์ํ์ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
โ CPU๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ธํ์ฌ ํด๋น ํ์ด์ง(page, ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ํ๋ ์ต์ ํฌ๊ธฐ ๋จ์)๊ฐ ์์ผ๋ฉด ํธ๋ฉ์ ๋ฐ์ํด์ ์ด์์ฒด์ ์๋ฆฐ๋ค.
โ ์ด์์ฒด์ ๋ CPU์ ๋์์ ์ ์ ๋ฉ์ถ๋ค.
โ ์ด์์ฒด์ ๋ ํ์ด์ง ํ ์ด๋ธ์ ํ์ธํ์ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๊ณ , ์์ผ๋ฉด ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด ์๋ ํ๋ ์(frame, ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์)์ด ์๋์ง ์ฐพ๋๋ค. ๋ง์ฝ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์๋ ์๋ค๋ฉด ์ค์ํ์ด ๋ฐ๋๋๋ค.
โ ๋น์ด ์๋ ํ๋ ์์ ํด๋น ํ์ด์ง๋ฅผ ๋ก๋ํ๊ณ , ํ์ด์ง ํ ์ด๋ธ์ ์ต์ ํํ๋ค.
โ ์ค๋จ๋์๋ CPU๋ฅผ ๋ค์ ์์ํ๋ค.
- ์ค๋ ์ฑ(thrashing)
๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํดํธ์จ์ด ๋์ ๊ฒ์ ์๋ฏธํ๋ฉฐ, ์ด๋ ์ปดํจํฐ์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ๋ค.
์ค๋ ์ฑ์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ฉด ์ค์ํ์ด ๋ง์ด ์ผ์ด๋์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๋ค. CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๊ฒ ๋๋ฉด ์ด์์ฒด์ ๋ ๊ฐ์ฉ์ฑ์ ๋ ๋์ด๊ธฐ ์ํด ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋๋ ์ ์ํ์ ํตํด ์ค๋ ์ฑ์ด ์ผ์ด๋๊ฒ ๋๋ค.
์ค๋ ์ฑ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ HDD๋ฅผ ์ฌ์ฉํ๋ค๋ฉด HDD๋ฅผ SSD๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ด ์๊ณ , ์ด์์ฒด์ ์์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์์ ์ธํธ์ PFF๊ฐ ์๋ค.
- ์์
์ธํธ(working set)
ํ๋ก์ธ์ค์ ๊ณผ๊ฑฐ ์ฌ์ฉ ์ด๋ ฅ์ธ ์ง์ญ์ฑ์ ํตํด ๊ฒฐ์ ๋ ํ์ด์ง ์งํฉ์ ๋ง๋ค์ด์ ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๊ฒ์ ๋งํ๋ค.
๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ฉด ํ์์ ๋๋ ๋น์ฉ์ ์ค์ผ ์ ์๊ณ ์ค์ํ๋ ์ค์ผ ์ ์๋ค. - PFF(Page Fault Frequency)
ํ์ด์ง ํดํธ ๋น๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ํ์ ๊ณผ ํํ์ ์ ๋ง๋ ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ๋๋ฆฌ๊ณ ํํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ์ค์ด๋ ๊ฒ์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ ํ ๋นํ ๋๋ ์์ ๋ฉ๋ชจ๋ฆฌ ์์น, ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋นํ๋๋ฐ ์ฐ์ํ ๋น๊ณผ ๋ถ์ฐ์ ํ ๋น์ผ๋ก ๋๋๋ค.
- ์ฐ์ํ ๋น
๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ค.
* ๊ณ ์ ๋ถํ ๋ฐฉ์(fixed parition allocation)
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋๋์ด ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฏธ๋ฆฌ ๋๋์ด ์๊ธฐ ๋๋ฌธ์ ์ตํ์ฑ์ด ์๊ณ *๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๋ค.
* ๊ฐ๋ณ๋ถํ ๋ฐฉ์(variable partition allocation)
๋งค ์์ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ์ฌ์ฉํ๋ค.
๋ด๋ถ ๋จํธํ๋ ๋ฐ์ํ์ง ์๊ณ *์ธ๋ถ ๋จํธํ๋ ๋ฐ์ํ ์ ์์ผ๋ฉฐ ๊ฐ๋ณ๋ถํ ๋ฐฉ์ ์ข ๋ฅ๋ ์ต์ด์ ํฉ, ์ต์ ์ ํฉ, ์ต์ ์ ํฉ ์ธ๊ฐ์ง๊ฐ ์๋ค.
์ด๋ฆ ์ค๋ช ์ต์ด์ ํฉ (first fit) ์์ชฝ์ด๋ ์๋์ชฝ๋ถํฐ ์์ํด์ *ํ์ ์ฐพ์ผ๋ฉด ๋ฐ๋ก ํ ๋นํ๋ค. ์ต์ ์ ํฉ (best fit) ํ๋ก์ธ์ค์ ํฌ๊ธฐ ์ด์์ธ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์์ ํ๋ถํฐ ํ ๋นํ๋ค. ์ต์ ์ ํฉ (worst fit) ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๊ฐ์ฅ ๋ง์ด ์ฐจ์ด๊ฐ ๋๋ ํ์ ํ ๋นํ๋ค. * ๋ด๋ถ ๋จํธํ(internal fragmentation)
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ํฌ๊ธฐ๋ณด๋ค ํ๋ก๊ทธ๋จ์ด ์์์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ๊ณต๊ฐ์ด ๋ง์ด ๋ฐ์ํ๋ ํ์
* ์ธ๋ถ ๋จํธํ(external fargmentation)
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ํฌ๊ธฐ๋ณด๋ค ํ๋ก๊ทธ๋จ์ด ์ปค์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ๊ณต๊ฐ์ด ๋ง์ด ๋ฐ์ํ๋ ํ์.
์๋ฅผ ๋ค์ด 100MB๋ฅผ 55MB, 44MB๋ก ๋๋ด์ง๋ง ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ 70MB์ผ ๋ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ๊ฒ์ ๋งํ๋ค.
* ํ(hole)
ํ ๋นํ ์ ์๋ ๋น์ด์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.- ๋ถ์ฐ์ํ ๋น
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ํ ๋นํ์ง ์๋ ๋ถ์ฐ์ ํ ๋น์ ํ๋ ์ด์์ฒด์ ๊ฐ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค
* ํ์ด์ง(paging)
๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง ๋จ์๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ก ๋ค๋ฅธ ์์น์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ๋ค.
ํ์ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์์ ๋ฌธ์ ๊ฐ ์์ด์ง์ง๋ง ์ฃผ์ ๋ณํ์ด ๋ณต์กํด์ง๋ค.
* ์ธ๊ทธ๋ฉํ ์ด์ (segmentation)
ํ์ด์ง ๋จ์๊ฐ ์๋ ์๋ฏธ ๋จ์์ธ ์ธ๊ทธ๋จผํธ(segment)๋ก ๋๋๋ ๋ฐฉ์์ด๋ค.
ํ๋ก์ธ์ค๋ ์ฝ๋, ๋ฐ์ดํฐ, ์คํ, ํ ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ฐ ์ฝ๋์ ๋ฐ์ดํฐ ๋ฑ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๋์๋ ์์ผ๋ฉฐ ํจ์ ๋จ์๋ก ๋๋ ์๋ ์์์ ์๋ฏธํ๋ค.
๊ณต์ ์ ๋ณด์ ์ธก๋ฉด์์ ์ข์ผ๋ฉฐ ํ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
* ํ์ด์ง๋ ์ธ๊ทธ๋ฉํ ์ด์ (paged segmentation)
๊ณต์ ๋ ๋ณด์์ ์๋ฏธ ๋จ์์ ์ธ๊ทธ๋จผํธ๋ก ๋๋๊ณ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง๋ก ๋๋๋ ๊ฒ์ ๋งํ๋ค.
- ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
๋ฉ๋ชจ๋ฆฌ๋ ํ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ํ์ด ๋ง์ด ์ผ์ด๋๋ค. ์ค์ํ์ ๋ง์ด ์ผ์ด๋์ง ์๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ฉฐ ์ด๋ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ํ์ด ์ผ์ด๋๋ค.
- ์คํ๋ผ์ธ ์๊ณ ๋ฆฌ์ฆ(offline algorithm)
๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ ํ์ด์ง์ ํ์ฌ ํ ๋นํ๋ ํ์ด์ง๋ฅผ ๋ฐ๊พธ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ, ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด์ง๋ง ๋ฏธ๋์ ์ฌ์ฉ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ฐ๋ฆฌ๊ฐ์ ์์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๊ณผ์ ์ฑ๋ฅ ๋น๊ต์ ๋ํ ๊ธฐ์ค์ ์ ๊ณตํ๋ค. - FIFO(First In First Out)
๊ฐ์ฅ ๋จผ์ ์จ ํ์ด์ง๋ฅผ ๊ต์ฒด ์์ญ์ ๊ฐ์ฅ ๋จผ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. - LRU(Least Recentle Used)
์ฐธ์กฐ๊ฐ ๊ฐ์ฅ ์ค๋๋ ํ์ด์ง๋ฅผ ๋ฐ๊พผ๋ค.
์ค๋๋ ๊ฒ์ ํ์ ํ๊ธฐ ์ํด ๊ฐ ํ์ด์ง๋ง๋ค ๊ณ์๊ธฐ, ์คํ์ ๋์ด์ผ ํ๋ ๋ฌธ์ ์ ์ด ์๋ค.
LRU๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ตฌํํ ๋๋ ํด์ ํ ์ด๋ธ๊ณผ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌํํ๋๋ฐ, ํด์ ํ ์ด๋ธ์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ์ฐ๊ณ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ํ๋ธ๋ค. - NUR(Not Used Recently)
LRU์์ ๋ฐ์ ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, clock ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ํ๋ค.
๋จผ์ ์ฐธ์กฐ๋์ง ์์์ ๋ปํ๋ 0๊ณผ ์ต๊ทผ์ ์ฐธ์กฐ๋ 1์ ๊ฐ์ง ๋นํธ๋ฅผ ๋๊ณ ์๊ณ๋ฐฉํฅ์ผ๋ก ๋๋ฉด์ 0์ ์ฐพ๊ณ 0์ ์ฐพ์ ์๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ๊ต์ฒดํ๊ณ ํด๋น ๋ถ๋ถ์ 1๋ก ๋ฐ๊พธ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. - LFU(Least Frequently Used)
๊ฐ์ฅ ์ฐธ์กฐ ํ์๊ฐ ์ ์ ํ์ด์ง, ์ฆ ๋ง์ด ์ฌ์ฉ๋์ง ์์ ๊ฒ์ ๊ต์ฒดํ๋ ๊ฒ์ด๋ค.
๋ฐ์ํ'Book' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- ์บ์(cache)