๐Ÿ–ฅ๏ธ Computer Science

[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.6 ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ

GroovyArea 2022. 11. 6. 00:53

์—ฐ์Šต ๋ฌธ์ œ

1. 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ์˜ ์ž‘์—…์ด ๋๋‚˜๊ธฐ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์ž‘์—…์„ ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋ฌด์—‡์ด๋ผ ํ•˜๋Š”๊ฐ€?

  • ๊ต์ฐฉ ์ƒํƒœ (dead lock)

2. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ž์›์„ ์‚ฌ์šฉ ์ค‘์ด๊ณ  ์–ด๋–ค ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉํ–ฅ์„ฑ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„?

  • ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„ (resource allocation graph)

3. ๋„ค ๊ฐ€์ง€ ๊ต์ฐฉ ์ƒํƒœ ํ•„์š”์กฐ๊ฑด์— ๋Œ€ํ•œ ์„ค๋ช…

  • ์ƒํ˜ธ ๋ฐฐ์ œ (mutual exclusion) :
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋ฐฐํƒ€์  ์ž์›์ด์–ด์•ผ ํ•จ.
  • ๋น„์„ ์  (non-preemption):
    • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋นผ์•—์„ ์ˆ˜ ์—†๋Š” ๋น„์„ ์  ์ž์›์ด์–ด์•ผ ํ•œ๋‹ค.
  • ์ ์œ ์™€ ๋Œ€๊ธฐ (hold and wait):
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ž์›์„ ํ• ๋‹น ๋ฐ›์€ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ์—ฌ์•ผ ํ•œ๋‹ค.
  • ์›ํ˜• ๋Œ€๊ธฐ (circular wait):
    • ์ ์œ ์™€ ๋Œ€๊ธฐ๋ฅผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ์›์„ ์ด๋ฃจ์–ด์•ผ ํ•œ๋‹ค. ์ ์œ ์™€ ๋Œ€๊ธฐ๋ฅผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ ๋ฐฉํ•ดํ•˜๋Š” ๋ฐฉํ–ฅ์ด ์›์„ ์ด๋ฃจ๋ฉด ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ ์–‘๋ณดํ•˜์ง€ ์•Š๋Š”๋‹ค.

4. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋ฌด๋ ฅํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ์˜ˆ๋ฐฉ
  • ์‹คํšจ์„ฑ์ด ์ ์Œ.

5. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ˆ˜์ค€์œผ๋กœ ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ํšŒํ”ผ
  • ์ž์›์„ ํ• ๋‹นํ•˜๋‹ค๊ฐ€ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์œ ๋ฐœ ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์ด๋ฉด ์ž์› ํ• ๋‹น์„ ์ค‘๋‹จํ•˜๊ณ  ์ง€์ผœ ๋ด„.
  • ์‹คํšจ์„ฑ์ด ์ ์Œ.

6. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ๊ฒ€์ถœ
  • ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์‹œ ๊ต์ฐฉ ์ƒํƒœ ํšŒ๋ณต ๋‹จ๊ณ„ ์ง„ํ–‰

7. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ํƒ€์ž„์•„์›ƒ์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•?

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

8. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ํšŒํ”ผ

9. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ๋ชจ๋“  ์ž์›์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ๋‚ฎ์€ ๋ฒˆํ˜ธ์˜ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ์˜ˆ๋ฐฉ

10. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ ์ดˆ๊ธฐ์— ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ์ž์›์„ ํ•œ๊บผ๋ฒˆ์— ์ ์œ ํ•˜๊ฑฐ๋‚˜, ๊ทธ๋ ‡์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ์ž์›์„ ๋ชจ๋‘ ๋ฐ˜๋‚ฉํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ์ ์œ ์™€ ๋Œ€๊ธฐ ์˜ˆ๋ฐฉ
  • ํ”„๋กœ์„ธ์Šค๋Š” ์ดˆ๊ธฐ์— ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ์ž์›์„ ํ•œ๊บผ๋ฒˆ์— ์ ์œ ํ•˜๊ฑฐ๋‚˜, ๋ฏธ์‚ฌ์šฉ์‹œ ๋ชจ๋‘ ๋ฐ˜๋‚ฉํ•ด์•ผ๋จ.
  • ๋‹จ์  :
    • ํ”„๋กœ์„ธ์Šค ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ž์›์„ ์ž์„ธํžˆ ์•Œ๊ธฐ ์–ด๋ ค์›€
    • ์ž์›์˜ ํ™œ์šฉ์„ฑ์ด ๋–จ์–ด์ง. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ž์›๊นŒ์ง€ ์žก๊ณ  ์žˆ๋‹ค.
    • ๋งŽ์€ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜๋ก ๋ถˆ๋ฆฌํ•˜๋‹ค.
    • ๊ฒฐ๊ตญ ์ผ๊ด„ ์ž‘์—… ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•จ.

11. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘, ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๊ฒ€์ถœ๋˜๋ฉด ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์ผ์œผํ‚จ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•?

  • ๊ต์ฐฉ ์ƒํƒœ ํšŒ๋ณต

12. ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„์—์„œ ๋ฌด์—‡์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ต์ฐฉ ์ƒํƒœ๋ผ๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  • ๋‹จ์ผ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„์— ์‚ฌ์ดํด์ด ์žˆ์œผ๋ฉด ๊ต์ฐฉ ์ƒํƒœ์ด๋‹ค.
  • ๋‹ค์ค‘ ์ž์›์˜ ๊ฒฝ์šฐ ๋Œ€๊ธฐ ๊ทธ๋ž˜ํ”„์™€ ๊ทธ๋ž˜ํ”„ ๊ฐ์†Œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์ดํด์„ ์ฐพ๋Š”๋‹ค.

์‹ฌํ™” ๋ฌธ์ œ

1. ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ ์ดˆ๊ธฐ์— ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ์ž์›์„ ํ•œ๊บผ๋ฒˆ์— ์ ์œ ํ•˜๊ฑฐ๋‚˜, ๊ทธ๋ ‡์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ์ž์›์„ ๋ชจ๋‘ ๋ฐ˜๋‚ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์˜ ๋‹จ์ ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค

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

2. ๊ต์ฐฉ ์ƒํƒœ ํšŒํ”ผ ๋ฐฉ๋ฒ•์ธ ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋‹จ์ ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค

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

3. ๊ต์ฐฉ ์ƒํƒœ ๊ฒ€์ถœ ์‹œ ํƒ€์ž„์•„์›ƒ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์žฅ๋‹จ์ ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค

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