
๋ถ๋ชจ ํ๋ก์ธ์ค(Parent Process)๊ฐ ์์ ํ๋ก์ธ์ค(Children Process) ์์ฑ(๋ณต์ ํด์ ์์ฑ)
ํ๋ก์ธ์ค์ ํธ๋ฆฌ(๊ณ์ธต ๊ตฌ์กฐ) ํ์ฑ
ํ๋ก์ธ์ค๋ ์์์ ํ์๋ก ํจ
์์์ ๊ณต์
์ํ(Execution)
์ฃผ์ ๊ณต๊ฐ(Address Space)
์ ๋์ค์ ์
fork() ์์คํ ์ฝ์ด ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑ
fork() ๋ค์์ ์ด์ด์ง๋ exec() ์์คํ ์ฝ์ ํตํด ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆผ
ํ๋ก์ธ์ค๊ฐ ๋ง์ง๋ง ๋ช ๋ น์ ์ํํ ํ ์ด์์ฒด์ ์๊ฒ ์ด๋ฅผ ์๋ ค์ค(exit)
๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์์ ์ํ์ ์ข ๋ฃ์ํด(abort)
์์์ด ํ ๋น ์์์ ํ๊ณ์น๋ฅผ ๋์ด์ฌ
์์์๊ฒ ํ ๋น๋ task๊ฐ ๋ ์ด์ ํ์ํ์ง ์์
๋ถ๋ชจ๊ฐ ์ข ๋ฃ(exit)ํ๋ ๊ฒฝ์ฐ

A process is created by the fork() system call.
ํ๋ก์ธ์ค์ ์์ฑ ์ฆ ๋ณต์ ๋ fork()๋ผ๋ ์์คํ ์ฝ๋ก ์คํ๋จ. ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ง์ ๋ณต์ ํ๋ ๊ฒ์ฒ๋ผ ์คํดํ ์ ์์ผ๋ ์์คํ ์ฝ๋ก ์์ฑํ๋ค๋ ๋ง์ ์ด์์ฒด์ ๊ฐ ๋ณต์ ํ๋ค๋ ๋ป์.
์์ ํ๋ก์ธ์ค๋ fork() ์์คํ ์ฝ๋ก ์์ฑ๋ ํ ๋ฉ์ธํจ์ ์์๋ถํฐ ์คํ๋๋ ๊ฒ์ด ์๋๋ผ fork() ํจ์ ์ดํ๋ถํฐ ์คํ ๋จ.(๋ถ๋ชจ์ PC๊น์ง ๊ทธ๋๋ก ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ์ PC๋ fork๋ถ๋ถ์ ๊ฐ๋ฆฌํค๊ณ ์์ ๊ฒ์)
๊ทธ๋ผ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์์ ํ๋ก์ธ์ค๋ ์ด๋ป๊ฒ ๊ตฌ๋ถ์ ํ๋๊ฐ?
๋ถ๋ชจ์ ์์์ fork return value๊ฐ ๋ค๋ฆ
๋ถ๋ชจ ํ๋ก์ธ์ค๋ fork์ ๊ฒฐ๊ณผ๊ฐ์ด ์์์ด๊ณ ์์ ํ๋ก์ธ์ค๋ fork์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก 0์ด ๋ฐํ๋จ

A process can execute a different program by the exec() system call.
์์์ ์์ฑ ํ ๋ค์์ ์์ ํ ์๋ก์ด ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฎ์ด์

ํ๋ก์ธ์ค A๊ฐ wait() ์์คํ ์ฝ์ ํธ์ถํ๋ฉด
์๋ฐ์ ์ข ๋ฃ
๋น์๋ฐ์ ์ข ๋ฃ
๋
๋ฆฝ์ ํ๋ก์ธ์ค(Independent process)
ํ๋ก์ธ์ค๋ ๊ฐ์์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์ํ๋๋ฏ๋ก ์์น์ ์ผ๋ก ํ๋์ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ์ ์ํฅ์ ๋ฏธ์น์ง ๋ชปํจ
ํ๋ ฅ ํ๋ก์ธ์ค(Cooperating process)
ํ๋ก์ธ์ค ํ๋ ฅ ๋งค์ปค๋์ฆ์ ํตํด ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ์ ์ํฅ์ ๋ฏธ์น ์ ์์
ํ๋ก์ธ์ค ๊ฐ ํ๋ ฅ ๋งค์ปค๋์ฆ(IPC :Interprocess Communication)
๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ
์ฃผ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ
* thread : thread๋ ์ฌ์ค์ ํ๋์ ํ๋ก์ธ์ค์ด๋ฏ๋ก ํ๋ก์ธ์ค ๊ฐ ํ๋ ฅ์ผ๋ก ๋ณด๊ธฐ๋ ์ด๋ ต์ง๋ง ๋์ผํ process๋ฅผ ๊ตฌ์ฑํ๋ thread๋ค ๊ฐ์๋ ์ฃผ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ฏ๋ก ํ๋ ฅ์ด ๊ฐ๋ฅ

