'๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ'๋ฅผ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
CPU๋ ๊ทธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ค์ ์คํํ ๋ฟ์
๊ทธ๋ ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ ์ด๋ค ๊ณ์ธต์ ๊ฐ๊ณ ์ด๋ป๊ฒ ๊ด๋ฆฌ๋๋์ง ์์๋ณด์!
3.2.1 ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ๋ ์ง์คํฐ, ์บ์, ๋ฉ๋ชจ๋ฆฌ, ์ ์ฅ์ฅ์น๋ก ๊ตฌ์ฑ๋์ด ์์
- ๋ ์ง์คํฐ : CPU ์์ ์๋ ์์ ๋ฉ๋ชจ๋ฆฌ, ํ๋ฐ์ฑ, ์๋ ๊ฐ์ฅ ๋น ๋ฆ, ๊ธฐ์ต ์ฉ๋์ด ๊ฐ์ฅ ์ ์
- ์บ์ : L1, L2 ์บ์๋ฅผ ์ง์นญํจ
=> ํ๋ฐ์ฑ, ์๋ ๋น ๋ฆ, ๊ธฐ์ต ์ฉ๋ ์ ์ (L3 ์บ์๋ ์์) - ์ฃผ๊ธฐ์ต์ฅ์น : RAM์ ๊ฐ๋ฆฌํด
=> ํ๋ฐ์ฑ, ์๋ ๋ณดํต, ๊ธฐ์ต ์ฉ๋ ๋ณดํต - ๋ณด์กฐ๊ธฐ์ต์ฅ์น : HDD, SDD๋ฅผ ์ผ์ปฌ์ผ๋ฉฐ ๋นํ๋ฐ์ฑ, ์๋ ๋ฎ์, ๊ธฐ์ต ์ฉ๋ ๋ง์
RAM์ ํ๋๋์คํฌ๋ก๋ถํฐ ์ผ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์ ์์ ์ ์ฅํ๊ณ ์ด๋ฅผ ํ์์๋ง๋ค CPU์ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๋ ์ญํ ์ํจ
=> ๊ณ์ธต ์๋ก ์ฌ๋ผ๊ฐ์๋ก ๊ฐ๊ฒฉ์ ๋น์ธ์ง๋๋ฐ ์ฉ๋์ ์์์ง๊ณ ์๋๋ ๋นจ๋ผ์ง๋ ํน์ฑ์ด ์์
๊ฒ์์ ์คํํ๋ค๋ณด๋ฉด '๋ก๋ฉ ์ค' ์ด๋ผ๋ ๋ฉ์์ง๊ฐ ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์์
=> ํ๋๋์คํฌ ๋๋ ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด RAM์ผ๋ก ์ ์กํ๋ ๊ณผ์ ์ด ์์ง ๋๋์ง ์์์์ ์๋ฏธ
์บ์
์บ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ ์ฅ์์ด์ ๋น ๋ฅธ ์ฅ์น์ ๋๋ฆฐ ์ฅ์น์์ ์๋ ์ฐจ์ด์ ๋ฐ๋ฅธ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋งํจ
=> ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ๋ค์ ๊ณ์ฐํ๋ ์๊ฐ์ ์ ์ฝํ ์ ์์
์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์๋ ์ฐจ์ด๊ฐ ๋๋ฌด ํฌ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค๊ฐ์ ๋ ์ง์คํฐ ๊ณ์ธต์ ๋ฌ์ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํจ
=> ์ด๋ฐ ๊ณ์ธต์ ์บ์ฑ ๊ณ์ธต์ด๋ผ๊ณ ํจ
์ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ทธ๋ฆผ์์ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น ์ฌ์ด์ ์๋ ์ฃผ๊ธฐ์ต์ฅ์น๋ฅผ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์บ์ฑ ๊ณ์ธต์ด๋ผ๊ณ ํ ์ ์์
์ง์ญ์ฑ์ ์๋ฆฌ
์บ์ฑ ๊ณ์ธต์ ๋๋ ๊ฒ ๋ง๊ณ ์บ์๋ฅผ ์ง์ ์ค์ ํ ๋๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ํด์ผํจ
=> ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ๋ํ ๊ทผ๊ฑฐ๊ฐ ๋๋ ๊ฒ์ ์ง์ญ์ฑ์
์๊ฐ ์ง์ญ์ฑ
์๊ฐ ์ง์ญ์ฑ์ ์ต๊ทผ ์ฌ์ฉํ ๋ฐ์ดํฐ์ ๋ค์ ์ ๊ทผํ๋ ค๋ ํน์ฑ์ ๋งํจ
for(int i = 0; i < 10; i +=1) {
arr[i] = i;
}
์์ ๊ฐ์ for ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ด๋ฃจ์ด์ง ์ฝ๋ ์์ ๋ณ์ i์ ๊ณ์ํด์ ์ ๊ทผ์ด ์ด๋ฃจ์ด์ง ๋๋ฅผ ์ดํด๋ณด๋ฉด ์ ์ ์์
=> ๋ฐ์ดํฐ๋ ๋ณ์ i์ด๊ณ ์ต๊ทผ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ณ์ ์ ๊ทผํด์ +1์ ์ฐ์ด์ด ํ๋ ๊ฒ์ ๋ณผ ์ ์์
๊ณต๊ฐ ์ง์ญ์ฑ
๊ณต๊ฐ ์ง์ญ์ฑ์ ์ต๊ทผ ์ ๊ทผํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๊ณต๊ฐ์ด๋ ๊ทธ ๊ฐ๊น์ด ๊ณต๊ฐ์ ์ ๊ทผํ๋ ํน์ฑ์ ๋งํจ
=> ์์ ์ฝ๋์์ ๊ณต๊ฐ์ ๋ํ๋ด๋ ๋ฐฐ์ด arr์ ๊ฐ ์์๋ค์ i๊ฐ ํ ๋น๋๋ฉฐ ํด๋น ๋ฐฐ์ด์ ์ฐ์์ ์ผ๋ก ์ ๊ทผํจ์ ์ดํด๋ณด๋ฉด๋จ
์บ์ํํธ์ ์บ์๋ฏธ์ค
์บ์์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ค๋ฉด ์บ์ํํธ๋ผ๊ณ ํ๋ฉฐ, ํด๋น ๋ฐ์ดํฐ๊ฐ ์บ์์ ์๋ค๋ฉด ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ค๋ ๊ฒ์ ์บ์๋ฏธ์ค๋ผ๊ณ ํจ
์ ๊ทธ๋ฆผ์์ ์บ์ํํธ๋ฅผ ํ๊ฒ ๋๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ด์ฅ์น์์ ๊ฐ์ ธ์ค๊ฒ๋จ
=> ์์น๋ ๊ฐ๊น๊ณ CPU ๋ด๋ถ ๋ฒ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฆ
์บ์๋ฏธ์ค๊ฐ ๋ฐ์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ค๊ฒ ๋๋๋ฐ, ์ด๋ ์์คํ ๋ฒ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ฆผ
์บ์ ๋งคํ
์บ์ ๋งคํ์ด๋ ์บ์๊ฐ ํํธ๋๊ธฐ ์ํด ๋งคํํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ฉฐ 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์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์์๋ก ์ ์ฅ์ํค๋ ๊ฒ์ ๋งํจ
์น ๋ธ๋ผ์ฐ์ ์ ์บ์
์ํํธ์จ์ด์ ์ธ ๋ํ์ ์ธ ์บ์๋ก๋ ์น ๋ธ๋ผ์ฐ์ ์ ์์ ์ ์ฅ์ ์ฟ ํค, ๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์ ์คํ ๋ฆฌ์ง๊ฐ ์์
=> ๋ณดํต ์ฌ์ฉ์์ ์ปค์คํ ํ ์ ๋ณด๋ ์ธ์ฆ ๋ชจ๋ ๊ด๋ จ ์ฌํญ๋ค์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํด์ ์ถํ ์๋ฒ์ ์์ฒญํ ๋ ์์ ์ ๋ํ๋ด๋ ์์ด๋ดํฐํฐ๋ ์ค๋ณต ์์ฒญ ๋ฐฉ์ง๋ฅผ ์ํด ์ฐ์ด๋ฉฐ origin์ ์ข ์๋จ
์ฟ ํค
์ฟ ํค๋ ๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์์
same site ์ต์
์ strict๋ก ์ค์ ํ์ง ์์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์์ ์์ฒญํ์ ๋ ์๋ ์ ์ก๋๋ฉฐ, 4KB๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ณ ๋ง๋ฃ๊ธฐํ์ ์ ํ ์ ์์
=> ์ฟ ํค๋ฅผ ์ค์ ํ ๋ document.cookie๋ก ์ฟ ํค๋ฅผ ๋ณผ ์ ์๊ฒ httponly ์ต์ ์ ๊ฑฐ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ํด๋ผ์ด์ธํธ ๋๋ ์๋ฒ์์ ๋ง๋ฃ๊ธฐํ ๋ฑ์ ์ ํ ์ ์๋๋ฐ ๋ณดํต ์๋ฒ์์ ๋ง๋ฃ๊ธฐํ์ ์ ํจ
๋ก์ปฌ ์คํ ๋ฆฌ์ง
๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์์
5MB๊น์ง ์ ์ฅํ ์ ์์ผ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์ง๋จ
=> HTML5๋ฅผ ์ง์ํ์ง ์๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ์์๋ง ์์ ๊ฐ๋ฅ
์ธ์ ์คํ ๋ฆฌ์ง
์ธ์ ์คํ ๋ฆฌ์ง๋ ๋ง๋ฃ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์์
ํญ ๋จ์๋ก ์ธ์ ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๋ฉฐ, ํญ์ ๋ซ์ ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋จ
=> 5MB๊น์ง ์ ์ฅ์ด ๊ฐ๋ฅํ๋ฉฐ HTML5๋ฅผ ์ง์ํ์ง ์๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ ์ฌ์ฉํ ์ ์์
(ํด๋ผ์ด์ธํธ์์๋ง ์์ ๊ฐ๋ฅ)
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์บ์ฑ ๊ณ์ธต
DB ์์คํ ์ ๊ตฌ์ถํ ๋๋ ๋ฉ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ redis ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ธต์ ์บ์ฑ ๊ณ์ธต์ผ๋ก ๋ฌ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ๋ํจ
3.2.2 ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
์ด์์ฒด์ ์ ๋ํ์ ์ธ ํ ์ผ ์ค ํ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์
=> ์ปดํจํฐ ๋ด์ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ทนํ์ผ๋ก ํ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
virtual memory๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ํ๋๋ก ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์ด์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ถ์ํํ์ฌ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์๊ฒ ๋งค์ฐ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ณด์ด๊ฒ ๋ง๋๋ ๊ฒ์ ๋งํจ
๊ฐ์์ ์ผ๋ก ์ฃผ์ด์ง ์ฃผ์๋ฅผ logical address๋ผ๊ณ ํ๋ฉฐ, ์ค์ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ ์ฃผ์๋ฅผ physical address๋ผ๊ณ ํจ
=> ๊ฐ์ ์ฃผ์๋ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ์ฅ์น(MMU)์ ์ํด ์ค์ ์ฃผ์๋ก ๋ณํ๋๋ฉฐ, ์ด ๋๋ถ์ ์ค์ ์ฃผ์๋ฅผ ์์ํ ํ์ ์์ด ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ ์ ์๊ฒ๋จ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ฅ ์ฃผ์์ ์ค์ ์ฃผ์๊ฐ ๋งคํ๋์ด ์๊ณ ํ๋ก์ธ์ค์ ์ฃผ์ ์ ๋ณด๊ฐ ๋ค์ด ์๋ 'ํ์ด์ง ํ ์ด๋ธ'๋ก ๊ด๋ฆฌ๋๊ณ ์ด ๋ ์๋ ํฅ์์ ์ํด TLB๋ฅผ ์
=> TLB๋ ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์๋ ์ฃผ์ ๋ณํ์ ์ํ ์บ์์
(ํ์ด์ง ํ ์ด๋ธ์ ์๋ ๋ฆฌ์คํธ๋ฅผ ๋ณด๊ดํ๋ฉฐ CPU๊ฐ ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ง ์๋๋ก ํด ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ ์บ์ ๊ณ์ธต์)
์ค์ํ
๋ง์ฝ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์กด์ฌํ์ง๋ง ์ค์ ๋ฉ๋ชจ๋ฆฌ์ธ RAM์๋ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ ์ฝ๋์ ์ ๊ทผํ ๊ฒฝ์ฐ ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํจ
์ด ๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋น์ฅ ์ฌ์ฉํ์ง ์๋ ์์ญ์ ํ๋๋์คํฌ๋ก ์ฎ๊ธฐ๊ณ ํ๋๋์คํฌ์ ์ผ๋ถ๋ถ์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ถ๋ฌ์ ์ฐ๋ ๊ฒ์ swapping์ด๋ผ๊ณ ํจ
=> ์ด๋ฅผ ํตํด ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ง๋ฌ
ํ์ด์ง ํดํธ
page fault๋ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์๋ ์กด์ฌํ์ง๋ง ์ง๊ธ ์ด ์ปดํจํฐ์ RAM์๋ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ ๊ฒฝ์ฐ ๋ฐ์ํจ
page fault๋ก ์ธํ swapping ๊ณผ์ ์
1. ์ด๋ค ๋ช ๋ น์ด๊ฐ ์ ํจํ ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ์ผ๋ ํด๋น ํ์ด์ง๊ฐ ๋ง์ฝ ์๋ค๋ฉด ํธ๋ฉ์ด ๋ฐ์๋์ด ์ด์์ฒด์ ์ ์๋ฆฌ๊ฒ๋จ
2. ์ด์์ฒด์ ๋ ์ค์ ๋์คํฌ๋ก๋ถํฐ ์ฌ์ฉํ์ง ์์ ํ๋ ์์ ์ฐพ์
3. ํด๋น ํ๋ ์์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ธ์์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํน์ ํ์ด์ง์ ๊ต์ฒดํจ
(์ด ๋ ์ค์ํ์ด ์ผ์ด๋จ)
4. ํ์ด์ง ํ ์ด๋ธ์ ๊ฐฑ์ ์ํจ ํ ํด๋น ๋ช ๋ น์ด๋ฅผ ๋ค์ ์์ํจ
์ ๊ฐ์ด ์ด๋ค์ง
page : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์
frame : ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ ํฌ๊ธฐ ๋จ์
์ค๋ ์ฑ
thrashing์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํดํธ์จ์ด ๋์ ๊ฒ์ ์๋ฏธํ๋ฉฐ, ์ด๋ ์ปดํจํฐ์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํจ
=> ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ฉด ์ค์ํ์ด ๋ง์ด ์ผ์ด๋์ ๋ฐ์ํ๋ ๊ฒ์
page fault๊ฐ ์ผ์ด๋๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง
CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๊ฒ ๋๋ฉด ์ด์์ฒด์ ๋ CPU๊ฐ ํ๊ฐํ๋ค๊ณ ์๊ฐํ์ฌ ๊ฐ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆผ
=> ์ ์ํ์ด ๋ฐ๋ณต๋๋ฉฐ thrashing์ด ์ผ์ด๋จ
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฆฌ๊ฑฐ๋, HDD๋ฅผ ์ฌ์ฉํ๋ค๋ฉด HDD๋ฅผ SDD๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ด ์์
(HDD๋ ๋๋ค ์์ธ์ค ์๋๊ฐ ๋๋ ค์ ์ค์ํ์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ๊ทน๋๋ก ์ ํ๋๊ธฐ ๋๋ฌธ)
์ด์์ฒด์ ์์ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ ์ธํธ์ PFF๊ฐ ์์
์์ ์ธํธ
์์ ์ธํธ(working set)๋ ํ๋ก์ธ์ค์ ๊ณผ๊ฑฐ ์ฌ์ฉ ์ด๋ ฅ์ธ ์ง์ญ์ฑ(locality)์ ํตํด ๊ฒฐ์ ๋ ํ์ด์ง ์งํฉ์ ๋ง๋ค์ด์ ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๊ฒ์
=> ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ฉด ํ์์ ๋๋ ๋น์ฉ์ ์ค์ผ ์ ์๊ณ ์ค์ํ ๋ํ ์ค์ผ ์ ์์
PFF
PFF(Page Fault Frequency)๋ ํ์ด์ง ํดํธ ๋น๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ํ์ ๊ณผ ํํ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์
=> ์ํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ๋๋ฆฌ๊ณ ํํ์ ์ ๋๋ฌํ๋ค๋ฉด ํ๋ ์์ ์ค์ด๋ ๊ฒ์
๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ ํ ๋นํ ๋๋ ์์ ๋ฉ๋ชจ๋ฆฌ ์์น, ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋นํ๋๋ฐ ์ฐ์ ํ ๋น๊ณผ ๋ถ์ฐ์ ํ ๋น์ผ๋ก ๋๋จ
์ฐ์ ํ ๋น
์ฐ์ ํ ๋น์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ๋งํจ
์ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋ก์ธ์ค A, B ,C๊ฐ ์์ฐจ์ ์ผ๋ก ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ๋ณผ ์ ์์
=> ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋๋์ด ๊ด๋ฆฌํ๋ ๊ณ ์ ๋ถํ ๋ฐฉ์๊ณผ ๋งค ์์ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ถํ ํ์ฌ ์ฌ์ฉํ๋ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ด ์์
๊ณ ์ ๋ถํ ๋ฐฉ์
fixed partition allocation์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋๋์ด ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฏธ๋ฆฌ ๋๋์ด ์๊ธฐ ๋๋ฌธ์ ์ตํต์ฑ์ด ์์
(๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์)
๊ฐ๋ณ ๋ถํ ๋ฐฉ์
variable partition allocation์ ๋งค ์์ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ์ฌ์ฉํจ
=> ๋ด๋ถ ๋จํธํ๋ ๋ฐ์ํ์ง ์์ง๋ง ์ธ๋ถ ๋จํธํ๋ ๋ฐ์ํ ์ ์์
- first fit : ์์ชฝ์ด๋ ์๋์ชฝ๋ถํฐ ์์ํด์ ํ์ ์ฐพ์ผ๋ฉด ๋ฐ๋ก ํ ๋น
- best fit : ํ๋ก์ธ์ค์ ํฌ๊ธฐ ์ด์์ธ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์์ ํ๋ถํฐ ํ ๋น
- worst fit : ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๊ฐ์ฅ ๋ง์ด ์ฐจ์ด๊ฐ ๋๋ ํ์ ํ ๋น
๋ด๋ถ ๋จํธํ(internal fragmentation) : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ํฌ๊ธฐ๋ณด๋ค ํ๋ก๊ทธ๋จ์ด ์์์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ๊ณต๊ฐ์ด ๋ง์ด ๋ฐ์ํ๋ ํ์
์ธ๋ถ ๋จํธํ(external fragmentation) : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ํฌ๊ธฐ๋ณด๋ค ํ๋ก๊ทธ๋จ์ด ์ปค์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ๊ณต๊ฐ์ด ๋ง์ด ๋ฐ์ํ๋ ํ์
=> ex. 100MB๋ฅผ 55MB, 45MB๋ก ๋๋ด์ง๋ง ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ 70MB์ผ ๋ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ์ํฉ
ํ(hole) : ํ ๋นํ ์ ์๋ ๋น์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
๋ถ์ฐ์ ํ ๋น
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ํ ๋นํ์ง ์๋ ๋ถ์ฐ์ ํ ๋น์ ํ๋ ์ด์์ฒด์ ๊ฐ ์ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ถ์ฐ์ ํ ๋น์ธ ํ์ด์ง ๊ธฐ๋ฒ์ด ์์
=> ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง(๋ณดํต 4KB)๋ก ๋๋๊ณ ํ๋ก๊ทธ๋จ๋ง๋ค ํ์ด์ง ํ ์ด๋ธ์ ๋์ด ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ ํ ๋นํ๋ ๊ฒ์
ํ์ด์ง
paging์ ๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง ๋จ์๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ก ๋ค๋ฅธ ์์น์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํจ
=> ํ์ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์์ ๋ฌธ์ ๊ฐ ์์ด์ง์ง๋ง ์ฃผ์ ๋ณํ์ด ๋ณต์กํด์ง
์ธ๊ทธ๋ฉํ ์ด์
segmentation์ ํ์ด์ง ๋จ์๊ฐ ์๋ ์๋ฏธ ๋จ์์ธ segment๋ก ๋๋๋ ๋ฐฉ์์
ํ๋ก์ธ์ค๋ฅผ ์ด๋ฃจ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ฝ๋ ์์ญ, ๋ฐ์ดํฐ ์์ญ, ์คํ ์์ญ, ํ ์์ญ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ฐ, ์ฝ๋์ ๋ฐ์ดํฐ๋ก ๋๋๊ฑฐ๋ ์ฝ๋ ๋ด์ ์์ ํจ์๋ฅผ ์ธ๊ทธ๋จผํธ๋ก ๋๊ณ ๋๋ ์๋ ์์
=> ๊ณต์ ์ ๋ณด์ ์ธก๋ฉด์์ ์ฅ์ ์ ๊ฐ์ง์ง๋ง ํ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์์ ๋จ์ ์ด ์์
ํ์ด์ง๋ ์ธ๊ทธ๋ฉํ ์ด์
paged segmentation์ ํ๋ก๊ทธ๋จ์ ์๋ฏธ ๋จ์์ธ ์ธ๊ทธ๋จผํธ๋ก ๋๋ ๊ณต์ ๋ ๋ณด์์ธก๋ฉด์ ์ฅ์ ์ ๋๊ณ ์์์ ๊ธธ์ด๊ฐ ์๋ ๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง ๋จ์๋ก ๋๋๋ ๊ฒ์ ๋งํจ
ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
๋ฉ๋ชจ๋ฆฌ๋ ํ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ํ์ด ๋ง์ด ์ผ์ด๋จ
=> ์ค์ํ์ ๋ง์ด ์ผ์ด๋์ง ์๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ฉฐ ์ด๋ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ํ์ด ์ผ์ด๋จ
์คํ๋ผ์ธ ์๊ณ ๋ฆฌ์ฆ
offline algorithm์ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ ํ์ด์ง์ ํ์ฌ ํ ๋นํ๋ ํ์ด์ง๋ฅผ ๋ฐ๊พธ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ, ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์
=> ๋ฏธ๋์ ์ฌ์ฉ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ ์๊ธฐ์ ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๊ณผ์ ์ฑ๋ฅ ๋น๊ต์ ๋ํ upper bound(์ํ ๊ธฐ์ค)์ ์ ๊ณตํจ
FIFO
FIFO๋ First In First Out์ผ๋ก ๊ฐ์ฅ ๋จผ์ ์จ ํ์ด์ง๋ฅผ ๊ต์ฒด ์์ญ์ ๊ฐ์ฅ ๋จผ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฏธํจ
LRU
LRU๋ Least Recently Used๋ก ์ฐธ์กฐ๊ฐ ๊ฐ์ฅ ์ค๋๋ ํ์ด์ง๋ฅผ ๋ฐ๊ฟ
=> ์ค๋๋ ๊ฒ์ ํ์
ํ๊ธฐ ์ํด ๊ฐ ํ์ด์ง๋ง๋ค ๊ณ์๊ธฐ, ์คํ์ ๋์ด์ผํ๋ ๋ฌธ์ ์ ์ด ์์
์ ๊ทธ๋ฆผ์์ 5๋ฒ์งธ์ 5๋ฒ ํ์ด์ง๊ฐ ๋ค์ด์ค๋ฉด์ ๊ฐ์ฅ ์ค๋๋ 1๋ฒ ํ์ด์ง์ ์ค์ํ๋ ๊ฒ์ด LRU์
๋ณดํต 2๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ก LRU๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ตฌํํ๋๋ฐ ํด์ ํ ์ด๋ธ๊ณผ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์
=> ํด์ ํ ์ด๋ธ์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ์ฐ๊ณ , ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ํ๋
NUR
LRU์์ ๋ฐ์ ํ NUR์ Not Used Recently๋ก ์ผ๋ช clock ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ํจ
(0๊ณผ 1์ ๊ฐ์ง ๋นํธ๋ฅผ ๋ )
1์ ์ต๊ทผ์ ์ฐธ์กฐ๋์๊ณ 0์ ์ฐธ์กฐ๋์ง ์์์ ์ผ๋ฏธใ ฃํจ
=> ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋๋ฉด์ 0์ ์ฐพ๊ณ 0์ ์ฐพ์ ์๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ๊ต์ฒดํ๊ณ , ํด๋น ๋ถ๋ถ์ 1๋ก ๋ฐ๊พธ๋ ์๊ณ ๋ฆฌ์ฆ์
LFU
LFU๋ Least Frequently Used๋ก ๊ฐ์ฅ ์ฐธ์กฐ ํ์๊ฐ ์ ์ ํ์ด์ง๋ฅผ ๊ต์ฒดํจ
=> ๋ง์ด ์ฌ์ฉ๋์ง ์์ ๊ฒ์ ๊ต์ฒด
'๐ป CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java๋ ์ปดํ์ผ ์ธ์ด์ผ๊น? ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ผ๊น? (0) | 2025.03.10 |
---|---|
[ํ๋ก๊ทธ๋๋ฐ์ธ์ด๋ก ] ๊ธฐ๊ณ์ด, ์ด์ ๋ธ๋ฆฌ์ด, ๊ณ ๊ธ์ธ์ด์ ์ฐจ์ด์ (C++ vs Java) (0) | 2025.03.10 |
[CS ์ ๊ณต์ง์ ๋ ธํธ] ์ด์์ฒด์ ์ ์ปดํจํฐ (0) | 2025.02.18 |
[CS ์ ๊ณต์ง์ ๋ ธํธ] HTTP (1) | 2025.02.09 |
[CS ์ ๊ณต์ง์ ๋ ธํธ] IP ์ฃผ์ (0) | 2025.02.07 |