Deadlock

의미

  • λ‘κ°œ μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€ ν˜Ήμ€ μŠ€λ ˆλ“œκ°€ μ„œλ‘œκ°€ κ°€μ§„ λ¦¬μ†ŒμŠ€λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœ

λ°œμƒ 쑰건

1. Mutual exclusion

  • λ¦¬μ†ŒμŠ€λ₯Ό κ³΅μœ ν•΄μ„œ μ‚¬μš©ν•  수 μ—†μŒ

  • νŠΉμ • μ‹œμ μ— νŠΉμ • 객체만 λ¦¬μ†ŒμŠ€λ₯Ό 선점할 수 있음

2. Hold and wait

  • ν”„λ‘œμ„ΈμŠ€λ‚˜ μ“°λ ˆλ“œκ°€ 이미 ν•˜λ‚˜ μ΄μƒμ˜ λ¦¬μ†ŒμŠ€λ₯Ό μ·¨λ“ν•œ(hold) μƒνƒœμ—μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•˜κ³  μžˆλŠ” λ¦¬μ†ŒμŠ€λ₯Ό μΆ”κ°€λ‘œ κΈ°λ‹€λ¦Ό(wait)

3. No preemption

  • λ¦¬μ†ŒμŠ€ λ°˜ν™˜(releas)은 였직 κ·Έ λ¦¬μ†ŒμŠ€λ₯Ό μ·¨λ“ν•œ ν”„λ‘œμ„ΈμŠ€λ§Œ ν•  수 있음

4. Circular wait

  • ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μˆœν™˜(circular) ν˜•νƒœλ‘œ μ„œλ‘œμ˜ λ¦¬μ†ŒμŠ€λ₯Ό κΈ°λ‹€λ¦Ό

OSκ°€ λ°λ“œλ½μ„ ν•΄κ²°ν•˜λŠ” 방법

1. λ°λ“œλ½ λ°©μ§€

  • λ°œμƒ 쑰건 4κ°€μ§€ 쀑 ν•˜λ‚˜κ°€ μΆ©μ‘±λ˜μ§€ μ•Šκ²Œ μ‹œμŠ€ν…œμ„ λ””μžμΈ

  1. Mutual exclusion : λ¦¬μ†ŒμŠ€λ₯Ό 곡유 κ°€λŠ₯ν•˜κ²Œ 함

  2. Hold and wait : μ‚¬μš©ν•  λ¦¬μ†ŒμŠ€λ“€μ„ λͺ¨λ‘ νšλ“ν•œ 뒀에 μ‹œμž‘ or λͺ¨λ“  λ¦¬μ†ŒμŠ€λ₯Ό μ „ν˜€ κ°–μ§€ μ•Šμ€ μƒνƒœμ—μ„œλ§Œ λ¦¬μ†ŒμŠ€ μš”μ²­

  3. No preemption : 좔가적인 λ¦¬μ†ŒμŠ€λ₯Ό κΈ°λ‹€λ €μ•Ό ν•œλ‹€λ©΄ 이미 νšλ“ν•œ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ 선점 κ°€λŠ₯ν•˜λ„λ‘ 함

  4. Circular wait : λͺ¨λ“  λ¦¬μ†ŒμŠ€μ— μˆœμ„œ 체계λ₯Ό λΆ€μ—¬ν•΄μ„œ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­

2. λ°λ“œλ½ νšŒν”Ό (Deadlock avoidance)

  • μ‹€ν–‰ ν™˜κ²½μ—μ„œ 좔가적인 정보λ₯Ό ν™œμš©ν•΄μ„œ λ°λ“œλ½μ΄ λ°œμƒν•  것 같은 상황을 νšŒν”Όν•˜λŠ” 것

3. λ°λ“œλ½ 감지와 볡ꡬ

  • λ°λ“œλ½μ„ ν—ˆμš©ν•˜κ³  λ°λ“œλ½μ΄ λ°œμƒν•˜λ©΄ λ³΅κ΅¬ν•˜λŠ” μ „λž΅

  • 방법 1 : λ°λ“œλ½ κ΄€λ ¨ ν”„λ‘œμ„ΈμŠ€ κ°•μ œ μ’…λ£Œ

  • 방법 2 : λ¦¬μ†ŒμŠ€μ˜ μΌμ‹œμ μΈ 선점을 ν—ˆμš©(λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ νšλ“ν•œ λ¦¬μ†ŒμŠ€λ₯Ό λΊμ–΄κ°ˆ 수 μžˆλ„λ‘ ν—ˆμš©)

4. λ°λ“œλ½ λ¬΄μ‹œ

  • 아무것도 μ•ˆν•¨

  • κ°œλ°œμžκ°€ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ—μ„œ μ•Œμ•„μ„œ ν•˜κ²Œ ν•˜λŠ” 것

Last updated