Context Switching
์ปจํ
์คํธ ์ค์์นญ์ด๋?
ํ์ฌ CPU์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋น์ฐ๊ณ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ CPU์์ ์คํ์ํค๋ ๋์์ด๋ค.
์ปจํ ์คํธ(Context)๋ ํ๋ก์ธ์ค/์ค๋ ๋์ ์ํ๋ฅผ ์๊ธฐํ๋ฉฐ, ์ฆ ์ปจํ ์คํธ ์ค์์นญ์ด๋ CPU/์ฝ์ด์์ ์คํ์ค์ด๋ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๋ก ๊ต์ฒด๋๋ ๊ฒ์ด๋ค. ์ฌ๋ฌ ํ๋ก์ธ์ค/์ค๋ ๋๋ฅผ ๋์์ ์คํ์ํค๊ธฐ ์ํด์ ์ด ์์ ์ด ํ์ํ๋ค.

๊ทธ๋ฆผ์ ๋์ ๊ณผ์ ์ ๋ณด๋ฉด ์ธํฐ๋ฝํธ์ ์ ์ฌํ๋ค. P0์ ์ํ๋ฅผ ์ ์ฅํ๊ณ P1์ ๋ถ๋ฌ์ฌ ๋ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค.
์ปจํ ์คํธ ์ค์์นญ์ ๋๊ตฌ์ ์ํด ์คํ๋๊ณ ์ธ์ ์คํ๋๋ ๊ฒ์ผ๊น?
๋ฐ๋ก OS ์ปค๋์ ์ํด ์คํ๋๋ค. ์ปค๋์ด๋ ๊ฒ์ OS์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ์กด์ฌ์ด๋ฉฐ ์ปดํจํฐ์ ๊ฐ์ข ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ , ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
OS๋ ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ค.
์ปจํ ์คํธ ์ค์์นญ์ ์ํด ๊ต์ฒด๋์ด ๋น ์ ธ๋๊ฐ ํ๋ก์ธ์ค๋ "์คํ ๋๊ธฐ" ์ํ๋ก "๋ฐ ํ"์ ๋ค์ด๊ฐ์ ๋๊ธฐํ ์๋ ์๊ณ , ์ค์ค๋ก ๋น์ ์ ์ค์ผ์ค๋ง์ ์์ฒญํ์ ๊ฒฝ์ฐ "Sleep" ์ํ๋ก ์ง์ ํ ์ ์๋ค.
๋, ์ ํด์ง ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ์ ๋ถ ์ฌ์ฉํ๊ฑฐ๋ I/O ์์ ์ด ๋ฐ์ํ๋ฉด ์ปจํ ์คํธ ์ค์์นญ์ด ๋ฐ์ํ๋ค.
ํ๋ก์ธ์ค & ์ค๋ ๋ ์ปจํ
์คํธ ์ค์์นญ
ํ๋ก์ธ์ค ๋๋ ์ค๋ ๋์์์ CPU ์ฐ์ฐ ํ๋ฆ. ์ฆ CPU ์ฝ์ด์์ ์คํ๋๋ ์ฐ์ฐ์ ํ๋ฆ์ "์ค๋ ๋"๋ผ๊ณ ํ๋ค.
๋ ์์ ์ ๊ณตํต์ ์ ์ปค๋ ๋ชจ๋์์ ์คํ๋๊ณ CPU์ ๋ ์ง์คํฐ ์ํ๋ฅผ ๊ต์ฒดํ๋ค.
๊ทธ๋ผ ์ปจํ ์คํธ ์ค์์นญ์ ์ค๋ ๋ ์ฌ์ด์์ ์ผ์ด๋๋ค๊ณ ๋ณผ ์ ์๋๋ฐ, ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ์ ์ด๋ค ์ด์ ๋ก ๋ถ๋ฅ๋์๋?
ํ๋ก์ธ์ค ๊ฐ์ ์ค์์นญ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฒด๊ณ๊ฐ ๋ค๋ฅด๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ด๋ จ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ์ํํด์ผ ํ๋ค.
์ฐจ์ด๊ฐ ์๋ค๋ฉด, ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ์ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ ์ค๋ ๋์์ ๋ฐ์ํ๋ ์ค์์นญ์ด๋ค.
ํ๋ก์ธ์ค ์ปจํ
์คํธ ์ค์์นญ์ด ์ผ์ด๋ ๋
ํ๋ก์ธ์ค P1, P2๊ฐ ์กด์ฌํ๊ณ ๋ ํ๋ก์ธ์ค ์ฌ์ด์์ ์ปจํ ์คํธ ์ค์์นญ์ด ๋ฐ์ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. (P1 -> P2)
PCB1์ ๋ ์ง์คํฐ์ ์ํ๋ฅผ ์ ์ฅํ๊ณ CPU๊ฐ PCB2์ ๋ ์ง์คํฐ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ๊ณ ๊ทธ ๊ฐ์ ์ธํ ํ๋ค.
๊ทธ ๋ค์ ๊ณผ์ ์์ MMU๊ฐ P2 ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ฐ๋ผ๋ณด๊ฒ ์ค์ ํ๋ค.
TLB(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ + ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋งคํ ์ ๋ณด๋ฅผ ๋ค๊ณ ์๋ ์บ์ ์ญํ )๋ ๋น์ฐ๊ณ ์ ๋ฆฌํ๋ค.
2๋ฒ ์์ ์์ P2๋ ์์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํด์ผ ๋๋๋ฐ ๋ง์ฝ ์ด ์์ ์ด ์ํ๋์ง ์๋๋ค๋ฉด P1์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์์ญ์ ์ ๊ทผ ํ๊ฒ ๋๋ค.
์ ๋ฆฌํ๋ฉด,
์ค์ ์ปจํ ์คํธ ์ค์์นญ์ ๋์์ "์ค๋ ๋" ์ด์ง๋ง, ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค ์ค๋ ๋ ์ฌ์ด์์ ๋ฐ์ํ๋ ๊ฒ์ ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ์ผ๋ก ๋ณธ๋ค.
์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค ๊ฐ ์ปจํ ์คํธ ์ค์์นญ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฒด๊ณ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ MMU์ ์๋ก์ด ํ๋ก์ธ์ค์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๋๋ก ์์ ํ๊ณ TLB๋ ๋น์์ค์ผ ํ๋ค.
์ค๋ ๋์ ์ปจํ
์คํธ ์ค์์นญ์ด ๋ ๋น ๋ฅธ ์ด์
์ค๋ ๋ ์ปจํ ์คํธ ์ค์์นญ์ ๊ฐ์ ํ๋ก์ธ์ค์ ์ํ ์ค๋ ๋๋ผ๋ฆฌ์ ์ค์์นญ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค.
๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ด๋ จ ์ฒ๋ฆฌ๋ ํ์ง ์๊ณ CPU์ ์ํ ์ ๋ณด๋ง ๋ฐ๊ฟ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๋ค.
CPU์ ์บ์ ์ ๋ณด๋ฅผ ์ง์ฐ์ง ์์๋ ๋จ
Last updated