๐Ÿ“Œ Process Management 2

๋ชจ๊น…ยท2023๋…„ 4์›” 2์ผ
0

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

  • ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ณต์ œ์ƒ์„ฑ์ด๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜‘๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
    -> ๋ณต์ œ๋ผ๋Š” ๊ฒƒ์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ์„ ๋ชจ๋‘ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค
    -> ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ๊ณต๊ฐ„์ธ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ์„ ๋ชจ๋‘ ๋ณต์‚ฌํ•ด์„œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ CPU๋ฌธ๋งฅ ์ฆ‰, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์—์„œ instruction์„ ์–ด๋””๊นŒ์ง€ ์‹คํ–‰ํ–ˆ๋Š”๊ฐ€ ๊ทธ๊ฑธ ๋‚˜ํƒ€๋‚ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ธ ํ”„๋กœ๊ทธ๋žจ์นด์šดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•œ๋‹ค.

  • ์ผ๋‹จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ง€๋ฉด ๊ทธ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์›์„ ์ฐจ์ง€ํ•˜๋ ค๊ณ  ๊ฒฝ์Ÿ์„ ํ•œ๋‹ค -> ์›์น™์ ์œผ๋กœ๋Š” ์ด๊ฒŒ ๋งž๋‹ค

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

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋งŒ ํ•˜๋‚˜ ์นดํ”ผํ•ด์„œ ๋˜‘๊ฐ™์€ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค.
    -> ๊ทธ๋Ÿฐ ์ƒํƒœ๋กœ ์‹คํ–‰์„ ํ•˜๋‹ค๊ฐ€ ๋ถ€๋ชจ์™€ ์ž์‹์˜ ๋‚ด์šฉ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. (๋ณ„๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—)
    -> ๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ๊ฐ’์ด ๋‹ฌ๋ผ ์งˆ ์ˆ˜ ์žˆ๊ณ  CPU๋ฅผ ์žก๊ณ  instruction์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋‹ฌ๋ผ ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉด ์Šคํƒ์— ์Œ“์ด๋Š” ๊ฒƒ๋“ค์ด ๋‹ฌ๋ผ ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    -> ๊ฒฐ๊ตญ์—๋Š” ๊ฐ์ž์˜ ๊ธธ์„ ๊ฑท๊ฒŒ ๋œ๋‹ค
    -> ๊ทธ์ œ์„œ์•ผ ๋ถ€๋ชจ์˜ ๊ณต์œ ํ•˜๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์นดํ”ผํ•ด์„œ ์ž์‹์ด ๊ฐ–๊ฒŒ ๋œ๋‹ค.
    -> ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ copy-on-write(COW)๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค.
    -> Write๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์นดํ”ผ๋ฅผ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ

  • Wirte๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์€ ์›๋ž˜ ๋‚ด์šฉ์ด ๋ฐ”๊ผˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฉฐ ๋‚ด์šฉ์ด ๋ฐ”๋€” ๋•Œ ๊ทธ๊ฒƒ์„ ์นดํ”ผํ•ด์„œ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์ด์ „๊นŒ์ง€๋Š” ๊ทธ๋ƒฅ ๋ถ€๋ชจ๊บผ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

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

  • ๊ณต์œ ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋ฉฐ ์›์น™์€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

  • ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์ œ์ƒ์„ฑํ•˜๋Š”๋ฐ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง์ ‘ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์šด์˜์ฒด์ œํ•œํ…Œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญ์„ ํ•œ๋‹ค
    -> ์‹œ์Šคํ…œ ์ฝœ ( fork() )

  • ์ผ๋‹จ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ฅผ ์นดํ”ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค์ด๋‹ค.
    -> ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋“ฏ์ด ๋ณต์ œ์ƒ์„ฑ ํ›„ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฎ์–ด์”Œ์šธ ์ˆ˜ ์žˆ๋‹ค (exec())

๐Ÿ“– 02. fork() ์‹œ์Šคํ…œ ์ฝœ

  • fork๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด์ž!

  • ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” fork()์ดํ›„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰ํ•˜์ง€๋งŒ
    -> ์ƒ์„ฑ๋œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” fork() ์ดํ›„๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    -> fork๋ฅผ ํ• ๋•Œ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋Š” fork๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.
    -> ๋ณต์ œ ์ƒ์„ฑ์ด ๋œ ํ”„๋กœ์„ธ์Šค์˜ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋˜ํ•œ fork๋ฅผ ๊ฐ€๋ฆฌ์ผฐ๊ธฐ ๋•Œ๋ฌธ์— fork์ดํ›„๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค!

  • fork๋ฅผ ํ–ˆ์„ ๋•Œ์˜ ๋ฌธ์ œ์ 
    -> ๋ณต์ œ๋ณธ์ด ์›๋ณธ์ด๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์ด๋‹ค.
    -> ๋ชจ๋‘๋‹ค ๋˜‘๊ฐ™์€ ์ œ์–ดํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€์•ผ ํ•  ๊ฒƒ๊ฐ™์€ ๋ฌธ์ œ์ 
    -> ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ fork์— ์˜ํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ๋ณต์ œ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์ž์‹ํ•˜๊ณ  ๋ถ€๋ชจํ•˜๊ณ  ๊ตฌ๋ณ„์„ ํ•ด์ค€๋‹ค. -> fork์˜ ๋ฆฌํ„ด๊ฐ’์ด ๋‹ค๋ฅด๋‹ค!
    -> ๋ถ€๋ชจ์˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ฆฌํ„ด๊ฐ’์€ ์–‘์ˆ˜์ด๊ณ  ์ž์‹์˜ ๋ฆฌํ„ด๊ฐ’์€ 0์ด๋‹ค.
    -> ์ž์‹๊ณผ ๋ถ€๋ชจ์˜ ๊ตฌ๋ณ„์ด ๊ฐ€๋Šฅํ•จ!

  • fork์˜ ๋ฆฌํ„ด๊ฐ’์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ์™€ ์ž์‹์˜ ๊ตฌ๋ณ„์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‹ค๋ฅธ ์ผ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“– 03. exec() ์‹œ์Šคํ…œ ์ฝœ

  • ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. -> exec()

  • ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋กœ ํƒœ์–ด๋‚˜๊ฒŒ ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • execlp๋Š” ํ•จ์ˆ˜์ด๋ฉฐ ์ด ํ•จ์ˆ˜๊ฐ€ ๊ฒฐ๊ตญ์—” exec()์‹œ์Šคํ…œ ์ฝœ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
    -> ์ฃผ์–ด์ง„ ๊ฒƒ์œผ๋กœ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
    -> ์‹œ์ž‘๋ถ€๋ถ„๋ถ€ํ„ฐ ์ง„ํ–‰๋จ!

  • ํ•œ ๋ฒˆ execํ•˜๋ฉด ๋˜๋Œ์•„ ๊ฐˆ ์ˆ˜ ์—†๋‹ค.

๐Ÿ“– 04. wait() ์‹œ์Šคํ…œ ์ฝœ

  • ๋ณดํ†ต wait์€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ์— ํ•œ๋‹ค.

๐Ÿ“– 05. exit() ์‹œ์Šคํ…œ ์ฝœ

  • ์ข…๋ฃŒ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ์ฝœ

๐Ÿ“– 06. ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จํ•œ ์‹œ์Šคํ…œ ์ฝœ

๐Ÿ“– 07. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ˜‘๋ ฅ

  • ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ ์ง์ ‘ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ๋ฐฉ๋ฒ•์€ ์—†๋‹ค.
    -> ์ค‘๊ฐ„์— ์ปค๋„์ด ํ•„์š”ํ•จ!

  • shared memory๋„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ปค๋„ํ•œํ…Œ shared memory๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‹œ์Šคํ…œ ์ฝœ์„ ํ•ด๋†“๊ณ  shared memory๋ฅผ mapping ํ•ด๋†“์•„์•ผ ํ•œ๋‹ค.

๐Ÿ“– 08. Message Passing

  • Message Passing์€ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๋ฉฐ(direct, indirect) ๋‘๊ฐœ ๋ชจ๋‘ ์ปค๋„์„ ํ†ตํ•ด์„œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

  • indirect๋Š” ์ปค๋„์— ์žˆ๋Š” ๋ฉ”์ผ๋ฐ•์Šค์— ๋ฉ”์„ธ์ง€๋ฅผ ๋„ฃ๊ฒ ๋‹ค๋Š” ์˜๋ฏธ

๐Ÿ“– 09. Shared Memory





[์ถœ์ฒ˜] ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜

profile
๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€