๐ป ์ด์์ฒด์ : Operating System
โ๏ธ ๋ฉ๋ชจ๋ฆฌ/ ์บ์/ ํ์ผ ์์คํ
โป๏ธ ๋ฉ๋ชจ๋ฆฌ
๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ์์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฒ๋ฆฌ ๋์์ด๋ ๊ฒฐ๊ณผ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ์ ๋ณด๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์ฒ๋ฆฌ๋๋ค.
โป๏ธ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ฅผ ๊ฐ์์ ๋ ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ธฐ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ์ ํ์ ์ด์ด์ ๊ณ ์๋ ๋ฐฉ๋ฒ์ด๋ค. ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์ ๋ถ๋ถ์ ์ธ ์ ์ฌ๋ง์ผ๋ก๋ ์คํ์ํฌ ์ ์๋๋ฐ ์ด๋ฌํ ํน์ง์ ์ด์ฉํ ๋ฐฉ๋ฒ์ผ๋ก, ํ๋ก์ธ์ค ์คํ์ ๊ผญ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ ๋๋จธ์ง๋ ๋์คํฌ์ ์ ์ฅํ๋ค.
๐ ๐ ๐
โป๏ธ ๋จํธํ
- ๋ด๋ถ ๋จํธํ: ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์์ด์ ์ค์ ํ๋ก์ธ์ค๊ฐ ํ์ํ ์๋ณด๋ค ๋ ํฌ๊ฒ ํ ๋น๋์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ ํ์.
- ์ธ๋ถ ๋จํธํ: ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํด์ ์ ๋ฐ๋ณต์ผ๋ก ์ฌ์ฉ๋์ง ์์ ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ค๊ฐ์ค๊ฐ ์์นํ์ฌ ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ถฉ๋ถํ์ง๋ง ์ค์ ํ ๋นํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ ์ํฉ
โป๏ธ ํ์ด์ง ๊ธฐ๋ฒ
๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ฅผ ์ด์ฉํ ๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋ ๊ฒ์ด๋ค. ์ฃผ๊ธฐ์ต์ฅ์น ๋ํ ํ์ด์ง์ ๊ฐ์ ํฌ๊ธฐ๋ก ๋๋๋๋ฐ ์ด๋ Frame์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฌ์ฉํ์ง ์๋ ํ๋ ์์ ํ์ด์ง๋ก ์ฎ๊ธฐ๊ณ , ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง ๋จ์๋ก ํ๋ ์์ ์ฎ๊ฒจ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. ์ผ์ ํํฌ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก ์ฐ์๋๋ ๊ณต๊ฐ์ ํ ๋นํ์ง ์์๋ ๋์ด ์ธ๋ถ๋จํธํ๋ ํด๊ฒฐ๋์ง๋ง, ํ์ด์ง ๋จ์์ ์๋ง๊ฒ ์ฑ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ ์ ์๋ค.
โ๏ธ ํ์ด์ง ๊ต์ฒด ๊ธฐ๋ฒ
- FIFO (First-In First Out): ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฅ ๋จผ์ ์ฌ๋ผ์จ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ด์ง์ฌ๋ ๊ต์ฒด๋๋ค๋ ๋จ์ ์ด ์๋ค.
- OPT (Optimal Page Replacement) : ์์ผ๋ก ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง, ํ๋ก์ธ์ค๊ฐ ์์ผ๋ก ์ฌ์ฉํ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์์ผํ๋ค๋ ๊ตฌํ ๋ถ๊ฐ๋ฅํ ์ ์ ์กฐ๊ฑด์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ ๊ตฌํ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋์ง ์๋๋ค.
- LRU (Least-Recently-Used): ์ต๊ทผ์ ์ฌ์ฉํ์ง ์์ ํ์ด์ง๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋ด๋ณด๋ด๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ต๊ทผ์ ์ฌ์ฉ๋์ง ์์์ผ๋ฉด ๋์ค์๋ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ผ๋ ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ์ฐธ์กฐ๋นํธ ์ ์งํ๋๋ฐ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ ๋ญ๋น์ ๊ฐ์ ์ค๋ฒํค๋๊ฐ ๋๋ค๋ ๋จ์ ์ด ์๋ค.
- LFU (Least Frequently Used): ์ฐธ์กฐ๋ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํ์ด์ง๊ฐ ์ฐธ์กฐ๋ ๋๋ง๋ค ์ฐธ์กฐํ์๋ฅผ ์ฆ๊ฐ์์ผ ์ด๊ฒ์ด ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ ๋ด๋ณด๋ธ๋ค. ๊ฐ์ฅ ์ต๊ทผ์ ์ฎ๊ฒจ์ง ํ์ด์ง๊ฐ ๊ต์ฒด๋ ์ ์๋ค๋ ๊ฒ, ์ด๊ธฐ์ ๋ง์ด ์ฌ์ฉ๋์์ง๋ง ์ต๊ทผ์๋ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ผ๋ฉด ๊ต์ฒด ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๋ ๊ฒ, ์ค๋ฒํค๋๊ฐ ๋๋ค๋ ๊ฒ๊ณผ ๊ฐ์ ๋จ์ ์ด ์๋ค.
- MFU (Most Frequently Used): ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ํ์ด์ง๋ถํฐ ๊ต์ฒดํ๋ ๊ธฐ๋ฒ์ด๋ค. ์ ๊ฒ ์ฌ์ฉ๋ ํ์ด์ง์ผ์๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด์จ์ง ์ผ๋ง ์๋์ด์ ์์ผ๋ก ๋ง์ด ์ฌ์ฉ๋ ๊ฒ์ด๋ผ๋ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
โป๏ธ ์ธ๊ทธ๋ฉํ ์ด์ ๊ธฐ๋ฒ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ๋จ์์ธ ์ธ๊ทธ๋ฉํ ์ด์ ์ผ๋ก ๋ถํ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ๊ฒ์ด๋ค.
ํ๋ก์ธ์ค๊ฐ ํ์ํ ํฌ๊ธฐ๋งํผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๊ธฐ ๋๋ฌธ์ ๋ด๋ถ๋จํธํ๋ ์ผ์ด๋์ง ์์ผ๋, ๋ฉ๋ชจ๋ฆฌ ํด์ ์ ํ ๋น์ ๋ฐ๋ณต์์ ์ธ๋ถ๋จํธํ ๋ฌธ์ ๋ ๋ฐ์ํ๋ค.
โป๏ธ ๋ฉ๋ชจ๋ฆฌ ํ ๊ธฐ๋ฒ
ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ํ ํฌ๊ธฐ์ ๊ฐ์๋งํผ ์ฌ์ฉ์๊ฐ ๋ฏธ๋ฆฌ ์ง์ ์ง์ ํ์ฌ ํ ๋น๋ฐ์ ๋๊ณ ํ์ํ ๋๋ง๋ค ์ฌ์ฉํ๊ณ ๋ฐ๋ฉํ๋ ๊ธฐ๋ฒ์ด๋ค.
๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด๋๊ณ ๊ฐ์ ธ๊ฐ ์ฐ๊ณ ๋ฐ๋ฉํ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ ํ ๋น๊ณผ ํด์ ์ ๋ฐ๋ณต์ผ๋ก ์ธํ ์ธ๋ถ๋จํธํ๊ฐ ์๊ธฐ์ง ์์ผ๋ฉฐ, ํ์ํ ํฌ๊ธฐ๋งํผ ํ ๋น์ ํด๋๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋จํธํ๋ ์๊ธฐ์ง ์๋๋ค.
์ฌ์ฉํ์ง ์๋ ์๊ฐ์๋ ๋ฏธ๋ฆฌ ํ ๋นํด๋์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๊ธธ ์ ์๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น/ํด์ ๊ฐ ์ฆ์ ๊ฒฝ์ฐ์ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
๐ ๐ ๐
โป๏ธ ์บ์ (Cache)
์บ์๋, ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด๋์ ์์ ์ ์ฅ์์ด๋ค.
CPU๊ฐ ์ฃผ๊ธฐ์ต์ฅ์น์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ค, ๋ค์์ ์ด์ฉํ ๋ ์ฃผ๊ธฐ์ต์ฅ์น๊ฐ ์๋ ์บ์ ๋ฉ๋ชจ๋ฆฌ์์ ๋จผ์ ๊ฐ์ ธ์ค๋ฉด์ ์๋๋ฅผ ํฅ์์ํจ๋ค. ๋ฐ๋ผ์ ์๋๊ฐ ๋น ๋ฅธ ์ฅ์น์ ๋๋ฆฐ ์ฅ์น ์ฌ์ด์์์ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ์ ์ฅ ๊ณต๊ฐ์ด ์๊ณ ๋น์ฉ์ด ๋น์ผ ๋์ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
์บ์์ ํจ๊ณผ๋ก๋ ํ๋ ํ ๋ฒ์น์ ๋ค ์ ์๋ค. ํ๋ ํ ๋ฒ์น์ 20%์ ์๊ตฌ๊ฐ ์์คํ ๋ฆฌ์์ค์ ๋๋ถ๋ถ์ ์ฌ์ฉํ๋ค๋ ๋ฒ์น์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด 20%์ ๊ธฐ๋ฅ์ ์บ์๋ฅผ ์ฌ์ฉํจ์ผ๋ก์ ๋ฆฌ์์ค ์ฌ์ฉ๋์ ๋ํญ ์ค์ด๊ณ , ์ฑ๋ฅ์ ๋ํญ ํฅ์์ํฌ ์ ์๋ค.
โป๏ธ ์ง์ญ์ฑ
์บ์๋ ์ง์ญ์ฑ์ ๋ฐํ์ผ๋ก ๋์ํ๋ค.
- ์๊ฐ ์ง์ญ์ฑ: for/while ๊ฐ์ ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉํ๋ ์กฐ๊ฑด ๋ณ์์ฒ๋ผ, ํ ๋ฒ ์ฐธ์กฐ๋ ๋ฐ์ดํฐ๋ ์ ์ํ ๋ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค
- ๊ณต๊ฐ ์ง์ญ์ฑ: ํน์ ๋ฐ์ดํฐ ์ ๊ทผ ์ ๋ค์์๋ ๊ทธ ๋ฐ์ดํฐ์์ ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ ์ฃผ๋ณ์ ๋ฐ์ดํฐ๊ฐ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
์ ์๋ฆฌ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ๋๋๋ฐ, ์ด๋ ์์ฒญ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์์ผ๋ฉด "Cache Hit", ์บ์์ ์์ผ๋ฉด "Cache Miss"๋ผ๊ณ ํ๋ค.
โป๏ธ ์บ์ ๋ฏธ์ค
์บ์ ๋ฏธ์ค์ ์์ธ๋ค์ 3C's model์ด๋ผ๊ณ ํ๋ค.
โ๏ธ ๊ฐ์ ๋ฏธ์ค (Compulsory miss): ๋ฐ์ดํฐ์ ์ฒ์ ์ ๊ทผ์ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด ๋ฐ์ํ๋ ์บ์ ๋ฏธ์ค์ด๋ค. ๋ค๋ฅธ ๋ง๋ก cold start miss๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
โ๏ธ ์ฉ๋๋ฏธ์ค (Capacity Miss): ์บ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ ๋๋ ๋ฏธ์ค์ด๋ค. ์ฆ ํ๋ก๊ทธ๋จ ์ํ ์ ์ ๊ทผํ๋ ๋ฐ์ดํฐ์ ์์ด ์บ์์ ์ฌ์ด์ฆ๋ฅผ ๋์ด๊ฐ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค.
โ๏ธ Conflict Miss: ํน์ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ ์บ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ํ ๋น๋์ด์ ๋๋ ๋ฏธ์ค์ด๋ค.
โป๏ธ ์บ์ ์ข ๋ฅ
- Local Cache: ๋ก์ปฌ ์ฅ๋น ๋ด์์๋ง ์ฌ์ฉ๋๋ ์บ์์ด๋ค. ์๋์๋๊ฐ ๋น ๋ฅด๊ณ , ๋ก์ปฌ์์๋ง ์๋ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์๋ฒ์ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ์ด๋ ต๋ค.
- Global Cache: ์ฌ๋ฌ ์๋ฒ์์ ์บ์ ์๋ฒ(Cache Server)์ ์ ๊ทผํ์ฌ ์ฌ์ฉํ๋ ์บ์๋ก, ๋ถ์ฐ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ ์ ์๋ค. ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ฏ๋ก ๋ก์ปฌ ์บ์์ ๋นํด ์๋์ ์ผ๋ก ๋๋ฆฌ๋ค. ํ์ง๋ง ๋ณ๋์ ์บ์ ์๋ฒ๋ฅผ ์ด์ฉํ๋ฏ๋ก ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ์ฝ๋ค.
๐ ๐ ๐
๏ผฐ๏ฝ๏ฝ๏ฝ๏ฝ ๏ฝ ๏ผข๏ฝ ๏ผณ๏ผก๏ผน
๐๐ฉ๐ข๐ฏ๐ฌ๐ด ๐ง๐ฐ๐ณ ๐ณ๐ฆ๐ข๐ฅ๐ช๐ฏ๐จ