Search
Duplicate

๋ฐ๋“œ๋ฝ(Deadlock)

ํƒœ๊ทธ
1 more property

๋ฐ๋“œ๋ฝ (DeadLock)

โ€ข
ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์–ป์ง€ ๋ชปํ•ด์„œ ๋‹ค์Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ, ๊ต์ฐฉ์ƒํƒœ ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค
โ€ข
ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ์š”์ฒญํ•˜๊ณ  ์–ป์ง€ ๋ชปํ•˜๋ฉด ๋Œ€๊ธฐ์ƒํƒœ(Waiting)์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š”๋ฐ ์ž์›์„ ์–ป์ง€ ๋ชปํ•ด ์˜์›ํžˆ waiting ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๊ณ  ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•  ๋•Œ DeadLock์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.
โ€ข
์‹œ์Šคํ…œ์ ์œผ๋กœ ํ•œ์ •๋œ ์ž์›์„ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

๋ฐ๋“œ๋ฝ์˜ ๋ฐœ์ƒ์กฐ๊ฑด

์•„๋ž˜์˜ 4๊ฐ€์ง€ ์กฐ๊ฑด์ด ๋ชจ๋‘ ์„ฑ๋ฆฝํ•ด์•ผ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค. (ํ•˜๋‚˜๋ผ๋„ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ๋“œ๋ฝ X)
์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion)
โ€ข
์ž์›์€ ํ•œ๋ฒˆ์— ํ•œ ํ”„๋กœ์„ธ์Šค๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ ์œ  ๋Œ€๊ธฐ(Hold & wait)
โ€ข
์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜์–ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ž์›์„ ์ถ”๊ฐ€๋กœ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•จ
๋น„์„ ์  (No preemption)
โ€ข
๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์€ ์‚ฌ์šฉ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ฐ•์ œ๋กœ ๋นผ์•—์„ ์ˆ˜ ์—†๋‹ค.
์ˆœํ™˜ ๋Œ€๊ธฐ (Cricular wait)
โ€ข
ํ”„๋กœ์„ธ์Šค์˜ ์ง‘ํ•ฉ์—์„œ ์ˆœํ™˜ ํ˜•ํƒœ๋กœ ์ž์›์„ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋ฐ๋“œ๋ฝ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

โ€ข
๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์˜ˆ๋ฐฉ
โ€ข
๋ฐ๋“œ๋ฝ์˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ๋„ ์ ์ ˆํ•˜๊ฒŒ ํšŒํ”ผ
โ€ข
๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ๋ฐ๋“œ๋ฝ์„ ํƒ์ง€ํ•˜์—ฌ ๋ฐ๋“œ๋ฝ์—์„œ ํšŒ๋ณต

๋ฐ๋“œ๋ฝ ์˜ˆ๋ฐฉ (Prevention)

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

๋ฐ๋“œ๋ฝ ํšŒํ”ผ (Avoidance)

ํšŒํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ย ์ž์›์„ ํ• ๋‹นํ•œ ํ›„์—๋„ ์‹œ์Šคํ…œ์ด ํ•ญ์ƒ Safe state์— ์žˆ์„ ์ˆ˜ ์žˆ๋„๋ก ํ• ๋‹น์„ ํ—ˆ์šฉํ•˜์ž๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ํŠน์ง•์ž…๋‹ˆ๋‹ค.
์•ˆ์ • ์ƒํƒœ (Safe State)
โ€ข
์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์š”์ฒญํ•˜๋Š” ๋ชจ๋“  ์ž์›์„, ๋ฐ๋“œ๋ฝ์„ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ๋„ ์ฐจ๋ก€๋กœ ๋ชจ๋‘์—๊ฒŒ ํ• ๋‹นํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
๋ถˆ์•ˆ์ • ์ƒํƒœ
โ€ข
๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ƒํ™ฉ์ด๋ฉฐ,ย ๊ต์ฐฉ ์ƒํƒœ(๋ฐ๋“œ๋ฝ)๋Š” ๋ถˆ์•ˆ์ • ์ƒํƒœ์ผ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆ์•ˆ์ • ์ƒํƒœ๊ฐ€ ๊ต์ฐฉ ์ƒํƒœ๋ณด๋‹ค ์ข€ ๋” ํฐ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.(์ฆ‰, ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ถˆ์•ˆ์ • ์ƒํƒœ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ)
์•ˆ์ „ ์ˆœ์„œ (Safe Sequence)
โ€ข
ํŠน์ •ํ•œ ์ˆœ์„œ๋กœ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ์ž์›์„ ํ• ๋‹น, ์‹คํ–‰ ๋ฐ ์ข…๋ฃŒ ๋“ฑ์˜ ์ž‘์—…์„ ํ•  ๋•Œย ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ˆœ์„œ

๋ฐ๋“œ๋ฝ ํšŒํ”ผ - ์€ํ–‰์› ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Banker's Algorithm)

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

๋ฐ๋“œ๋ฝ ํƒ์ง€ & ํšŒ๋ณต

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