์šด์˜์ฒด์ œ

[OS] ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ์šด์˜ / ์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie Process) ์™€ ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค(Orphan Process)

499.token.required 2024. 7. 16. 15:27

๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ

 

๋Œ€๋ถ€๋ถ„ ์‹œ์Šคํ…œ ๋‚ด์˜ ํ”„๋กœ์„ธ์Šค๋“ค์€ ๋ณ‘ํ–‰ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ˜๋“œ์‹œ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ•์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค. ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์„œ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋“ค์€ ๊ฐ๊ฐ ๋‹ค์‹œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜์žˆ๋‹ค.

 

์ด ๋•Œ, CPU๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ์— ๋‹ค์–‘ํ•œ ์ž‘์—…๋“ค์ด ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  CPU๋Š” ์—ฌ์ „ํžˆ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ์„ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ ๋™์‹œ์— ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. (๋ณ‘๋ ฌ๊ณผ ๋™์‹œ๋Š” ๋‹ค๋ฆ„)

 

 

 

 

 

 

์šด์˜์ฒด์ œ๋“ค์€ ํ”„๋กœ์„ธ์Šค์‹๋ณ„์ž(pid)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์€ ์ „ํ˜•์ ์ธ ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„๊ณผ pid๋ฅผ ๋ณด์ธ๋‹ค. ์–ธ์ œ๋‚˜ pid๊ฐ€ 1์ธ systemd ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋“  ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์˜ ๋ฃจํŠธ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

pid 1์€ ์‹œ์Šคํ…œ์ด ๋ถ€ํŠธ๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋กœ ์‹œ์Šคํ…œ์ด ๋ถ€ํŒ…ํ•˜๋ฉด systemed ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค์—๋Š” ์›น ๋˜๋Š” ํ”„๋ฆฐํŠธ ์„œ๋ฒ„, ssh ์„œ๋ฒ„ ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค.

 

 

 

 

 

 

 

“ps -ef” ๋Š” Unix ๋ฐ Unix ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ์˜ต์…˜

 

fork()๋ฅผ ํ†ตํ•œ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์—๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ๋‹ค.

 

  1. ์ž์› ๊ณต์œ  ์˜ต์…˜ (Resource Sharing Options):
    • Parent and children share all resources: ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋“  ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค. ์ฆ‰, ๋ถ€๋ชจ์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ํŒŒ์ผ, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ๊ณต๊ฐ„ ๋“ฑ ๋ชจ๋“  ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค.
    • Child shares subset of parent’s resources: ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ด์–ด ๋‘” ํŒŒ์ผ ์ค‘ ์ผ๋ถ€๋งŒ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Parent and child share no resources: ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋– ํ•œ ์ž์›๋„ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
  2. ์‹คํ–‰ ์˜ต์…˜ (Execution Options):
    • Parent and child execute concurrently: ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ, ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
    • Parent waits until child terminates: ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ๋ธ”๋ก๋œ๋‹ค.
  3. ์ฃผ์†Œ ๊ณต๊ฐ„ (Address Space):
    • Child is a duplicate of the parent: ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•œ๋‹ค. ์ฆ‰, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์šฉ์ด ์ž์‹ ํ”„๋กœ์„ธ์Šค์— ๋ณต์‚ฌ๋œ๋‹ค.
    • Child has a new program loaded into it:  ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€๋Š” ๋ณ„๋„์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฉฐ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

* ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์˜ต์…˜์€ ์ถ”ํ›„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋ถ„์—์„œ ๋”์šฑ ์ž์„ธํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.

 

 

๐Ÿ“Œ  fork(), exec(), wait(), exit()

 

- fork() 

 

 

 

 

 

fork() ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์ œํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ, ํŒŒ์ผ ๋งคํ•‘ ๋ฐ ์–ธ๋งคํ•‘์ด ์ด๋ฃจ์–ด์ง„๋‹ค๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ์ˆ˜์ •์ด ์ผ์–ด๋‚œ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

fork() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ๋ถ€๋ชจ๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ PID๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๊ณ  ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ return ๊ฐ’์€ ‘0’ ์„  ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

- fork() ์˜ˆ์‹œ

 

 

 

 

 

- exec() 

 

 fork() ์‹œ์Šคํ…œ ์ฝœ ๋‹ค์Œ์— ๋‘ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ง€ํ•˜๊ณ   ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ exec() ์‹œ์Šคํ…œ ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž์‹ ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค. exec() ์‹œ์Šคํ…œ ์ฝœ์€ ์ด์ง„ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ ์žฌํ•˜๋Š”๋ฐ ์ด ๋•Œ exec() ์‹œ์Šคํ…œ ์ฝœ์„ ํฌํ•จํ•˜๋Š” ์›๋ž˜์˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ด๋ฏธ์ง€๋ฅผ ํŒŒ๊ดดํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๋ฆฌ๊ณ  ์ด์–ด ๊ทธ๋“ค ๊ฐ์ž์˜ ๊ธธ์„ ๊ฐ„๋‹ค. ๊ทธ ํ›„ ๋ถ€๋ชจ๋Š” ๋” ๋งŽ์€ ์ž์‹์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋˜๋Š” ์ž์‹์ด ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ํ•  ์ผ์ด ์—†์œผ๋ฉด, ์ž์‹์ด ์ข…๋ฃŒ ๋ ๋•Œ๊นŒ์ง€ ์ค€๋น„ ํ์—์„œ ์ž์‹ ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด wait() ์‹œ์Šคํ…œ ์ฝœ์„ ํ•œ๋‹ค.

 

 

- wait() 

 

 

 

์ฃผ๋กœ fork() ๋ฅผ ์ด์šฉํ•ด์„œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ–ˆ์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” sleep()๋ชจ๋“œ๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋˜๋Š”๋ฐ, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ๋จผ์ € ์ข…๋ฃŒ๋˜์–ด ์ž์‹์ด ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋Š” ๊ฒƒ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

 wait() ๋ฅผ ์“ฐ๋ฉด ์ž์‹ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒํ• ๋•Œ๊นŒ์ง€ ํ•ด๋‹น์˜์—ญ์—์„œ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ sleep() ๋ชจ๋“œ๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋œ๋‹ค.

 

์ด ๋•Œ , ๋ฆฌํ„ด ๊ฐ’์€ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒฝ์šฐ -1 , ์„ฑ๊ณตํ•  ๊ฒฝ์šฐ child proccss์˜ ID๋ฅผ return ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

- exit() 

 

 

ํ”„๋กœ์„ธ์Šค๋Š” ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์„ ์‹คํ–‰ํ•œ ํ›„ ์šด์˜ ์ฒด์ œ์— exit() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์š”์ฒญํ•œ๋‹ค.

๋ถ€๋ชจ๋Š” wait()๋ฅผ ํ†ตํ•ด ์ž์‹์˜ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์€ ์šด์˜ ์ฒด์ œ์— ์˜ํ•ด ํ• ๋‹น ํ•ด์ œ๋œ๋‹ค.

์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋œ ์ž์›์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜  ์ž์‹์—๊ฒŒ ํ• ๋‹น๋œ ์ž‘์—…์ด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ

์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ถ€ ์šด์˜ ์ฒด์ œ๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ๋„ ํ•œ๋‹ค.

 

 

๐Ÿ“Œ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie Process) ์™€ ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค (Orphan Process) 

 

์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie Process) ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฃฝ์ง€ ์•Š๊ณ  ์‚ด์•„์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€  ์ข…๋ฃŒ๋˜๋ฉด ๋ถ€๋ชจ์˜ wait ์ƒํƒœ๊ฐ€ ๋๋‚˜๊ณ  ์ปค๋„์—๊ฒŒ ์ž์›์„ ๋ฐ˜๋‚ฉํ•ด์•ผ ํ•˜์ง€๋งŒ ๋ถ€๋ชจ๊ฐ€ wait()์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š์€๋‹ค๋ฉด, ์ž์‹์€ ๋กœ์ง์„ ๋ชจ๋‘ ๋งˆ์ณค์ง€๋งŒ ์ž์›์„ ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜๋‚ฉํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ๋‚จ์•„์žˆ๊ฒŒ ๋œ๋‹ค.

์ฆ‰ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ์ข…๋ฃŒ๋˜์—ˆ์ง€๋งŒ, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ wait() System Call์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„ ์ž์›์„ ๋ฐ˜๋‚ฉํ•˜์ง€ ๋ชปํ•˜๊ณ  ์‚ด์•„ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋œปํ•œ๋‹ค.

 

์ข€๋น„ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

 

1. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Šฆ๊ฒŒ๋ผ๋„ wait() ์„ ํ˜ธ์ถœํ•˜์—ฌ ์ž์‹์˜ ์ž์›์„ ๋ฐ˜๋‚ฉํ•œ๋‹ค.

2. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค. -> ์ด ๊ณผ์ •์—์„œ ๋ชจ๋“  ์ž์‹์ด ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋‹ค.

3. ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒ ํ•œ๋‹ค.

 

๊ณ ์•„ ํ”„๋กœ์„ธ์Šค(Orphan Process) ๋Š” ์ž์‹์ด ์ข…๋ฃŒ๋˜๊ธฐ๋„ ์ „์— ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์ข…๋ฃŒ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋ถ€๋ชจ๊ฐ€ ์‚ฌ๋ผ์ง„ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” wait() ์„ ํ˜ธ์ถœํ•ด์ค„ ๋ถ€๋ชจ๊ฐ€ ์‚ฌ๋ผ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ข€๋น„ ํ”„๋กœ์„ธ์Šค์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด

 

์ปค๋„์€ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์žฅ ์ตœ๊ณ  ์กฐ์ƒ์ธ init ํ”„๋กœ์„ธ์Šค ์—๊ฒŒ ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž…์–‘ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค์˜ ๋ถ€๋ชจ๋Š” init์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie Process) ์˜ˆ์‹œ