ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ๊ฐ์ง ์ํ ๊ฐ์ ๊ฐ์ง๋ค.
์์ฑ(create)
์์ฑ ์ํ๋ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ์ํ๋ฅผ ์๋ฏธํ๋ฉฐ, fork() ๋๋ exec() ํจ์๋ฅผ ํตํด ์์ฑํ๋ค. ์ด๋ PCB(Process Control Block)๊ฐ ํ ๋น๋๋ค.
- fork()๋ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๊ทธ๋๋ก ๋ณต์ฌํ๋ฉฐ, ์๋ก์ด ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ํจ์์ด๋ค. ์ฃผ์ ๊ณต๊ฐ๋ง ๋ณต์ฌํ ๋ฟ์ด๊ณ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋น๋๊ธฐ ์์ ๋ฑ์ ์์ํ์ง ์๋๋ค.
- exec()๋ ์๋กญ๊ฒ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ํจ์์ด๋ค.
์ค๋น(ready)
์ค๋น ์ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ถฉ๋ถํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๊ณ , ์๋๋ฉด ์๋ ์ํ๋ก ๋๊ธฐ๋ฅผ ํ๊ณ ์๋ค๊ฐ CPU ์ค์ผ์ค๋ฌ๋ก๋ถํฐ CPU ์์ ๊ถ์ด ๋์ด์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ด๋ค. ์ด๋ CPU ์์ ๊ถ์ ๋ฐ์ ์คํ ์ํ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ ๋์คํจ์น(dispatch)๋ผ ํ๋ค.
์คํ(running)
CPU ์์ ๊ถ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๊ณ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ธ ์ํ๋ฅผ ์๋ฏธํ๋ค.
๋๊ธฐ(wait)
์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์ดํ ๊ธฐ๋ค๋ฆฌ๋ฉด์ ํ๋ก์ธ์ค๊ฐ ์ฐจ๋จ๋ ์ํ์ด๋ค. I/O ๋๋ฐ์ด์ค์ ์ํ ์ธํฐ๋ฝํธ๋ก ์ด๋ฐ ํ์์ด ๋ง์ด ๋ฐ์ํ๋ค.
์ข ๋ฃ(terminated)
์ข ๋ฃ ์ํ๋ ๋ฉ๋ชจ๋ฆฌ์ CPU ์์ ๊ถ์ ๋ชจ๋ ๋๊ณ ๊ฐ๋ ์ํ๋ฅผ ๋งํ๋ค. ์ข ๋ฃ๋ ์์ฐ์ค๋ฝ๊ฒ ์ข ๋ฃ๋๊ธฐ๋ ํ์ง๋ง, ํ ๋น๋ ์์์ ํ๊ณ์น๋ฅผ ๋์ด์๊ฑฐ๋ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋, ์ฌ์ฉ์๊ฐ process.kill ๋ฑ ์ฌ๋ฌ ๋ช ๋ น์ด๋ก ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ ๋ ๋ฐ์ํ๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] PCB(Process Control Block) (0) | 2023.08.28 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (0) | 2023.08.28 |
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ์ปดํ์ผ ๊ณผ์ (0) | 2023.08.27 |
[์ด์์ฒด์ ] ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ(ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ) (0) | 2023.08.25 |
[์ด์์ฒด์ ] ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ(๋ฉ๋ชจ๋ฆฌ ํ ๋น) (0) | 2023.08.25 |