๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Dev Blog
CS/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค

by ์œ ์ง„์˜ 2023. 4. 13.
ํŒจ์ŠคํŠธ์บ ํผ์Šค ์šด์˜์ฒด์ œ ๊ฐ•์˜์™€ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋ž€?

ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ๋””์Šคํฌ ๊ฐ™์€ ์ €์žฅ์žฅ์น˜์— ๋ณด๊ด€๋˜์–ด ์žˆ๋‹ค๊ฐ€ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์€ ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์— ๋”ฐ๋ฅด๋ฉด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์„œ ์ž‘์—…์ด ์ง„ํ–‰๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๊ฒƒ์„ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ”„๋กœ์„ธ์Šค๋กœ์˜ ์ „ํ™˜

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

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

 

์œ„์˜ ๋‚ด์šฉ๋“ค์„ ์ข…ํ•ฉํ•ด ๋ณด์ž๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์šด์˜์ฒด์ œ ์˜์—ญ์— ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ PCB๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์ž ์˜์—ญ์— ํ”„๋กœ์„ธ์Šค๋กœ์จ ์˜ฌ๋ผ์™”๋‹ค๋Š” ๋œป์ด๋‹ค. ๋˜ํ•œ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋Š” ๊ฒƒ์€ ํ•ด๋‹น PCB๊ฐ€ ํ๊ธฐ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์˜ ์šด์˜์ฒด์ œ ์˜์—ญ์—์„œ ์‚ฌ๋ผ์ง„๋‹ค๋Š” ๋œป์ด๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ

๋งŒ์•ฝ, ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ๋ผ๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ CPU๋ฅผ ์–ป์–ด ์ž‘์—…์„ ๋งˆ์น  ๋•Œ๊นŒ์ง€ ์ ์œ ํ•˜๊ณ  ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ข…๋ฃŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ์„ฑ, ์‹คํ–‰, ์™„๋ฃŒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ํ˜„๋Œ€ ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ์ด๋ณด๋‹ค ํ›จ์”ฌ ๋ณต์žกํ•˜๋‹ค. CPU๋ฅผ ์–ป์–ด ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ์ผ์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์˜ค๋Š˜๋‚ ์˜ ์šด์˜์ฒด์ œ์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 

์ƒ์„ฑ ์ƒํƒœ

ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜ค๊ณ  ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ PCB๋ฅผ ํ• ๋‹น๋ฐ›์€ ์ƒํƒœ๋‹ค.

 

์ค€๋น„ ์ƒํƒœ

์‹คํ–‰ ๋Œ€๊ธฐ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž๊ธฐ ์ˆœ์„œ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ๋‹ค. PCB๋Š” ์ค€๋น„ ํ(Ready Queue)์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ CPU ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค. CPU ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ค€๋น„ ์ƒํƒœ์—์„œ ์ค€๋น„ ํ๋ฅผ ๋ช‡ ๊ฐœ ์šด์˜ํ• ์ง€, ์–ด๋–ค PCB๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 

์ด๋•Œ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ๋””์ŠคํŒจ์น˜(Dispatch)๋ผ๊ณ  ํ•œ๋‹ค.

 

์‹คํ–‰ ์ƒํƒœ

ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ์ƒํƒœ๋‹ค. ์ค€๋น„ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ์‹คํ–‰ ์ƒํƒœ์— ๋“ค์–ด๊ฐ€๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋Š” CPU์˜ ๊ฐœ์ˆ˜๋งŒํผ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์—๊ฒŒ ์ฃผ์–ด์ง„ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค ๋™์•ˆ๋งŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ฃผ์–ด์ง„ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค๋ฅผ ๋‹ค ์‚ฌ์šฉํ•˜๋ฉด PCB๋ฅผ ์ค€๋น„ ์ƒํƒœ๋กœ ์˜ฎ๊ธฐ๋Š”๋ฐ ์ด๋ฅผ ํƒ€์ž„์•„์›ƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.
- ์‹คํ–‰ ์ƒํƒœ ๋™์•ˆ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์™„๋ฃŒ ์ƒํƒœ๋กœ ์˜ฎ๊ธด๋‹ค.
- ์‹คํ–‰ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์„ ์š”์ฒญํ•˜๋ฉด CPU๋Š” ์ž…์ถœ๋ ฅ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ž…์ถœ๋ ฅ์„ ์š”์ฒญํ•˜๊ณ  ํ•ด๋‹น PCB๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ์˜ฎ๊ธด๋‹ค. 

 

๋Œ€๊ธฐ ์ƒํƒœ(Blocking Status / Wait Status)

์ž…์ถœ๋ ฅ ์š”์ฒญ ๊ฐ™์€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค. ๊ฐ ์žฅ์น˜๋ณ„๋กœ ๋งˆ๋ จ๋˜์–ด ์žˆ๋Š” ๋Œ€๊ธฐ ํ์— PCB๋“ค์ด ๋“ค์–ด๊ฐ€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

์ž…์ถœ๋ ฅ ๋“ฑ์˜ ์ด๋ฒคํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๊ณ  ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์š”์ฒญํ•œ PCB๋ฅผ ์ฐพ์•„ ์ค€๋น„ ์ƒํƒœ๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

 

์™„๋ฃŒ ์ƒํƒœ

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์ƒํƒœ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์™€ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œํ•˜๊ณ  PCB๋ฅผ ํ๊ธฐํ•œ๋‹ค. ๋งŒ์•ฝ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ๊ฐ•์ œ ์ข…๋ฃŒ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•์ œ ์ข…๋ฃŒ ์ง์ „์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ์ €์žฅ์žฅ์น˜๋กœ ์˜ฎ๊ธฐ๋Š” ์ฝ”์–ด ๋คํ”„๋ฅผ ํ•œ๋‹ค. ์ข…๋ฃŒ ์ง์ „์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•จ์œผ๋กœ์จ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

ํ™œ์„ฑ ์ƒํƒœ์™€ ๋ณด๋ฅ˜ ์ƒํƒœ

์œ„์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ์ƒํƒœ๋Š” ํ™œ์„ฑ ์ƒํƒœ(Active Status)๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ์—๋Š” ํ™œ์„ฑ ์ƒํƒœ ์™ธ์— ํœด์‹ ์ƒํƒœ(Pause Status)์™€ ๋ณด๋ฅ˜ ์ƒํƒœ(Suspend Status)๋ผ๋Š” ํŠน์ˆ˜ํ•œ ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค.

 

ํœด์‹ ์ƒํƒœ

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘์—…์„ ์ผ์‹œ์ ์œผ๋กœ ์‰ฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ๋‹ค. ํœด์‹ ์ƒํƒœ์ธ ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉํ•˜๋˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ทธ๋Œ€๋กœ ์žˆ๊ณ  PCB๋„ ์œ ์ง€๋˜๋ฏ€๋กœ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉˆ์ถ˜ ์ง€์ ์—์„œ๋ถ€ํ„ฐ ์žฌ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ณด๋ฅ˜ ์ƒํƒœ

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ž ์‹œ ์ซ“๊ฒจ๋‚œ ์ƒํƒœ์ด๋‹ค. ๋ณด๋ฅ˜ ์ƒํƒœ์— ๋“ค์–ด๊ฐ„ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฐ–์œผ๋กœ ์ซ“๊ฒจ๋‚˜ ์Šค์™‘ ์˜์—ญ์— ๋ณด๊ด€๋œ๋‹ค. ์Šค์™‘ ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ซ“๊ฒจ๋‚œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž„์‹œ๋กœ ๋ณด๊ด€๋˜๋Š” ๊ณณ์ด๋‹ค. ํœด์‹ ์ƒํƒœ์™€ ๊ตฌ๋ถ„ํ•˜์ž๋ฉด ํœด์‹ ์ƒํƒœ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋‚˜ ๋ฉˆ์ถ˜ ์ƒํƒœ์ด๊ณ , ๋ณด๋ฅ˜ ์ƒํƒœ๋Š” ์Šค์™‘ ์˜์—ญ์— ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

 

๋Œ€๊ธฐ ์ƒํƒœ์— ์žˆ๋‹ค๊ฐ€ ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ์˜ฎ๊ฒจ์ง„ ๋ณด๋ฅ˜ ๋Œ€๊ธฐ ์ƒํƒœ์™€ ์ค€๋น„ ์ƒํƒœ์— ์žˆ๋‹ค๊ฐ€ ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ์˜ฎ๊ฒจ์ง„ ๋ณด๋ฅ˜ ์ค€๋น„ ์ƒํƒœ๋กœ ๊ตฌ๋ถ„๋˜๊ณ  ๊ฐ ์ƒํƒœ์—์„œ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ์›๋ž˜์˜ ํ™œ์„ฑ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ๋ณดํ†ต ์ž…์ถœ๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž…์ถœ๋ ฅ์ด ๊ณ„์† ์ง€์—ฐ๋˜๋ฉด ๋ณด๋ฅ˜ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๋Š”๋ฐ, ์ด๋•Œ ๋ณด๋ฅ˜ ๋Œ€๊ธฐ ์ƒํƒœ์—์„œ ์ž…์ถœ๋ ฅ์ด ์™„๋ฃŒ๋˜๋ฉด ํ™œ์„ฑ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๋ณด๋ฅ˜ ์ค€๋น„ ์ƒํƒœ๋กœ ์˜ฎ๊ฒจ๊ฐ„๋‹ค.

 

 

 


ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก๊ณผ ๋ฌธ๋งฅ ๊ตํ™˜

 

ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก

 

ํฌ์ธํ„ฐ

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค€๋น„์ƒํƒœ๋‚˜ ๋Œ€๊ธฐ ์ƒํƒœ์ผ ๊ฒฝ์šฐ์— ํ๋กœ ์šด์˜์ด ๋˜๋Š”๋ฐ, ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก์„ ์—ฐ๊ฒฐ ์‹œ ํ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค ์ƒํƒœ

์ƒ์„ฑ, ์ค€๋น„, ์‹คํ–‰, ๋Œ€๊ธฐ, ์™„๋ฃŒ, ๋ณด๋ฅ˜ ๋“ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ˜„์žฌ ์–ด๋– ํ•œ ์ƒํƒœ์— ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค ๊ตฌ๋ถ„์ž(PID)

์šด์˜์ฒด์ œ ๋‚ด์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ถ„์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC)

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค€๋น„์ƒํƒœ์—์„œ ์‹คํ–‰์ƒํƒœ ๊ฐˆ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์‹คํ–‰๋  ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋˜๋Š” ์‹คํ–‰์ƒํƒœ์—์„œ ์ค€๋น„์ƒํƒœ๋กœ ๊ฐˆ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์— ์ €์žฅํ•˜์—ฌ ๋‹ค์Œ ์‹คํ–‰๋  ๋ช…๋ น์–ด ์œ„์น˜๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค ์šฐ์„ ์ˆœ์œ„

CPU ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ค€๋น„ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ์‹คํ–‰ ์ƒํƒœ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•  ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ผ๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•œ๋‹ค.

 

๊ฐ์ข… ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉํ–ˆ๋˜ ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด(๋ˆ„์‚ฐ๊ธฐ(Accumulator), ์ƒ‰์ธ ๋ ˆ์ง€์Šคํ„ฐ, ์Šคํƒ ํฌ์ธํ„ฐ ๋“ฑ)๋“ค์ด ์ €์žฅ๋œ๋‹ค. ์ด์ „ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๋“ค์„ ์ €์žฅํ•ด์•ผ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๊ด€ํ•œ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ, ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ์ด์™ธ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ํ…Œ์ด๋ธ”, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๋“ฑ์˜ ์ •๋ณด๋„ ํฌํ•จ๋œ๋‹ค.

 

ํ• ๋‹น๋œ ์ž์› ์ •๋ณด

ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ž…์ถœ๋ ฅ ์ž์›, ์˜คํ”ˆ ํŒŒ์ผ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŒŒ์ผ์„ ์˜คํ”ˆํ•˜์—ฌ ์ž‘์—…ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๊ฒฝ์šฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

 

๊ณ„์ • ์ •๋ณด

๊ณ„์ • ๋ฒˆํ˜ธ, CPU ํ• ๋‹น ์‹œ๊ฐ„, CPU ์‚ฌ์šฉ ์‹œ๊ฐ„ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค.

 

PPID์™€ CPID

๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค ๊ตฌ๋ถ„์ž(Parent PID)์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ตฌ๋ถ„์ž(Child PID) ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ๋‹ค.

 

๋ฌธ๋งฅ ๊ตํ™˜

๋ฌธ๋งฅ ๊ตํ™˜(Context Switching)์€ CPU๋ฅผ ์ฐจ์ง€ํ•˜๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚˜๊ฐ€๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ›์•„๋“ค์ด๋Š” ์ž‘์—…์„ ๋งํ•œ๋‹ค. CPU์—์„œ ๋‚˜๊ฐ€๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์ง€๊ธˆ๊นŒ์ง€์˜ ์ž‘์—… ๋‚ด์šฉ์„ PCB์— ์ €์žฅํ•˜๊ณ  ์ƒˆ๋กœ ๋“ค์–ด์˜ค๋Š” ํ”„๋กœ์„ธ์Šค๋Š” PCB์˜ ๋‚ด์šฉ์œผ๋กœ CPU๊ฐ€ ๋‹ค์‹œ ์„ธํŒ…๋œ๋‹ค. ์ด์™€ ๊ฐ™์ด ๋‘ ํ”„๋กœ์„ธ์Šค์˜ PCB๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ž‘์—…์ด ๋ฌธ๋งฅ ๊ตํ™˜์ด๋‹ค.

๋ฌธ๋งฅ ๊ตํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์–‘ํ•˜๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ํ”„๋กœ์„ธ์Šค์˜ ํƒ€์ž„ ํ€€ํ…€์ด ์ง€๋‚˜๋ฉด ๋ฐœ์ƒํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๊ฑธ๋ ธ์„ ๋•Œ๋„ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋•Œ, ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ž‘์—… ๋‚ด์šฉ์„ PCB์— ์ €์žฅ ํ›„ ์ธํ„ฐ๋ŸฝํŠธ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋งŒ๋“ ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋Š” ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ, ์ด์™€ ๊ฐ™์ด ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ์‹œ์—๋„ ๋ฌธ๋งฅ ๊ตํ™˜์ด ๋ฐœ์ƒํ•œ๋‹ค.

 


ํ”„๋กœ์„ธ์Šค์˜ ์—ฐ์‚ฐ

 

ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌ์กฐ

ํ”„๋กœ์„ธ์Šค๋Š” ์ฝ”๋“œ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ, ํž™ ์˜์—ญ, ์Šคํƒ ์˜์—ญ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.



์ฝ”๋“œ ์˜์—ญ

์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ ํ•จ์ˆ˜๋“ค์˜ ์ฝ”๋“œ๊ฐ€ CPU์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด ๋ช…๋ น ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋˜์–ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ •๋˜๊ณ  ์ค‘๊ฐ„์— ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๊ฒŒ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ์˜์—ญ

์ „์—ญ ๋ณ€์ˆ˜ ๋˜๋Š” static ๋ณ€์ˆ˜ ๋“ฑ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜ ๋˜๋Š” static ๊ฐ’์„ ์ฐธ์กฐํ•œ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋ฐ”๋€๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜๋‚˜ static ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์–ด ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ† ๋ก ๋˜์–ด ์žˆ๋‹ค.

 

ํž™ ์˜์—ญ

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค. ํž™ ์˜์—ญ์€ ์ปดํŒŒ์ผ ํƒ€์ž„์ด ์•„๋‹Œ ๋Ÿฐํƒ€์ž„(ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘)์— ๊ฒฐ์ •๋œ๋‹ค.

 

์Šคํƒ ์˜์—ญ

ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰์„ ๋งˆ์น˜๊ณ  ๋ณต๊ท€ํ•  ์ฃผ์†Œ ๋ฐ ๋ฐ์ดํ„ฐ(์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด๊ฐ’ ๋“ฑ)๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์ด ์˜์—ญ์€ ํ•จ์ˆ˜ํ˜ธ์ถœ ์‹œ ๊ธฐ๋กํ•˜๊ณ  ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ๋ผ์ง„๋‹ค. ์ปดํŒŒ์ผ ์‹œ ์Šคํƒ ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ์ • ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜๋ณตํ•ด์„œ ํ˜ธ์ถœ๋˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๊ฐ€ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•  ์ •๋„๋กœ ๋„ˆ๋ฌด ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด stack overflow๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ๋ณต์‚ฌ

์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์™€ ์ฝ”๋“œ ์˜์—ญ์— ๋„ฃ๊ณ  PCB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ ์˜์—ญ๊ณผ ์Šคํƒ ์˜์—ญ์„ ํ™•๋ณดํ•œ ํ›„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

fork() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๊ฐœ๋…

ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค. fork( ) ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ปค๋„์—์„œ ์ œ๊ณตํ•˜๋Š” ์ด ํ•จ์ˆ˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ์ผ์ข…์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด๋‹ค. ์ด๋•Œ ์‹คํ–‰ํ•˜๋˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค, ์ƒˆ๋กœ ์ƒ๊ธด ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค๋กœ์„œ ๋ถ€๋ชจ - ์ž์‹ ๊ด€๊ณ„๊ฐ€ ๋œ๋‹ค.

 

fork() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๋™์ž‘ ๊ณผ์ •

 

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

- PID๊ฐ€ ๋ฐ”๋€๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” 326, ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” 368์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ฐ”๋€๋‹ค.

- PPID์™€ CPID๊ฐ€ ๋ฐ”๋€๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ PPID๋Š” 326์ด๊ณ  CPID๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ -1๋กœ ๋ผ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์—๋Š” -1์ด์—ˆ๋˜ CPID๊ฐ€ 368๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

 

fork() ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์žฅ์ 

 

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

 

ํ”„๋กœ์„ธ์Šค์˜ ์ „ํ™˜

exec() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๊ฐœ๋…

 

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

exec() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๋™์ž‘ ๊ณผ์ •

  • ์ฝ”๋“œ ์˜์—ญ์— ์žˆ๋Š” ๊ธฐ์กด์˜ ๋‚ด์šฉ์„ ์ง€์šฐ๊ณ  ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋กœ ๋ฐ”๊พผ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์˜์—ญ์ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ์ฑ„์›Œ์ง€๊ณ  ์Šคํƒ ์˜์—ญ์€ ๋ฆฌ์…‹๋œ๋‹ค.
  • PCB์˜ PID, PPID, CCID, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์ •๋ณด ๋“ฑ์€ ๋ฐ”๋€Œ์ง€ ์•Š์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ, ๊ฐ์ข… ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด์™€ ์‚ฌ์šฉํ•œ ํŒŒ์ผ ์ •๋ณด๋Š” ๋ชจ๋‘ ๋ฆฌ์…‹๋œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ

 

์œ ๋‹‰์Šค์˜ ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ

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

 

์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์ข…๋ฃŒ๋œ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ํšŒ์ˆ˜ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค.

 

๊ณ ์•„ ํ”„๋กœ์„ธ์Šค์™€ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค

 

๊ณ ์•„ ํ”„๋กœ์„ธ์Šค

์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์ข…๋ฃŒ๋˜๋ฉด ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.

 

์ข€๋น„ ํ”„๋กœ์„ธ์Šค

์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ๋Š”๋ฐ๋„ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋’ค์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ๋งŒ์•ฝ ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉด ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๋Š” ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.

 

 

๐Ÿ’ก ๋” ๋‚˜์•„๊ฐ€๊ธฐ

๋Œ€๋‹ค์ˆ˜์˜ ์šด์˜์ฒด์ œ์—์„œ PID 1 ์€ init ํ”„๋กœ์„ธ์Šค(UNIX ๊ณ„์—ด OS) ํ˜น์€ init ํ”„๋กœ์„ธ์Šค ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ ธ๊ฐ„๋‹ค. init ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž…์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ์ง/๊ฐ„์ ‘์ ์ธ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋ฉด init ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์–‘ํ•˜์—ฌ ํ•ด๋‹น ๊ณ ์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜์ง€ ์•Š๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

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

์ฐธ๊ณ ๋กœ init ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค์ด๋ฏ€๋กœ ์ด์™€ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ์‹œ๊ทธ๋„์— ๋Œ€ํ•œ ์‹œ๊ทธ๋„ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค.

 

๋Œ“๊ธ€