๐ค ์ด์์ฒด์ - ์ปจํ ์คํธ ์ค์์นญ(context switching)
์ปจํ ์คํธ ์ค์์นญ(context switching)
CPU/์ฝ์ด์์ ์คํ ์ค์ด๋ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๋ก ๊ต์ฒด๋๋ ๊ฒ.
โ ์ปจํ ์คํธ(context)๋?
ํ๋ก์ธ์ค / ์ค๋ ๋์ ์ํ
CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ๋ฑ
โ ์ปจํ ์คํธ ์ค์์นญ์ ์ ํ์ํ๊ฐ?
- ์ฌ๋ฌ ํ๋ก์ธ์ค / ์ค๋ ๋๋ฅผ ๋์์ ์คํ์ํค๊ธฐ ์ํด
โ ์ปจํ ์คํธ ์ค์์นญ(context switching)์ ์ธ์ ๋ฐ์ํ๋๊ฐ?
์ฃผ์ด์ง time slice(quantum)๋ฅผ ๋ค ์ฌ์ฉํ์ ๋
IO ์์ ์ ํด์ผํ ๋
๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ ๋
๐ ๋ฉํฐํ์คํน ์์คํ ์์ ์ปจํ ์คํธ ์ค์์นญ
์งง์ ์๊ฐ๋์ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์คํ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ์ ์ฅ์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋๋ ๊ฑฐ ๊ฐ์ ๋๋์ ๋ฐ์ ์ ์๋ค.
โ ์ปจํ ์คํธ ์ค์์นญ์ ๋๊ตฌ์ ์ํด ์คํ๋ ๊น?
- OS ์ปค๋(kernel) : ๊ฐ์ข ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌ/๊ฐ๋ ํ๋ ์ญํ
๋ค๋ฅธ ํ๋ก์ธ์ค๋ผ๋ฆฌ ์ค์์นญ : process context switching
- ๊ฐ์(virtual) ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ด๋ จ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ์ํ
๊ฐ์ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ค๋ผ๋ฆฌ ์ค์์นญ : thread context switching
์ฐธ๊ณ : ์ ํ๋ธ ์ฌ์ด์ฝ๋
โ ์ค๋ ๋ ์ปจํ ์คํธ ์ค์์นญ(thread context switching)์ด ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ(process context switching)๋ณด๋ค ๋ ๋น ๋ฅธ ์ด์
- ์ค๋ ๋ ์ปจํ ์คํธ ์ค์์นญ์ ๊ฐ์ ํ๋ก์ธ์ค์ ์ํ๋ ์ค๋ ๋๋ค๋ผ๋ฆฌ์ ์ค์์นญ์ด๋ค. ์ด๋ฐ ์ค๋ ๋๋ค์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ด๋ จํด์๋ ๋ฐ๋ก ๋ฐ๊ฟ์ค ๋ถ๋ถ์ด ์๊ณ CPU์ ์ํ ์ ๋ณด๋ง ๋ฐ๊พธ์ด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
โ ์ปจํ ์คํธ ์ค์์นญ์ด ๋ฏธ์น๋ ๊ฐ์ ์ ์ธ ์ํฅ?
- ์บ์ ์ค์ผ