์ด์์ฒด์ ๊ฐ์
์ด์์ฒด์ ์ ์ญํ
์ด์์ฒด์ ์ ์ญํ ์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
- ์์ ๊ด๋ฆฌ ๋ฐ ํ ๋น
- ํ๋ก์ธ์ค ๋ฐ ์ค๋ ๋ ๊ด๋ฆฌ
์ฌ๊ธฐ์ 1๋ฒ์ ์์์ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๋ฑ์ด๋ค.
CPU ๊ด๋ฆฌ(CPU ์ค์ผ์ค๋ง) : ์คํ์ค์ธ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๊ณต์ ํ๊ฒ ํ ๋น๋ฐ๋๋ก ๊ด๋ฆฌ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ : ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ , ์ข ๋ฃ๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์
ํ์ผ/๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ : ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๋ด๋ถ ์ ๋ณด๋ฅผ ํ์ผ ๋ฐ ํด๋ ๋จ์๋ก ์ ๊ทผํ๊ฒ ํด์ค
2๋ฒ ํ๋ก์ธ์ค ๋ฐ ์ค๋ ๋ ๊ด๋ฆฌ๋ ์ด๋ฏธ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)์ ์์์ ํ ๋นํ๊ณ ๋ด๋ถ์ ์๋ ์ค๋ ๋๋ผ๋ ์คํ์ ๋จ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
์ฆ ์ด์์ฒด์ ๋ ์์ ๊ด๋ฆฌ์์ด๋ค.
์์คํ ์ฝ๊ณผ ์ด์ค ๋ชจ๋
์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํด์ผํ๋ค๊ณ ํ๋๋ฐ, ์ด์์ฒด์ ๋ ์ผ์ข ์ ํ๋ก๊ทธ๋จ์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด์ผ ํ๋ค. ์ด์์ฒด์ ๊ฐ ์ ์ฌ๋ ๊ณณ์ ์ปค๋์์ญ, ์ด ์ธ ๊ณต๊ฐ์ ์ฌ์ฉ์ ์์ญ์ด๋ผ๊ณ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์์ฉํ๋ก๊ทธ๋จ๋ค์ CPU, ๋ฉ๋ชจ๋ฆฌ๊ฐ์ ์์์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ค. ์ด๋ฅผ ์ํด์๋ ์์คํ ์ฝ์ ํธ์ถํด ์ด์์ฒด์ ๋ฅผ ์กฐ์ํด ์์์ ์ ๊ทผํด์ผํ๋ค.
์์คํ ์ฝ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
์์คํ ์ฝ ํธ์ถ -> ์ํํธ์จ์ด ์ธํฐ๋ฝํธ ๋ฐ์ -> ์ปค๋๋ชจ๋ ์ ํ -> ์ด์์ฒด์ ์ฝ๋ ์คํ -> ์ฌ์ฉ์ ๋ชจ๋๋ก ์ ํ
์ด๋ ๊ฒ ์ฌ์ฉ์/์ปค๋ ๋ชจ๋๋ก ๋๋ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ด์ค ๋ชจ๋(dual mode)๋ผ๊ณ ํ๋ค. ์ค์๋ก๋ผ๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์์์ ์ ๊ทผํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค.
ํ๋ก์ธ์ค์ ์ค๋ ๋
ํ๋ก์ธ์ค๋ ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋๋ ์ง๋ค. ๋จ์ด ๊ทธ๋๋ก ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ฉฐ ์คํ๋๋ ํ๋ก์ธ์ค๋ ํฌ๊ทธ๋ผ์ด๋, ์ธํฐํ์ด์ค ์์ด ์คํ๋๋ ๊ฒ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ด๋ค. ๊ทธ ์ค์์๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ์ง ์๊ณ ์ฃผ์ด์ง ์์ ๋ง ์คํํ๋ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ชฌ์ด๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉด ์ปค๋ ์์ญ์ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB) ์ ๋ณด๊ฐ ์ ์ฅ๋๊ณ , ์ฌ์ฉ์ ์์ญ์ ์ฝ๋์์ญ, ๋ฐ์ดํฐ ์์ญ, ํ ์์ญ, ์คํ ์์ญ์ด ์ ์ฅ๋๋ค.
์ฐธ๊ณ ๋ก PCB๋ค์ ์ปค๋ ๋ด์ ํ๋ก์ธ์ค ํ ์ด๋ธ ํํ๋ก ๊ด๋ฆฌ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ฆ ํ๋ก์ธ์ค ํ ์ด๋ธ์ ์คํ์ค์ธ PCB๋ค์ ๋ชจ์๋ ๊ฒ์ด๋ค. ํ๋ก์ธ์ค๊ฐ ์๋ก ์์๋ ๋ ํด๋น ํ๋ก์ธ์ค์ PCB๋ฅผ ํ๋ก์ธ์ค ํ ์ด๋ธ์ ์ถ๊ฐํ๊ณ ํ์ํ ์์์ ํ ๋นํ๋ค. ์ดํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ค๋ฉด ์ฌ์ฉ์ค์ด๋ ์์์ ํด์ ํ๊ณ PCB๋ฅผ ํ๋ก์ธ์ค ํ ์ด๋ธ์์ ์ญ์ ํ๋ค.
๋ง์ฝ ์์์ ํด์ ๋์๋๋ฐ PCB๋ ๋จ์์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ฅผ ์ข๋น ํ๋ก์ธ์ค(zombie process)๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด์ผ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค๋ค์ CPU๋ฅผ ์ ํด์ง ์๊ฐ๋งํผ ๋๋ ์ ์ฌ์ฉํ๋ค. ์ ํด์ง ์๊ฐ์ด ๋๋ฌ๋ค๋ ๊ฒ์ ํ์ด๋จธ ์ธํฐ๋ฝํธ์ ์ํด ์๊ฒ ๋๋๋ฐ, ํ๋ก์ธ์ค A๋ ์์ ์ ์ฐจ๋ก๊ฐ ๋๋ฉด CPU๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ ํ๋ก์ธ์คB์ CPU์ฌ์ฉ๊ถ์ ๋๊ธฐ๊ณ ๋ค์ ๊ธฐ๋ค๋ฆฐ๋ค.
์ด๋ ํ๋ก์ธ์ค A๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ๋ ์ง์คํฐ ๊ฐ, ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด ๋ฑ ์์ ํ๋ ์ ๋ณด๋ฅผ ์ ์ฅํด๋์ผ ํ๋ค. ์ด๋ฐ ์ ๋ณด๋ค์ Context๋ผ๊ณ ํ๋๋ฐ ์ด๊ฒ์ PCB(Process Control Block)์ ์ ์ฅ๋๋ค. ์ด๋ ๊ฒ PCB์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ B์๊ฒ CPU ์ฌ์ฉ๊ถ์ ๋๊ฒผ๋ค๊ฐ ๋ค์ A์ ์ฐจ๋ก๊ฐ ๋์์ค๋ฉด ์ด์์ฒด์ ๋ A์ PCB์์ Context๋ฅผ ๊ฐ์ ธ์ ๊ฐ๋ค์ ๋ณต๊ตฌํ๋ค.
์ด๋ ๊ฒ ๊ธฐ์กด ํ๋ก์ธ์ค์ Context๋ฅผ PCB์ ๋ฐฑ์ ํ๊ณ PCB์์ Context๋ฅผ ๋ณต๊ตฌํ์ฌ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ์ Context Switching์ด๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค์ ์ํ
ํ๋ก์ธ์ค๋ ์๋์ ๊ฐ์ด ์ฌ๋ฌ ์ํ๋ฅผ ๊ฑฐ์น๋ฉฐ ์คํ๋๋ค. ์ด์์ฒด์ ๋ PCB๋ฅผ ํตํด ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ธ์ํ๊ณ ๊ด๋ฆฌํ๋ค.