Skip to content

Latest commit

ย 

History

History
135 lines (86 loc) ยท 5.39 KB

File metadata and controls

135 lines (86 loc) ยท 5.39 KB

๋ฐ๋“œ๋ฝ (DeadLock, ๊ต์ฐฉ ์ƒํƒœ)

๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์„œ๋กœ ์ž์›์„ ์–ป์ง€ ๋ชปํ•ด์„œ ๋‹ค์Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ

๋ฌดํ•œํžˆ ๋‹ค์Œ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋˜๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.

์‹œ์Šคํ…œ์ ์œผ๋กœ ํ•œ์ •๋œ ์ž์›์„ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

(๋งˆ์น˜, ์™ธ๋‚˜๋ฌด ๋‹ค๋ฆฌ์˜ ์–‘ ๋์—์„œ ์„œ๋กœ๊ฐ€ ๋น„์ผœ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ ๋งŒ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.)


  • ๋ฐ๋“œ๋ฝ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ

ํ”„๋กœ์„ธ์Šค1๊ณผ 2๊ฐ€ ์ž์›1, 2๋ฅผ ๋ชจ๋‘ ์–ป์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž

t1 : ํ”„๋กœ์„ธ์Šค1์ด ์ž์›1์„ ์–ป์Œ / ํ”„๋กœ์„ธ์Šค2๊ฐ€ ์ž์›2๋ฅผ ์–ป์Œ

t2 : ํ”„๋กœ์„ธ์Šค1์€ ์ž์›2๋ฅผ ๊ธฐ๋‹ค๋ฆผ / ํ”„๋กœ์„ธ์Šค2๋Š” ์ž์›1์„ ๊ธฐ๋‹ค๋ฆผ


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

โ†’ ์ด๊ฒƒ์ด ๋ฐ”๋กœ DeadLock!!!!!!


(์ฃผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ)

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ํ•œ์ •๋œ ์ž์›์„ ์–ป๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๊ฒฝ์Ÿํ•˜๋Š” ์ƒํ™ฉ ๋ฐœ์ƒ

ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”์ฒญํ–ˆ์„ ๋•Œ, ๋™์‹œ์— ๊ทธ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋•Œ ํ”„๋กœ์„ธ์Šค๋Š” ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ

๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์‹คํ–‰ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†์„ ๋•Œ '๊ต์ฐฉ ์ƒํƒœ' ๋ฐœ์ƒ


๋ฐ๋“œ๋ฝ(DeadLock) ๋ฐœ์ƒ ์กฐ๊ฑด

4๊ฐ€์ง€ ๋ชจ๋‘ ์„ฑ๋ฆฝํ•ด์•ผ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ

(ํ•˜๋‚˜๋ผ๋„ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ๋“œ๋ฝ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ)

  1. ์ƒํ˜ธ ๋ฐฐ์ œ(Mutual exclusion)

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

  2. ์ ์œ  ๋Œ€๊ธฐ(Hold and wait)

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

  3. ๋น„์„ ์ (No preemption)

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

  4. ์ˆœํ™˜ ๋Œ€๊ธฐ(Circular wait)

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


๋ฐ๋“œ๋ฝ(DeadLock) ์ฒ˜๋ฆฌ

๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์˜ˆ๋ฐฉ & ํšŒํ”ผ
  1. ์˜ˆ๋ฐฉ(prevention)

    ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด์„œ ํ•ด๊ฒฐํ•œ๋‹ค (์ž์› ๋‚ญ๋น„ ์—„์ฒญ ์‹ฌํ•จ)

    • ์ƒํ˜ธ๋ฐฐ์ œ ๋ถ€์ • : ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์› ์‚ฌ์šฉ
    • ์ ์œ ๋Œ€๊ธฐ ๋ถ€์ • : ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์ „ ๋ชจ๋“  ์ž์›์„ ํ• ๋‹น
    • ๋น„์„ ์  ๋ถ€์ • : ์ž์› ์ ์œ  ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ์ž์›์„ ์š”๊ตฌํ•  ๋•Œ ๊ฐ€์ง„ ์ž์› ๋ฐ˜๋‚ฉ
    • ์ˆœํ™˜๋Œ€๊ธฐ ๋ถ€์ • : ์ž์›์— ๊ณ ์œ ๋ฒˆํ˜ธ ํ• ๋‹น ํ›„ ์ˆœ์„œ๋Œ€๋กœ ์ž์› ์š”๊ตฌ
  2. ํšŒํ”ผ(avoidance)

    ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์‹œ ํ”ผํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•

    ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜(Banker's Algorithm)

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

    ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Resource-Allocation Graph Algorithm)

    • ์ž์›๊ณผ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์š”์ฒญ ๊ฐ„์„ ๊ณผ ํ• ๋‹น ๊ฐ„์„ ์„ ์ ์šฉํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํšŒํ”ผํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”๊ตฌ ์‹œ ์š”์ฒญ ๊ฐ„์„ ์„ ํ• ๋‹น ๊ฐ„์„ ์œผ๋กœ ๋ณ€๊ฒฝ ํ–ˆ์„ ์‹œ ์‚ฌ์ดํด์ด ์ƒ์„ฑ ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค
    • ์‚ฌ์ดํด์ด ์ƒ์„ฑ๋œ๋‹ค ํ•˜์—ฌ ๋ฌด์กฐ๊ฑด ๊ต์ฐฉ์ƒํƒœ์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค
      • ์ž์›์— ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌ ์‹œ ๊ต์ฐฉ ์ƒํƒœ๋กœ ํŒ๋ณ„ํ•œ๋‹ค
      • ์ž์›์— ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌ ์‹œ ๊ต์ฐฉ ์ƒํƒœ ๊ฐ€๋Šฅ์„ฑ์œผ๋กœ ํŒ๋ณ„ํ•œ๋‹ค
    • ์‚ฌ์ดํด์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฉด ์ž์›์„ ํ• ๋‹นํ•œ๋‹ค
๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํƒ์ง€ & ํšŒ๋ณต

๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋˜๋„๋ก ํ—ˆ์šฉํ•œ ๋‹ค์Œ ํšŒ๋ณต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

  1. ํƒ์ง€(Detection)

    ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํƒ์ง€ํ•จ

    ์ž์› ์š”์ฒญ ์‹œ, ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰์‹œ์ผœ ๊ทธ์— ๋Œ€ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐœ์ƒํ•จ

  2. ํšŒ๋ณต(Recovery)

    ๊ต์ฐฉ ์ƒํƒœ ์ผ์œผํ‚จ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜, ํ• ๋‹น๋œ ์ž์›์„ ํ•ด์ œ์‹œ์ผœ ํšŒ๋ณต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

    ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ๋ฐฉ๋ฒ•
    • ๊ต์ฐฉ ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‘ ์ค‘์ง€
    • ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ์ œ๊ฑฐ๋  ๋•Œ๊นŒ์ง€ ํ•˜๋‚˜์”ฉ ํ”„๋กœ์„ธ์Šค ์ค‘์ง€
    ์ž์› ์„ ์  ๋ฐฉ๋ฒ•
    • ๊ต์ฐฉ ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์„ ์„ ์ ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹น (ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค ์ผ์‹œ์ •์ง€ ์‹œํ‚ด)
    • ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋‚˜ ์ˆ˜ํ–‰ ํšŸ์ˆ˜ ์ ์€ ํ”„๋กœ์„ธ์Šค ์œ„์ฃผ๋กœ ํ”„๋กœ์„ธ์Šค ์ž์› ์„ ์ 

์ฃผ์š” ์งˆ๋ฌธ

  1. ๋ฐ๋“œ๋ฝ(๊ต์ฐฉ ์ƒํƒœ)๊ฐ€ ๋ญ”๊ฐ€์š”? ๋ฐœ์ƒ ์กฐ๊ฑด์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”.

  2. ํšŒํ”ผ ๊ธฐ๋ฒ•์ธ ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ญ”์ง€ ์„ค๋ช…ํ•ด๋ณด์„ธ์š”.

  3. ๊ธฐ์•„์ƒํƒœ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์‹์‚ฌํ•˜๋Š” ์ฒ ํ•™์ž ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด์„ธ์š”.

    ๊ต์ฐฉ ์ƒํƒœ ํ•ด๊ฒฐ์ฑ…

    1. n๋ช…์ด ์•‰์„ ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์—์„œ ์ฒ ํ•™์ž๋ฅผ n-1๋ช…๋งŒ ์•‰ํž˜
    2. ํ•œ ์ฒ ํ•™์ž๊ฐ€ ์ “๊ฐ€๋ฝ ๋‘๊ฐœ๋ฅผ ๋ชจ๋‘ ์ง‘์„ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋งŒ ์ “๊ฐ€๋ฝ ์ง‘๋„๋ก ํ—ˆ์šฉ
    3. ๋ˆ„๊ตฐ๊ฐ€๋Š” ์™ผ์ชฝ ์ “๊ฐ€๋ฝ์„ ๋จผ์ € ์ง‘์ง€ ์•Š๊ณ  ์˜ค๋ฅธ์ชฝ ์ “๊ฐ€๋ฝ์„ ๋จผ์ € ์ง‘๋„๋ก ํ—ˆ์šฉ