๐ŸŒ CS & Infra/Operating System

[OS] 08. ๊ต์ฐฉ์ƒํƒœ (Deadlock)

devCloud 2023. 10. 16. 11:24
728x90

(1) ๊ฐœ์š”

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ํ•œ์ •๋œ ์ˆ˜์˜ ์ž์›(resource)์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

โœ” ๊ต์ฐฉ์ƒํƒœ ์ •์˜

  • ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํŠน์ •ํ•œ ์ž์›์„ ์œ„ํ•˜์—ฌ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ ค๋„ ๋„์ €ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๋‹ค.
  • ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š๋Š” ์–ด๋–ค ํŠน์ •ํ•œ ์‚ฌ๊ฑด(event)์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.
  • ๊ต์ฐฉ์ƒํƒœ๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ ๊ธ‰๊ฒฉํžˆ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.

 

โœ” ๊ต์ฐฉ์ƒํƒœ ๋ชจ๋ธ

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

์„œ๋กœ ๊ฐ•์˜ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ํ–ฅํ•˜๋Š” ๋‘ ์‚ฌ๋žŒ์ด ์ง•๊ฒ€๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋ฉด์„œ ๊ฐ™์€ ๋Œ์„ ๋””๋””๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ต์ฐฉ์ƒํƒœ๋ผ๊ณ  ํ•œ๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : ํ”„๋กœํ† ์ฝœ(๊ทœ์•ฝ)์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฐ˜๋Œ€ํŽธ์—์„œ ๊ฐ•์„ ๊ฑด๋„ˆ๋Š” ์‚ฌ๋žŒ์˜ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
  • ๋‘ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ์ถœ๋ฐœํ•ด๋„ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๋‘ ์‚ฌ๋žŒ์ด ๋ชจ๋‘ ๊ธฐ๋‹ค๋ ค๋„ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ํ•œ ์ชฝ์— ์šฐ์„ ๊ถŒ์„ ์ฃผ๋ฉด ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ•์„ ๊ฑด๋„ˆ๊ธฐ ์œ„ํ•ด ๋ฌด์ž‘์ • ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ด starvation์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

 

์ •์ƒ์ ์ธ ํ”„๋กœ์„ธ์Šค์˜ ์‹œ์Šคํ…œ ์ž์›(CPU์‚ฌ์ดํด, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„, ํŒŒ์ผ, ์ž…์ถœ๋ ฅ ์žฅ์น˜ etc.) ์ด์šฉ ์ˆœ์„œ

  1. Request(์š”์ฒญ) : ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•˜์—ฌ ์ž์›์ด ์‚ฌ์šฉ์ค‘์ผ ๋•Œ, ์š”์ฒญํ•œ ์ž์›์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
  2. Use(์‚ฌ์šฉ) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž๊ธฐ๊ฐ€ ์š”์ฒญํ•˜์—ฌ ์–ป์€ ์ž์›์„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. Release(ํ•ด์ œ) : ํ”„๋กœ์„ธ์Šค๋Š” ํ•ด๋‹น ์ž์›์ด ๋ฏธ๋ฆฌ ์š”๊ตฌ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ํ• ๋‹น๋˜์–ด ์žˆ์œผ๋ฉด, ๊ทธ ์ž์›์„ ์‚ฌ์šฉํ•œ ํ›„์— ๋Œ๋ ค์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•˜์—ฌ ๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ•œ๋‹ค.

ํ™˜ํ˜• ๋Œ€๊ธฐ(Circular wait)๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

โžค  Indefinite postponement (๋ฌด๊ธฐํ•œ ์—ฐ๊ธฐ)

  • ๊ต์ฐฉ์ƒํƒœ์™€ ์œ ์‚ฌํ•˜๋‚˜ ๊ต์ฐฉ์ƒํƒœ๋Š” ์•„๋‹ˆ๋‹ค.
  • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์Šค์ผ€์ค„๋ง์ด ๋์—†์ด ์—ฐ๊ธฐ๋  ๊ฐ€๋Šฅ์„ฑ์„ ๋งํ•œ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ˜„์ƒ์„ ๋งํ•œ๋‹ค.
  • Aging๊ธฐ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. (๊ต์ฐฉ์ƒํƒœ๋Š” Aging๊ธฐ๋ฒ•์œผ๋กœ ์ ˆ๋Œ€ ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค)

 

 

โžค ๊ต์ฐฉ์ƒํƒœ ์กฐ๊ฑด

4๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋™์‹œ์— ํ•„์š” ์ถฉ๋ถ„์กฐ๊ฑด์œผ๋กœ ๋งŒ์กฑํ•ด์•ผ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ตœ์†Œ ํ•œ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•˜๋ฉด ๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. Mutual Exclusion(์ƒํ˜ธ ๋ฐฐ์ œ) ์กฐ๊ฑด : ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ž์›์„ ๋ฐฐํƒ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ
2. Hold and Wait(์ ์œ ์™€ ๋Œ€๊ธฐ) ์กฐ๊ฑด : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ž์›์„ ์ ์œ ํ•˜๋ฉด์„œ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ ์œ ๋œ ๋‹ค๋ฅธ ์ž์›์„ ์š”๊ตฌํ•˜๊ณ  ํ• ๋‹น ๋ฐ›๊ธฐ๋ฅผ ์š”๊ตฌ
3. No preemption(๋น„์„ ์ ) ์กฐ๊ฑด : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ์˜ ์ž‘์—… ์ˆ˜ํ–‰์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ์ž์›์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ
4. Circular Wait(ํ™˜ํ˜• ๋Œ€๊ธฐ) ์กฐ๊ฑด : ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ํ™˜ํ˜• ๋Œ€๊ธฐ๊ฐ€ ์กด์žฌ

 

โžค ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„

 

์˜ˆ์ œ 1

  • ํ”„๋กœ์„ธ์Šค P1์€ ์ž์› ํ˜•ํƒœ R2 ํ•œ ๊ฐœ๋ฅผ ์ ์œ ํ•˜๊ณ , ์ž์› ํ˜•ํƒœ R1 ํ•œ ๊ฐœ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋Œ€๊ธฐํ•จ
  • ํ”„๋กœ์„ธ์Šค P2 ๋Š” R1๊ณผ R2๋ฅผ ๊ฐ๊ฐ ํ•œ ๊ฐœ์”ฉ ์ ์œ ํ•˜๊ณ , ์ž์›ํ˜•ํƒœ R3 ํ•œ ๊ฐœ๋ฅผ ๋Œ€๊ธฐํ•จ
  • ํ”„๋กœ์„ธ์Šค P3๋Š” R3 ํ•œ ๊ฐœ๋ฅผ ์ ์œ ํ•จ
  • ๊ทธ๋ž˜ํ”„์— ์ˆœํ™˜(cycle)์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด, ์‹œ์Šคํ…œ ๋‚ด ์–ด๋А ํ”„๋กœ์„ธ์Šค๋„ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๋ฐ˜๋ฉด, - ๊ทธ๋ž˜ํ”„์— ์ˆœํ™˜์ด ์กด์žฌํ•˜๋ฉด ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ

 

์˜ˆ์ œ 2

  • ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์†Œํ•œ 2๊ฐœ์˜ ์ˆœํ™˜์ด ์‹œ์Šคํ…œ ๋‚ด์— ์กด์žฌํ•˜๊ณ  ์žˆ์Œ
    o P1→R1→P2 →R3 →P3 →R2 →P1
    o P2→R3 →P3 →R2 →P2
  • ์–ด๋–ป๊ฒŒ ํ•ด๋„ ์ˆœํ™˜์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Œ
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, ํ”„๋กœ์„ธ์Šค P1, P2, P3๋Š” ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ์Œ

 

์˜ˆ์ œ 3

  • ๊ทธ๋ž˜ํ”„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœํ™˜์„ ๊ฐ€์ง
    o P1→R1→P3→R2→P1
  • ํ”„๋กœ์„ธ์Šค P4๊ฐ€ ์ž์›ํ˜•ํƒœ R2๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, R2๊ฐ€ P4์—๊ฒŒ์„œ ํ•ด์ œ๋œ ํ›„, ์ด ์ž์›์ด P3์— - ํ• ๋‹น๋˜๋ฉด, ์ˆœํ™˜์ด ์—†์–ด์ง
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, ํ”„๋กœ์„ธ์Šค P1, P2, P3, P4๋Š” ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์•„๋‹˜

 

 

โžค ๊ต์ฐฉ์ƒํƒœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ๊ต์ฐฉ์ƒํƒœ ์˜ˆ๋ฐฉ (Deadlock Prevention) : ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ์•„์˜ˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ
  • ๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ (Deadlock Avoidance) : ํ• ๋‹นํ•˜๊ธฐ ์ „์— ๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ ์œ ๋ฌด๋ฅผ ์ฒดํฌํ•˜๋Š” ๊ฒƒ
  • ๊ต์ฐฉ์ƒํƒœ ํƒ์ง€ (Deadlock Detection) : ์ž์› ํ• ๋‹น ํ›„์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ
  • ๊ต์ฐฉ์ƒํƒœ ํšŒ๋ณต (Deadlock Recovery) : ํƒ์ง€ ํ›„์— ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํšŒ๋ณตํ•˜๋Š” ๊ฒƒ

 

(2) Deadlock Prevention (๊ต์ฐฉ์ƒํƒœ ์˜ˆ๋ฐฉ)

  • Havender๊ฐ€ ์ œ์‹œํ•œ ๊ฒƒ์œผ๋กœ ๊ต์ฐฉ์ƒํƒœ ์กฐ๊ฑด ๋ฐ ๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์‚ฌ์ „์— ์ œ๊ฑฐํ•œ๋‹ค.
  • ์ƒํ˜ธ ๋ฐฐ์ œ ์กฐ๊ฑด์€ ์ œ์™ธํ•œ๋‹ค. ์ƒํ˜ธ ๋ฐฐ์ œ๋ฅผ ์—†์• ๋ฉด ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ์ ˆ๋Œ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋‚˜, ์ž„๊ณ„ ๊ตฌ์—ญ์—์„œ์˜ ํ”„๋กœ์„ธ๋“ค ๊ฐ„์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

1. ์ ์œ ์™€ ๋Œ€๊ธฐ์กฐ๊ฑด ์ œ๊ฑฐ

๋ฐฉ๋ฒ•

  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•„์š”ํ•œ ์ž์›๋“ค์„ ๋ชจ๋‘ ํ•œ๊บผ๋ฒˆ์— ์‹ ์ฒญํ•œ๋‹ค.
  • ์š”๊ตฌํ•œ ์ž์›์„ ์ „๋ถ€ ํ• ๋‹นํ•˜์—ฌ ์ฃผ๊ฑฐ๋‚˜ ๋˜๋Š” ํ•˜๋‚˜๋ผ๋„ ๋ถ€์กฑํ•˜๋ฉด ์ „ํ˜€ ํ• ๋‹นํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๋‹จ์ 

  • ํ•œ๊บผ๋ฒˆ์— ์›ํ•˜๋Š” ์ž์›์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ์—๋Š” ๋ฌดํ•œ ์—ฐ๊ธฐ์˜ ์œ„ํ—˜์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋งŽ์€ ์ž์›์ด ํ•œ๊บผ๋ฒˆ์— ํ• ๋‹น๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ž์› ๋‚ญ๋น„์˜ ์œ„ํ—˜์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

2. ๋น„ ์„ ์  ์กฐ๊ฑด ์ œ๊ฑฐ

  • ๋ฐฉ๋ฒ• - ์ถ”๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์š”๊ตฌ๊ฐ€ ๊ฑฐ์ ˆ๋‹นํ–ˆ๋‹ค๋ฉด ๊ทธ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ์ „๋ถ€ ๋ฐ˜๋‚ฉํ•œ๋‹ค.
  • ๋‹จ์  - ๋ฌดํ•œ ์—ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

 

3. ํ™˜ํ˜• ๋Œ€๊ธฐ์กฐ๊ฑด ์ œ๊ฑฐ

๋ฐฉ๋ฒ•

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

๋‹จ์ 

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

 

(3) Deadlock Avoidance (๊ต์ฐฉ์ƒํƒœ ํšŒํ”ผ)

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

*Safety State Check Algorithm : ์‹œ์Šคํ…œ์ด ์•ˆ์ „ ์ƒํƒœ์ธ์ง€ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

*Safety State : ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ์ˆ˜ํ–‰์„ ๋๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ˆœ์„œ๊ฐ€ ์ตœ์†Œํ•œ ํ•˜๋‚˜ ์ด์ƒ ์กด์žฌํ•  ๋•Œ์˜ ์ƒํƒœ๋‹ค.

์€ํ–‰๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์‹œ์Šคํ…œ์ด ์•ˆ์ „์ƒํƒœ์ธ์ง€๋ฅผ ์ฒดํฌํ•œ ํ›„, ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

์€ํ–‰๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹จ์ 

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

 

(4)  Deadlock Detection (๊ต์ฐฉ์ƒํƒœ ๊ฐ์ง€)

  • ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์ฐพ์•„๋‚ธ๋‹ค.
  • ๋งŒ์ผ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ํƒ์ง€๋˜๋ฉด ์‹œ์Šคํ…œ์€ ์ด ๊ต์ฐฉ ์ƒํƒœ๋กœ๋ถ€ํ„ฐ ํšŒ๋ณต๊ณผ์ •์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž์›์— ๊ด€ํ•œ ์ •๋ณด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž์› ํ• ๋‹น ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋„ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ์‹œ์Šคํ…œ์ด ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š”์ง€, ์•„๋‹Œ์ง€๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ์€ํ–‰๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•˜๋‹ค.

 

(5) Deadlock Recovery (๊ต์ฐฉ์ƒํƒœ ํšŒ๋ณต)

  • ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž์›์˜ ์š”๊ตฌ์™€ ํ• ๋‹น์— ๋Œ€ํ•ด ์ˆœํ™˜ ์ƒํƒœ(ํ™˜ํ˜• ๋Œ€๊ธฐ)๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ˆœํ™˜ ์ƒํƒœ๊ฐ€ ์—†์–ด์งˆ ๋•Œ๊นŒ์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—†์•ค๋‹ค.
  • ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—†๋‹ค.

 

๋ฌธ์ œ์ 

  • ์‹œ์Šคํ…œ์ด ๊ต์ฐฉ ์ƒํƒœ์ธ์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌด๊ธฐํ•œ ์ •์ง€์‹œํ‚ค๊ณ  ์ผ๋ถ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ๋‹ค์‹œ ์ง„ํ–‰์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†๊ณ , ํŠนํžˆ ์‹ค์‹œ๊ฐ„ ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ™์€ ๋ฌด ์ค‘๋‹จ ์‹œ์Šคํ…œ๋“ค์€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์—†๋‹ค.
  • ํšจ์œจ์ ์ธ ์ค‘์ง€/์žฌ๊ฐœ(suspend/resume) ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ƒ๋‹นํ•œ ์ถ”๊ฐ€ ๋ถ€๋‹ด์ด ํ•„์š”ํ•˜๊ณ  ์ˆ™๋ จ๋œ operator๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์—†์œผ๋ฉฐ, operator๊ฐ€ ์ž„์˜๋กœ ์ค‘๋‹จ์‹œํ‚ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

โžค ๊ต์ฐฉ ์ƒํƒœ ํšŒ๋ณต ๋ฐฉ๋ฒ•

  • ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š” ํ•œ ๊ฐœ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌ์ƒ์‹œ์ผœ ๋ณด์œ  ์ž์›์˜ ์„ ์ ์„ ์ด์šฉํ•œ๋‹ค.
  • Victim ์„ ์ •, Rollback ์‹œ์ , Starvation์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

 

Victim ์„ ์ •

  • ์–ด๋А ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌ์ƒ์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€์˜ ์„ ์ •ํ•œ๋‹ค.
  • ์„ ์ • ๊ธฐ์ค€
    • ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ค๋žซ๋™์•ˆ ์—ฐ์‚ฐํ•˜์˜€๊ณ , ๋˜ ์ผ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•ž์œผ๋กœ ์–ผ๋งˆ๋งŒํผ์˜ ์‹œ๊ฐ„์ด ์š”๊ตฌ๋˜๋Š”๊ฐ€?
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์œ ํ˜•์˜ ์ž์›๊ณผ ๋ช‡ ๊ฐœ์˜ ์ž์›๋“ค์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๊ฐ€?
    • ๋ช‡ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌ์ƒ์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€?

 

Rollback ๋ฌธ์ œ

  • ์–ด๋А ์ •๋„์˜ ์‹œ๊ฐ„(๋ฒ”์œ„)๋ฅผ ๊ฐ€์ง€๊ณ  ๋ณต๊ท€์‹œ์ผœ์•ผ ํ•˜๋Š”๊ฐ€ ํ•˜๋Š” ๊ธฐ๊ฐ„์˜ ๊ฒฐ์ • ๋ฌธ์ œ๋ฅผ ๋งํ•œ๋‹ค.
  • ๋ณต๊ท€ ๋ฐฉ๋ฒ•
    • ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„์ „ํžˆ ์ทจ์†Œํ•œ ํ›„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์†Œํ•œ์˜ ์‹œ๊ฐ„ ๋ฒ”์œ„ ์•ˆ์—์„œ ์žฌ๊ท€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

Starvation ๋ฌธ์ œ

  • ๋ฐ˜๋ณต์ ์œผ๋กœ ํฌ์ƒ์ž๋กœ ์„ ์ •๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์—†์• ์•ผ ํ•œ๋‹ค.
  • ๊ธฐ๊ทผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    • ํฌ์ƒ์ž๋กœ ์„ ์ •๋˜๋Š” ๋ฐ˜๋ณต ํšŸ์ˆ˜์˜ ์ƒํ•œ์„ ์„ ์ •ํ•˜์—ฌ ๋” ์ด์ƒ ํฌ์ƒ์ž๊ฐ€ ๋  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

728x90