๐ ํ๋ก์ธ์ค ์ํ
์ด์ ํฌ์คํ ์์ ํ๋ก์ธ์ค๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์คํ์ด ๋๋ค๊ณ ํ๋๋ฐ, ์คํ๋๋ ๊ณผ์ ์์ ์ฌ๋ฌ ์ํ๋ฅผ ๊ฑฐ์น๋ฉฐ ์คํ์ด ๋๋ค. ์ด์์ฒด์ ๋ ์ด์ ๊ฐ์ ๊ฒ์ PCB๋ฅผ ํตํด ์ธ์ํ๊ณ ๊ด๋ฆฌํ๊ฒ ๋๋ฉฐ ๋ํ์ ์ธ ์ํ๋ ์๋์ ๊ฐ๋ค.
1. ์์ฑ ์ํ(new)
- ํ๋ก์ธ์ค๋ฅผ ์์ฑ ์ค์ธ ์ํ๋ก, ์ด์ ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ ๋์ด PCB๋ฅผ ํ ๋น๋ฐ์ ์ํ๋ฅผ ๋ปํ๋ค. ์คํ ์ค๋น๊ฐ ์๋ฃ๋ ํ๋ก์ธ์ค๋ ๋ฐ๋ก ์คํ์ด ๋๋ ๊ฒ์ด ์๋๋ผ, ์ค๋น ์ํ๊ฐ ๋์ด CPU์ ํ ๋น์ ์์ฐจ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ค.
2. ์ค๋น ์ํ(ready)
- ์์ฑ์ด ๋๋ ํ๋ก์ธ์ค๋ ๋ฐ๋ก ์คํ์ด ๊ฐ๋ฅํ์ง๋ง, ์์ฐจ ์คํ์ด ๋๋ ํน์ฑ ์ ๊ธฐ๋ค๋ฆฌ๋ ๋๊ธฐ ์ํ๊ฐ ๋ฐ์ํ๋ค. ์ด์ ๊ฐ์ด ์คํ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ๋ฅผ ์ง์นญํ๋ฉฐ, ์ฐจ๋ก๊ฐ ๋์ด CPU๋ฅผ ํ ๋น๋ฐ๊ณ ์คํ ์ํ๊ฐ ๋๋ ๊ฒ์ dispatch ๋ผ๊ณ ํ๋ค.
3. ์คํ ์ํ(running)
- CPU๋ฅผ ํ ๋น ๋ฐ์ ์คํ ์ค์ธ ์ํ์ด๋ค. ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ ํ ๋น ์๊ฐ๋์ cpu๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ ๋น ์๊ฐ์ ์ ๋ถ ์ฌ์ฉํ๊ฒ ๋์ด ํ์ด๋จธ ์ธํฐ๋ฝํธ ๋ฐ์ ์ ๋ค์ ์ค๋น ์ํ๋ก ๋์๊ฐ๋ค. ์ด๋, ์คํ ๋์ค ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์ด ๋ฐ์ ์ ๋๊ธฐ ์ํ๊ฐ ๋๋ค.
4. ๋๊ธฐ ์ํ(blocked)
- ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ์ฅ์น๋ CPU์ ์ฒ๋ฆฌ ์๋๋ณด๋ค ๋๋ฆฌ๊ธฐ ๋๋ฌธ์, ์ ์ถ๋ ฅ ์ฅ์น๊ฐ ํด๋น ์์ ์ ๋๋ด๋ ์๋ฃ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐํํ๊ธฐ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ์ด์ ๊ฐ์ ์ํ์์ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋๋ฉด, ํด๋น ํ๋ก์ธ์ค๋ ๋ค์ ์ค๋น ์ํ๋ก ๋ค์ด๊ฐ ํ ๋น์ ๊ธฐ๋ค๋ฆฐ๋ค.
5. ์ข ๋ฃ ์ํ(terminated)
- ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ์ํ๋ก, ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๊ฒฝ์ฐ ์ด์์ฒด์ ๋ PCB์ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ค.
๐ฉ ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ
ํ๋ก์ธ์ค๋ ์คํ ๋์ค์ ์์คํ ํธ์ถ์ ํตํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ค. ์ด์ ๊ฐ์ด ๊ธฐ์กด ํ๋ก์ธ์ค๊ฐ ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ ๋, ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ชจ ํ๋ก์ธ์ค(parent process), ์์ฑ๋ ํ๋ก์ธ์ค๋ฅผ ์์ ํ๋ก์ธ์ค(child process) ๋ผ๊ณ ํ๋ค.ํ๋ก์ธ์ค๋ ์์ฑ๋ ๋๋ง๋ค ์๋ก์ด PID๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ๋ถ๋ชจ ํ๋ก์ธ์ค์์ ์์ฑ๋ ์์ ํ๋ก์ธ์ค๋๋ผ๋ ์๋ก์ด PID๊ฐ ๋ถ์ฌ๋๋๋ฐ, ์ผ๋ถ ์ด์์ฒด์ ์์๋ ๋ถ๋ชจ ํ๋ก์ธ์ค์ PID์ธ PPID(parent PID)๊ฐ ๊ธฐ๋ก๋๊ธฐ๋ ํ๋ค. ์ด์ ๊ฐ์ด ์ด์์ฒด์ ์์๋ ํ๋ก์ธ์ค๊ฐ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ก ๊ด๋ฆฌ๊ฐ ๋๋๋ฐ, ์๋ฅผ ๋ค์ด ์ปดํจํฐ๊ฐ ๋ถํ ์ด ๋ ๋ ์คํ๋๋ ์ต์ด์ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค๋ค์ ์์ฑํ๊ณ , ๊ทธ ์์ ํ๋ก์ธ์ค๋ค์ด ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ๋ค. ์ด์ ๊ฐ์ด ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ป์ด๋๊ฐ๋ ๊ฒ์ ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค.
โจ ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ
๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์ด ๋ผ ๋, ๋ถ๋ชจ ํ๋ก์ธ์ค๋ fork๋ฅผ ํตํด ์์ ์ ๋ณต์ฌ๋ณธ์ ์์ ํ๋ก์ธ์ค๋ก ์์ฑํ๋ฉฐ ๋ง๋ค์ด์ง ๋ณต์ฌ๋ณธ์ exec๋ฅผ ํตํด ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ต์ฒดํ๋ค. fork ์์คํ ์ ํธ์ถํ์ฌ ์์ ์ ๋ณต์ฌ๋ณธ ์ฆ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์์(๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ, ์ด๋ฆฐ ํ์ผ์ ๋ชฉ๋ก ๋ฑ๋ฑ) ์ ์์๋ฐ๊ณ , ์ด์ ๊ฐ์ด ๋ณต์ฌ๋ณธ์ผ๋ก ๋ง๋ค์ด์ง ์์ ํ๋ก์ธ์ค๋ exec๋ผ๋ ์์คํ ํธ์ถ์ ํ๋ฉฐ ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ฎ์ด์์ด๋ค. ์ฆ, ์ฝ๋ ์์ญ๊ณผ ๋ฐ์ดํฐ ์์ญ์ ๋ด์ฉ์ด ์คํํ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ด์ฉ์ผ๋ก ๋ณ๊ฒฝ๋๊ณ , ํ๊ณผ ์คํ ์์ญ์ ์ด๊ธฐํ๋๋ค. ์์ ํ๋ก์ธ์ค๋ฅผ forkํ ๋ค์ ๋ฐ๋์ exec๋ฅผ ํธ์ถํ์ง ์์ ์๋ ์๋๋ฐ, ์ด์ ๊ฐ์ ๊ฒฝ์ฐ ๋ถ๋ชจ์ ์์ ํ๋ก์ธ์ค๋ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณํํ์ฌ ์คํํ๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
03. ์ค๋ ๋ (0) | 2024.03.08 |
---|---|
01. ํ๋ก์ธ์ค (0) | 2024.03.08 |