Computer Science/๐Ÿ”’ Operating System

[์šด์˜์ฒด์ œ] ๊ต์ฐฉ ์ƒํƒœ (Dead Lock, ๋ฐ๋“œ๋ฝ)

J1Yun 2023. 3. 2. 14:47
728x90

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

  • ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฉˆ์ถ”์–ด ์žˆ๋Š” ์ƒํƒœ
  • ํ”„๋กœ์„ธ์Šค A๋Š” ์ž์› 1์„ ๊ฐ€์ง€๊ณ ์„œ ์ž์› 2๋ฅผ ์š”๊ตฌ, ํ”„๋กœ์„ธ์Šค B๋Š” ์ž์› 2๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ์ž์› 1์„ ์š”๊ตฌ

 

 

๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ ์กฐ๊ฑด

  • ์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion)
    • ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ๊ณต์œ  ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์ ์œ ์™€ ๋Œ€๊ธฐ(Hold and Wait)
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ์ตœ์†Œ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์–ด์•ผ ํ•จ
  • ๋น„์„ ์ (Non Preemption)
    • ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž์›์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋ฐ˜ํ™˜ํ•  ๋•Œ๊นŒ์ง€ ๊ฐ•์ œ๋กœ ๋บ์–ด์˜ฌ ์ˆ˜ ์—†์–ด์•ผ ํ•จ
  • ํ™˜ํ˜• ๋Œ€๊ธฐ(Circular Wait)
    • ๊ณต์œ  ์ž์›๊ณผ ํ•ด๋‹น ์ž์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์›ํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
    • ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ ์•ž or ๋’ค ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ์š”๊ตฌ

 

 

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

  1. ์˜ˆ๋ฐฉ(Prevention): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ฐœ์ƒ 4๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ํšŒํ”ผ(Avoidance): ๊ต์ฐฉ ์ƒํƒœ์˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ธ์ •ํ•˜๋ฉด์„œ ์ ์ ˆํžˆ ํ”ผํ•ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•
  3. ํƒ์ง€(Detection): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š” ์ง€ ์ ๊ฒ€ํ•˜๋ฉฐ ๋ฐœ๊ฒฌํ•ด๋‚ด๋Š” ๋ฐฉ๋ฒ•
  4. ํšŒ๋ณต(Recovery): ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ ํ”„๋กœ์„ธ์Šค์™€ ์ž์›์„ ๋˜์‚ด๋ ค๋‚ด๋Š” ๋ฐฉ๋ฒ•

 

1. ์˜ˆ๋ฐฉ(Prevention)

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

 

2. ํšŒํ”ผ(Avoidance)

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

 

3. ํƒ์ง€(Detection)

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

 

4. ํšŒ๋ณต(Recovery)

  • ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ
    • ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒ
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๊ณผ, ํ•˜๋‚˜์”ฉ ์ค‘๋‹จ์‹œํ‚ค๋ฉฐ ํšŒ๋ณต๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Œ
  • ์ž์› ์„ ์ 
    • ๊ต์ฐฉ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ ์œ  ์ž์›์„ ์„ ์ (ํšŒ์ˆ˜)ํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹น
728x90