ํ๋ก์ธ์ค ์ํ๋ ์ปดํจํฐ ์์คํ ์์ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด๋ ์์ ์ ํ์ฌ ์ํ๋ฅผ ๋ํ๋ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ํ๋ก ๋๋ ์ ์์ต๋๋ค.
- ์์ฑ(New): ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๊ณ ์์ง ์ค์ผ์ค๋ง๋์ง ์์ ์ํ์ ๋๋ค.
- ์ค๋น(Ready): ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ ๋๋ค. ์ด ์ํ์์๋ ๋ชจ๋ ํ์ํ ์์์ ํ ๋น๋ฐ์ ์คํ์ ์์ํ ์ ์๋ ์ํ์ ๋๋ค.
- ์คํ(Running): CPU๋ฅผ ํ ๋น๋ฐ์ ์ค์ ๋ก ์ฝ๋๊ฐ ์คํ๋๊ณ ์๋ ์ํ์ ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์ด ์ํ์ ์๋ค๋ ๊ฒ์ ํ์ฌ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ์๋ฏธ์ ๋๋ค.
- ๋๊ธฐ(Waiting ๋๋ Blocked): ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ ๋๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก์ธ์ค๋ ๋ค์ ์ค๋น ์ํ๋ก ์ ํ๋ฉ๋๋ค.
- ์ข ๋ฃ(Terminated): ํ๋ก์ธ์ค๊ฐ ์คํ์ ์๋ฃํ๊ณ ์์์ ๋ชจ๋ ๋ฐ๋ฉํ ์ํ์ ๋๋ค.
์ด๋ฌํ ํ๋ก์ธ์ค ์ํ๋ ์ผ๋ฐ์ ์ผ๋ก ์ํ ์ ์ด๋๋ฅผ ํตํด ํํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ ์ด๋ฌํ ์ํ๋ค์ ์ํํ๋ฉด์ ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ก ์์ฑ๋ ํ๋ก์ธ์ค๋ ์ค๋น ์ํ๋ก ์ด๋ํ๊ณ , ์ค๋น ์ํ์์ ์คํ ์ํ๋ก ์ด๋ํ ํ ์ข
๋ฃ ์ํ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ์ํ๋ ์ด์์ฒด์ ์ ์ค์ผ์ค๋ฌ์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ, ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ค์ด ์ ์ ํ ์์๋ก ์คํ๋๋๋ก ์กฐ์ ๋ฉ๋๋ค.
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ๋ ์ด์์ฒด์ ์์ ํ๋ก์ธ์ค๋ค ๊ฐ์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค. ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด ์์ฑ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ๊ด๊ณ๋ฅผ ํตํด ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๊ฐ ํ์ฑ๋ฉ๋๋ค. ์ฃผ๋ก ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ , ์์ ํ๋ก์ธ์ค๋ ๋ ๋ค๋ฅธ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ์ ์ฃผ์ ํน์ง
- ๋ฃจํธ ํ๋ก์ธ์ค(Root Process): ์์คํ ์ด ๋ถํ ๋ ๋ ์์ฑ๋๋ ์ต์ด์ ํ๋ก์ธ์ค๋ฅผ ๋งํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๋ชจ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ์กฐ์์ด๋ฉฐ, ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์ต์์์ ์์นํฉ๋๋ค. (๋ฆฌ๋ ์ค์ ๊ฒฝ์ฐ systemd, MacOS : launchd)
- ๋ถ๋ชจ ํ๋ก์ธ์ค(Parent Process): ๋ค๋ฅธ ํ๋ ์ด์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ํ๋ก์ธ์ค๋ฅผ ๋งํฉ๋๋ค. ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ์์ฑํ ์์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ฉด ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ํด๋น ์์์ ๋ํ ์ํ ์ ๋ณด๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
- ์์ ํ๋ก์ธ์ค(Child Process): ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด ์์ฑ๋ ํ๋ก์ธ์ค๋ฅผ ๋งํฉ๋๋ค. ์์ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์์์ ์์๋ฐ๊ฒ ๋๋ฉฐ, ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ๋ ๋ค์ํ ์ด์์ฒด์ ์์ ์ง์๋๋ฉฐ, ์ด ๊ตฌ์กฐ๋ฅผ ํตํด ์์ ๊ด๋ฆฌ ๋ฐ ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฑ์ด ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, UNIX ๋ฐ Linux ์์คํ ์์๋ ๊ฐ ํ๋ก์ธ์ค๋ ๊ณ ์ ํ ํ๋ก์ธ์ค ID(PID)๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ถ๋ชจ ํ๋ก์ธ์ค์ PID๋ฅผ ์ ์ฅํ์ฌ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํํํฉ๋๋ค. ์ด๋ฌํ ๊ณ์ธต ๊ตฌ์กฐ๋ ์์คํ ์ ์์ ์ฑ ๋ฐ ์์ ๊ด๋ฆฌ์ ๋์์ ์ค ๋ฟ๋ง ์๋๋ผ, ์ฌ๋ฌ ์์ ์ ์กฐ์งํํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ตฌ์กฐ์ ์ธ ์๋จ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ
ํ๋ก์ธ์ค ์์ฑ์ ์ด์์ฒด์ ์์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ ์ค ํ๋์
๋๋ค. ์ฃผ์ํ ๋ ๊ฐ์ง ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ์ fork์ exec์
๋๋ค.
fork
- fork๋ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ์์คํ ์ฝ์ ๋๋ค. ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํฉ๋๋ค.
- fork๊ฐ ํธ์ถ๋๋ฉด, ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋ณต์ฌ๋ณธ์ด ์์ฑ๋์ด ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๊ฑฐ์ ๋์ผํ ์ํ๋ฅผ ๊ฐ์ต๋๋ค.
- ๋ถ๋ชจ์ ์์ ํ๋ก์ธ์ค๋ ๊ฐ์ ๊ณ ์ ํ ํ๋ก์ธ์ค ID(PID)๋ฅผ ๊ฐ๊ณ , ํ๋ก์ธ์ค์ ์ฝ๋, ๋ฐ์ดํฐ, ์คํ, ํ์ผ ๋์คํฌ๋ฆฝํฐ ๋ฑ์ ์์์ ๊ณต์ ํ์ง ์์ต๋๋ค.
- ๋ถ๋ชจ์ ์์์ ๋์์ ์คํ๋๋ฉฐ, ํ๋ก์ธ์ค ๊ฐ์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
exec
- exec๋ ํ์ฌ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ์๋ก์ด ํ๋ก์ธ์ค์ ์ด๋ฏธ์ง๋ก ๋์ฒดํฉ๋๋ค. ๊ธฐ์กด์ ํ๋ก์ธ์ค๋ฅผ ์๋ก์ด ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฎ์ด์์ฐ๋ ์ญํ ์ ํฉ๋๋ค.
- fork์ ํจ๊ป ์์ฃผ ์ฌ์ฉ๋์ด, ์์ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ํ์ exec๋ฅผ ํธ์ถํ์ฌ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ์คํํฉ๋๋ค.
- exec๋ ์ฌ๋ฌ ๋ณํ์ด ์์ผ๋ฉฐ, ๊ทธ ์ค ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํจ์๋ก๋ execl, execv, execle, execve ๋ฑ์ด ์์ต๋๋ค.
์ด๋ฌํ ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ์ ์กฐํฉํ์ฌ ์ฌ๋ฌ ์์ ์ ์ํํ๊ณ , ๋ค์ํ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฑ์ ๋ค์ํ ์์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ์ํ (Process States): The various conditions a process can be in while it is running on a computer system, encompassing states such as new, ready, running, waiting, and terminated.
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ (Process Hierarchy): A hierarchical organization in the operating system that illustrates parent-child relationships among processes, where a parent process can create and manage one or more child processes.
ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ (Process Creation Techniques): Methods for initiating new processes, with fork involving the duplication of the current process to create a child process, and exec entailing the replacement of the current process's address space with that of a new program for execution.
'Computer Science > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8 CPU Scheduling (0) | 2023.12.30 |
---|---|
7 Thread in Software (0) | 2023.12.28 |
5 User Space in Process (ํ๋ก์ธ์ค ์ฌ์ฉ์ ์์ญ) (0) | 2023.12.23 |
4 Process Outline (+Kernel Space) (1) | 2023.12.23 |
3 Dual Mode (User & Kernel mode) + System Call (1) | 2023.12.21 |
๋๊ธ