๐ ์ปจํ ์คํธ ์ค์์นญ ์์ ์ ๋ณต - ํ๋ก์ธ์ค์ ์ค๋ ๋๊ฐ ๊ต์ฒด๋ ๋ ๋ฒ์ด์ง๋ ์ผ๋ค
โ ์ปจํ ์คํธ ์ค์์นญ์ด๋?
์ปจํ ์คํธ ์ค์์นญ(Context Switching)์ด๋ CPU๊ฐ ํ์ฌ ์คํ ์ค์ธ ์์ ์ ๋ฉ์ถ๊ณ ,
๋ค๋ฅธ ์์ ์ผ๋ก ์ ํํ๊ธฐ ์ํด ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ณต๊ตฌํ๋ ๊ณผ์ ์ ๋๋ค.
๐ก ์ ์ปจํ ์คํธ ์ค์์นญ์ด ํ์ํ ๊น?
์ด์์ฒด์ ๋ ์ฌ๋ฌ ์์
(ํ๋ก์ธ์ค/์ค๋ ๋)์ ๋ง์น ๋์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ผ ํฉ๋๋ค.
ํ์ง๋ง CPU๋ ํ ๋ฒ์ ํ๋์ ์์
๋ง ์คํํ ์ ์์ฃ . ๊ทธ๋์ ์ด๋ ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค:
๐ ์ผ์ ์๊ฐ๋งํผ ํ ์์ ์ ์คํํ๊ณ โ ๋ค์ ์์ ์ผ๋ก ๊ต์ฒด
(= ์ปจํ ์คํธ ์ค์์นญ)
๐ฆ ์ปจํ ์คํธ๋?
โ์ปจํ ์คํธ(Context)โ๋ ํ์ฌ ์คํ ์ค์ธ ์์ ์ ์ํ ์ ๋ณด์ ๋๋ค.
๐พ ํฌํจ๋๋ ์ ๋ณด
- CPU ๋ ์ง์คํฐ ๊ฐ (ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ์คํ ํฌ์ธํฐ ๋ฑ)
- ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด (ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ, ๊ฐ์ ์ฃผ์ ์ํ ๋ฑ)
- ์ปค๋ ๋ด๋ถ ์ํ (์ฐ์ ์์, ๊ถํ ๋ฑ)
๐ ์ปจํ ์คํธ ์ค์์นญ์ด ๋ฐ์ํ๋ ์์
์์ | ์ค๋ช |
---|---|
โฑ ํ์ ์ฌ๋ผ์ด์ค ์ข ๋ฃ | ์ผ์ ์๊ฐ ์ฌ์ฉ ํ ๊ต์ฒด |
๐งพ I/O ์์ฒญ | ๋์คํฌ, ๋คํธ์ํฌ ์์ฒญ ์ค ๋ค๋ฅธ ์์ ์ผ๋ก ์ ํ |
โฌ ์ฐ์ ์์ ์์ ๋ฐ์ | ๋ ์ค์ํ ์์ ์ด ์๊ธฐ๋ฉด ์ ์ |
๐ง ๋๊ฐ ์ด๊ฑธ ์ฒ๋ฆฌํ ๊น?
์ปจํ
์คํธ ์ค์์นญ์ ์ด์์ฒด์ ์ ์ปค๋(Kernel) ์ด ์ํํฉ๋๋ค.
์ปค๋์ด ๋ค์ ์์
์ ์ค์ผ์ค๋งํ๊ณ , ํ์ํ ์ํ ์ ์ฅ/๋ณต๊ตฌ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํฉ๋๋ค.
๐ ํ๋ก์ธ์ค vs ์ค๋ ๋ ์ปจํ ์คํธ ์ค์์นญ
ํญ๋ชฉ | ํ๋ก์ธ์ค | ์ค๋ ๋ |
---|---|---|
์๋ | ๋๋ฆผ โณ | ๋น ๋ฆ โก |
๋ฉ๋ชจ๋ฆฌ ์์ญ | ์๋ก ๋ค๋ฆ | ๊ณต์ |
MMU ์์ | ํ์ํจ | ๋ถํ์ |
TLB ์ด๊ธฐํ | ํ์ํจ | ๋ถํ์ |
์บ์ ์ํฅ | ํฌ๋ค | ์ ๋ค |
๐ฏ ์ ์ค๋ ๋ ์ ํ์ด ๋ ๋น ๋ฅผ๊น?
์ค๋ ๋๋ ๊ฐ์ ํ๋ก์ธ์ค ์์์ ์คํ๋๋ฏ๋ก
๊ณตํต ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํฉ๋๋ค.
๋ฐ๋ผ์, ์ฃผ์ ๊ณต๊ฐ ์ด๊ธฐํ๊ฐ ํ์ ์์ต๋๋ค.
๐ ํ๋ก์ธ์ค ์ ํ ์ ์ถ๊ฐ๋ก ๋ฒ์ด์ง๋ ์ผ๋ค
ํ๋ก์ธ์ค ์ ํ์ ๋จ์ํ CPU ์ํ๋ง ๋ฐ๊พธ๋ ๊ฒ ์๋๋๋ค:
- ํ์ฌ ํ๋ก์ธ์ค์ ๋ ์ง์คํฐ, ์ํ ์ ์ฅ
- ๋ค์ ํ๋ก์ธ์ค์ ์ํ ๋ถ๋ฌ์ค๊ธฐ
- MMU ์ค์ ๋ณ๊ฒฝ โ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฒด๊ณ ๋ฐ๊ฟ
- TLB ์ด๊ธฐํ โ ์ฃผ์ ๋งคํ ์บ์ ์ ๊ฑฐ
๐ MMU, TLB๊ฐ ๋ญ์ผ?
๐ฆ MMU (Memory Management Unit)
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ฃผ์๋ฅผ ์ฐ๊ฒฐํ๋ ํ๋์จ์ด ์ฅ์น
- ํ๋ก์ธ์ค๋ง๋ค ๊ณ ์ ํ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง
- MMU๋ ์ด ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋งคํํด์ค
โก TLB (Translation Lookaside Buffer)
MMU๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ์ฃผ์ ๋งคํ์ ์ ์ฅํ๋ ์บ์
- ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ฃผ์ ๋ณํ ์ ๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅ
- ํ์ง๋ง ํ๋ก์ธ์ค๋ฅผ ๋ฐ๊พธ๋ฉด? โ ์บ์๋ ๋ฌดํจํ ํ์!
๐งช ์์๋ก ์ฝ๊ฒ ์ดํดํด ๋ณด๊ธฐ
๐ฎ ๊ฒ์(ํ๋ก์ธ์ค A) โ ๐จ ์ด๋ฉ์ผ ์ฑ(ํ๋ก์ธ์ค B)
- MMU๋ ๊ฒ์์ ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ฐธ์กฐ ์ค
- ์ด๋ฉ์ผ ์ฑ์ผ๋ก ๋ฐ๊พธ๋ฉด MMU ์ค์ ๋ณ๊ฒฝ
- ์ด์ ๊ฒ์์ ์ฃผ์ ๋งต์ด ๋จ์ ์์ผ๋ฉด ์ํ โ TLB ์ด๊ธฐํ
๐งต ์ค๋ ๋ ๊ฐ ์ ํ์?
๊ฐ์ ํ๋ก์ธ์ค A ๋ด์์
- ๋คํธ์ํฌ ์ค๋ ๋ โ ๋ ๋๋ง ์ค๋ ๋ ์ ํ ์
- MMU/TLB ๊ทธ๋๋ก! ๋จ์ง ๋ ์ง์คํฐ ์ ๋ณด๋ง ๋ฐ๊พธ๋ฉด ๋จ
๐ ํ๋์ ์ ๋ฆฌ
๊ตฌ๋ถ | ํ๋ก์ธ์ค ์ค์์นญ | ์ค๋ ๋ ์ค์์นญ |
---|---|---|
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฒด๊ณ | ๋ค๋ฆ โ MMU ์ฌ์ค์ | ๊ฐ์ |
TLB ์ด๊ธฐํ | ํ์ํจ | ํ์ ์์ |
์๋ | ๋๋ฆผ | ๋น ๋ฆ |
์ปค๋ ๊ฐ์ | ํ์ | ํ์ |
์บ์ ์ํฅ | TLB ์บ์ ์ ๊ฑฐ | ์์ |
๐ ๊ฒฐ๋ก
- ์ปจํ ์คํธ ์ค์์นญ์ OS๊ฐ ๋ฉํฐํ์คํน์ ์ง์ํ๋ ํต์ฌ ๋ฉ์ปค๋์ฆ
- ์ค๋ ๋ ๊ฐ ์ ํ์ ๋น ๋ฅด์ง๋ง, ํ๋ก์ธ์ค ๊ฐ ์ ํ์ ์๋์ ์ผ๋ก ๋ฌด๊ฑฐ์
- ๊ณ ์ฑ๋ฅ ์์คํ ์์๋ ์ค๋ ๋ ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๋ ์ ๋ฆฌํ ์ ์์
๋๊ธ๋จ๊ธฐ๊ธฐ