ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค. ์ฆ, ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ์ค์ ๋ก ์คํ๋๊ณ ์๋ ์ํ๋ฅผ ๋ปํ๋ค.
์ด์์ฒด์ ๋ ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ๋
๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์์ญ์ ๊ฐ์ง๋ค.
์ด๋ฌํ ๋ ๋ฆฝ์ ๊ตฌ์กฐ ๋๋ถ์ ํ ํ๋ก์ธ์ค์ ์ค๋ฅ๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ์ ํ๋์ง ์์ ์์ ์ฑ์ด ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ๋จ ํ๋ก์ธ์ค๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ์ฐธ์กฐํ ์ ์๊ณ , ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ ๋ณ๋์ IPC(Inter-Process Communication) ๊ธฐ๋ฒ์ ํ์ฉํด์ผ ํ๋ค.
์ด์์ฒด์ ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์ค์ผ์ค๋งํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค ์์ฑ ์ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ด๋ถ ์๋ฃ๊ตฌ์กฐ์ธ PCB๋ฅผ ํจ๊ป ๋ง๋ ๋ค.
PCB์๋ ํ๋ก์ธ์ค์ ํ์ฌ ์ํ, ๊ณ ์ ์๋ณ์(PID), ๋ค์์ ์คํํ ๋ช
๋ น์ด ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC), ๋ ์ง์คํฐ ์ํ ๋ฐ ์ค์ผ์ค๋ง ์ ๋ณด ๋ฑ์ด ์ ์ฅ๋๋ค.
ํ๋์ CPU ์ฝ์ด๋ ํน์ ์๊ฐ์ ์ค์ง ํ๋์ ์์
๋ง ์ฒ๋ฆฌํ ์ ์๋ค. ๋ง์ฝ ๋ฌผ๋ฆฌ์ ์ธ ์ฝ์ด์ ์๋ณด๋ค ์คํํด์ผ ํ ํ๋ก์ธ์ค๊ฐ ๋ ๋ง๋ค๋ฉด ํ๋ก๊ทธ๋จ์ ์คํํ์ง ๋ชปํ ๊ฒ์ด๋ค. ์์คํ
์ ๋์์ฑ์ ํตํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
๋์์ฑ์ด๋ ์ฌ๋ฌ ์์
์ด ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋๋ ๋
ผ๋ฆฌ์ ์ธ ์ฒ๋ฆฌ ๋ฐฉ์์ด๋ค. ์ด๋ฅผ ์ํด ์ด์์ฒด์ ์ ์ค์ผ์ค๋ฌ๋ ๊ฐ ํ๋ก์ธ์ค์ ์์ฃผ ์งง์ ์คํ ์๊ฐ์ ํ ๋นํ๊ณ , ์ด ์๊ฐ์ด ๋ง๋ฃ๋ ๋๋ง๋ค CPU ์ ์ ๊ถ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋น ๋ฅด๊ฒ ๋๊ธฐ๋๋ฐ, ์ด ๊ณผ์ ์ ๋ฌธ๋งฅ ๊ตํ(Context Switching)์ด๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค ๋จ์์ ๋ฌธ๋งฅ ๊ตํ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
์ด ๊ณผ์ ์ด ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ฐ๋ณต๋๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋๋ผ๊ฒ ๋๋ค. ๋จ, ํ๋ก์ธ์ค ๋ฌธ๋งฅ ๊ตํ์ ๋ ์ง์คํฐ ์ํ ๊ต์ฒด๋ฟ๋ง ์๋๋ผ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์ฐ๋ ๋ง๋ํ ์์คํ ์ค๋ฒํค๋๋ฅผ ๋๋ฐํ๋ค๋ ๋จ์ ์ด ์๋ค.
์์ ๊ฐ์ ๋จ์ ์ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฐ๋
์ด ์ค๋ ๋์ด๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด๋ถ์ ์์ฑ๋๋ ์คํ ํ๋ฆ์ ์ต์ ๋จ์๋ฅผ ์๋ฏธํ๋ค.
์ค๋ ๋๋ ์์ ์ด ์ํ ํ๋ก์ธ์ค์ ์์์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํด Code, Data, Heap ์์ญ์ ํ๋ก์ธ์ค ๋ด์ ๋ค๋ฅธ ์ค๋ ๋๋ค๊ณผ ๊ณต์ ํ๋ค. ๋ฐ๋ฉด, ๋
๋ฆฝ์ ์ธ ์คํ ํ๋ฆ์ ๋ณด์ฅ๋ฐ๊ธฐ ์ํด Stack ์์ญ๊ณผ PC(Program Counter) ๋ ์ง์คํฐ๋ง์ ๊ฐ ์ค๋ ๋๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋น๋ฐ๋๋ค.
์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ํจ์๋ฅผ ํธ์ถํ๋๋ผ๋ ๊ฐ์์ ๋งค๊ฐ๋ณ์, ์ง์ญ ๋ณ์, ๋ฆฌํด ์ฃผ์๋ฅผ ๊ฐ๋ณ Stack์ ์ ์ฅํจ์ผ๋ก์จ ์๋ก์ ๋ฐ์ดํฐ๊ฐ ์์ด์ง ์๊ณ ๋
๋ฆฝ์ ์ธ ํจ์ ์คํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ค๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ฌ ์์ฑ ๋ฐ ๋ฌธ๋งฅ ๊ตํ ๋น์ฉ์ ํ๊ธฐ์ ์ผ๋ก ๋ฎ์ถ๋ฉด์๋ ๋์ผํ ํ๋ก์ธ์ค ์์์ ์ฌ๋ฌ ์์
์ ๋์์(๋
๋ฆฝ์ ์ผ๋ก) ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค.
๋ค๋ง ์ค๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์ค๋ ๋์์ ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฐธ์กฐ ๋ฑ์ ์น๋ช
์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํผ์๋ ๊ฒฝ์ฐ, ํด๋น ํ๋ก์ธ์ค ๋ด์์ ์คํ ์ค์ด๋ ๋ชจ๋ ์ค๋ ๋๊ฐ ํจ๊ป ๊ฐ์ ์ข
๋ฃ๋๋ ์ฐ์ ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ํ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ Data๋ Heap ์์ญ์ ๊ณต์ ์์์ ์ ๊ทผํ์ฌ ๊ฐ์ ๋ณ๊ฒฝํ๋ ค๊ณ ํ ๋, ์คํ ํ์ด๋ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๊นจ์ง๋ ๊ฒฝ์ ์ํ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์๊ฒฉํ ๋๊ธฐํ ์ ์ด ๋ก์ง์ด ํ์์ ์ด๋ค.
๋ณ๋ ฌ์ฑ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ CPU ์ฝ์ด๊ฐ ๊ฐ๊ฐ ํ ๋น๋ฐ์ ์์
์ ๋์ผํ ์๊ฐ์ ๋์์ ์คํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์์ ์ค๋ช
ํ ๋์์ฑ์ด ๋จ์ผ ์ฝ์ด ํ๊ฒฝ์์ ๋น ๋ฅธ ๋ฌธ๋งฅ ๊ตํ์ ํตํด ์ฌ๋ฌ ์์
์ด ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋๋ ๋
ผ๋ฆฌ์ ๊ฐ๋
์ด๋ผ๋ฉด, ๋ณ๋ ฌ์ฑ์ ๋ฉํฐ ์ฝ์ด ํ๊ฒฝ์์ ์ฌ๋ฌ ์์
์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ์ฝ์ด์์ ๋์์ ์ฒ๋ฆฌ๋๋ ๋ฌผ๋ฆฌ์ ๊ฐ๋
์ด๋ค.
ํ๋ ์ด์์ฒด์ ์ ์ค์ผ์ค๋ฌ๋ ๋ฉํฐ ํ๋ก์ธ์ค๋ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์์ฑ๋ ์ฌ๋ฌ ์คํ ํ๋ฆ์ ์์คํ
๋ด์ ๊ฐ์ฉํ ๋ฌผ๋ฆฌ์ ์ฝ์ด๋ค์ ๋ถ์ฐ ํ ๋นํ์ฌ ๋ณ๋ ฌ ์คํ์ ๊ตฌํํ๋ค.
