DeadLock

๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ๊ต์ฐฉ์ƒํƒœ(DeadLock) ๋ž€, ์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•œ ์š”๊ตฌ๊ฐ€ ๋’ค์—‰ํ‚จ ์ƒํƒœ์ด๋‹ค.

  • ์ฆ‰, ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์„ ์„œ๋กœ ๊ธฐ๋‹ค๋ฆด ๋•Œ ๋ฌดํ•œ ๋Œ€๊ธฐ์— ๋น ์ง€๋Š” ์ƒํ™ฉ์„ ๋งํ•œ๋‹ค.

img_2.png
  • ์„œ๋กœ ์›ํ•˜๋Š” ์ž์›์ด ์ƒ๋Œ€๋ฐฉ์— ํ• ๋‹น๋˜์–ด ์žˆ์–ด์„œ ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌดํ•œ์ • wait ์ƒํƒœ์— ๋น ์ง„๋‹ค.

  • ์ด๋Ÿฐ ๊ฒƒ์„ DeadLock์ด๋ผ ํ•œ๋‹ค.

๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์กฐ๊ฑด์ด ์žˆ์–ด์•ผ ํ•˜๋‚˜์š”?

์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion)

  • ์ž์›์€ ํ•œ ๋ฒˆ์— ํ•œ ํ”„๋กœ์„ธ์Šค๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์š”์ฒญํ•œ ์ž์›์ด ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.

์ ์œ  ๋Œ€๊ธฐ(Hold and Wait)

  • ์ž์›์„ ์ตœ์†Œํ•œ ํ•˜๋‚˜ ๋ณด์œ ํ•˜๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋œ ์ž์›์„ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

๋น„์„ ์ (No Preemption)

  • ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์€ ์‚ฌ์šฉ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ฐ•์ œ๋กœ ๋นผ์•—์„ ์ˆ˜ ์—†๋‹ค.

์ˆœํ™˜ ๋Œ€๊ธฐ(Circular Wait)

  • ๋Œ€๊ธฐ ํ”„๋กœ์„ธ์Šค์˜ ์ง‘ํ•ฉ์ด ์ˆœํ™˜ ํ˜•ํƒœ๋กœ ์ž์›์„ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ต์ฐฉ์ƒํƒœ์˜ ํ•ด๊ฒฐ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์˜ˆ๋ฐฉ(Prevention)ํ•˜๊ธฐ

  • ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ๋„ ์ ์ ˆํ•˜๊ฒŒ ํšŒํ”ผ(Avoidance)ํ•˜๊ธฐ

  • ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ๋ฐ๋“œ๋ฝ์„ ํƒ์ง€(Detection)ํ•˜์—ฌ, ๋ฐ๋“œ๋ฝ์—์„œ ํšŒ๋ณตํ•˜๊ธฐ

์˜ˆ๋ฐฉํ•˜๊ธฐ

  • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์• ์ดˆ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ต์ฐฉ์ƒํƒœ์˜ ๋ฐœ์ƒ์กฐ๊ฑด 4๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ถ€์ •ํ•จ์œผ๋กœ์จ ๊ต์ฐฉ์ƒํƒœ๋ฅผ ์˜ˆ๋ฐฉํ•œ๋‹ค.

  • ์ž์› ๋‚ญ๋น„๊ฐ€ ๋งค์šฐ ์‹ฌํ•˜๋‹ค.

    • ์ƒํ˜ธ๋ฐฐ์ œ ๋ถ€์ • : ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์› ์‚ฌ์šฉ

    • ์ ์œ ๋Œ€๊ธฐ ๋ถ€์ • : ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ „ ๋ชจ๋“  ์ž์›์„ ํ• ๋‹น

    • ๋น„์„ ์  ๋ถ€์ • : ์ž์› ์ ์œ  ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ์ž์›์„ ์š”๊ตฌํ•  ๋•Œ ๊ฐ€์ง„ ์ž์› ๋ฐ˜๋‚ฉ

    • ์ˆœํ™˜๋Œ€๊ธฐ ๋ถ€์ • : ์ž์›์— ๊ณ ์œ ๋ฒˆํ˜ธ ํ• ๋‹น ํ›„ ์ˆœ์„œ๋Œ€๋กœ ์ž์› ์š”๊ตฌ

ํšŒํ”ผํ•˜๊ธฐ

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

  • ๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ€์ •์ด ํ•„์š”ํ•˜๋‹ค.

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

    • ์ž์›์˜ ์ข…๋ฅ˜์™€ ์ˆ˜ ๊ณ ์ •

    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์ตœ๋Œ€ ์ž์›์˜ ์ˆ˜๋ฅผ ์•Œ์•„์•ผ ํ•จ

    • ํ”„๋กœ์„ธ์Šค๋Š” ์ž์› ์‚ฌ์šฉ ํ›„ ๋ฐ˜๋“œ์‹œ ๋ฐ˜๋‚ฉ

  • Safe state

    • safe sequence(๊ต์ฐฉ์ƒํƒœ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ์ˆœ์„œ)๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  • Unsafe state

    • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

      ๊ต์ฐฉ์ƒํƒœ๋ฅผ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

      • ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜

        • ์€ํ–‰์ด ์ตœ์†Œํ•œ ํ•œ ๋ช…์—๊ฒŒ ๋Œ€์ถœํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธˆ์•ก์„ ํ•ญ์ƒ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฐœ๋…์—์„œ ๋‚˜์˜จ ์ด๋ฆ„์ด๋‹ค.

        • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”๊ตฌํ•  ๋•Œ, ์‹œ์Šคํ…œ์€ ์ž์›์„ ํ• ๋‹นํ•œ ํ›„์—๋„ ์•ˆ์ • ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ๊ฒŒ ๋˜๋Š”์ง€ ์‚ฌ์ „์— ๊ฒ€์‚ฌํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํšŒํ”ผํ•œ๋‹ค.

        • ์•ˆ์ • ์ƒํƒœ๋ฉด ์ž์›์„ ํ• ๋‹นํ•˜๊ณ , ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ž์›์„ ํ•ด์ง€ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

      • ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜

        • ๊ต์ฐฉ์ƒํƒœ ๋ฐœ๊ฒฌ์„ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค์™€ ์ž์›๊ณผ์˜ ๊ด€๊ณ„์™€ ํ• ๋‹น ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๋ž˜ํ”„

ํƒ์ง€ํ•˜๊ณ  ํšŒ๋ณตํ•˜๊ธฐ

  • ๋จผ์ € ์‹œ์Šคํ…œ์ด ๊ต์ฐฉ์ƒํƒœ ์˜ˆ๋ฐฉ์ด๋‚˜ ํšŒํ”ผ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ, ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์—ฌ๊ธฐ์—์„œ ํšŒ๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๊ต์ฐฉ์ƒํƒœ๋ฅผ ํƒ์ง€ํ•˜๊ณ , ํšŒ๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ํƒ์ง€

    • ๋ง ๊ทธ๋Œ€๋กœ ์‹œ์Šคํ…œ์— ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ํšŒ๋ณต ๊ธฐ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

    • ํƒ์ง€ ๊ธฐ๋ฒ•์€ ์ง€์†์ ์œผ๋กœ ๊ต์ฐฉ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ(์„ฑ๋Šฅ ์ €ํ•˜)๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

  • ํšŒ๋ณต

    • ๊ต์ฐฉ์ƒํƒœ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋‰œ๋‹ค.

      • ์‚ฌ์šฉ์ž ์ฒ˜๋ฆฌ : ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•์ œ ์ข…๋ฃŒ

      • ์‹œ์Šคํ…œ ์ฒ˜๋ฆฌ

        • ํ”„๋กœ์„ธ์Šค ์ค‘์ง€

          • ๊ต์ฐฉ์ƒํƒœ์— ์†ํ•ด์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€

          • ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ํ•œ ํ”„๋กœ์„ธ์Šค์”ฉ ์ค‘์ง€

        • ์ž์› ์„ ์ 

          • ํ”„๋กœ์„ธ์Šค๋“ค๋กœ๋ถ€ํ„ฐ ์ž์›์„ ๋นผ์•—์•„ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ์ž์›์„ ํ• ๋‹น

        • ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋‚˜ ์ˆ˜ํ–‰ ํšŸ์ˆ˜๊ฐ€ ์ ์€ ํ”„๋กœ์„ธ์Šค ์œ„์ฃผ๋กœ ํ”„๋กœ์„ธ์Šค ์ž์› ์„ ์ 

์ฐธ๊ณ 

Last updated