CS/운영체제

[운영체제] ꡐ착 μƒνƒœ(deadlock)

1eehyunji 2023. 8. 31. 16:00

ꡐ착 μƒνƒœλŠ” 두 개 μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μ„œλ‘œκ°€ κ°€μ§„ μžμ›μ„ κΈ°λ‹€λ¦¬λ©΄μ„œ λ¬΄ν•œ λŒ€κΈ°ν•˜λ©° μ€‘λ‹¨λœ μƒνƒœλ₯Ό λ§ν•œλ‹€.

예λ₯Ό λ“€μ–΄, ν”„λ‘œμ„ΈμŠ€ Aκ°€ ν”„λ‘œμ„ΈμŠ€ Bκ°€ μ μœ ν•œ μžμ› R1을 μš”μ²­ν•  λ•Œ ν”„λ‘œμ„ΈμŠ€ B도 ν”„λ‘œμ„ΈμŠ€ Aκ°€ μ μœ ν•œ μžμ› R2λ₯Ό μš”μ²­ν•˜λŠ” μƒνƒœμ΄λ‹€. 

ν”„λ‘œμ„ΈμŠ€ Aκ°€ μžμ› R1을 μš”μ²­ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€ AλŠ” ν”„λ‘œμ„ΈμŠ€ Bκ°€ μžμ› R1을 λ°˜λ‚©ν•  λ•ŒκΉŒμ§€ λŒ€κΈ° μƒνƒœμ— λ“€μ–΄κ°„λ‹€. 그리고 ν”„λ‘œμ„ΈμŠ€ Bκ°€ μžμ›R2λ₯Ό μš”μ²­ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€ Aκ°€ μžμ› R2λ₯Ό λ°˜λ‚©ν•  λ•ŒκΉŒμ§€ λŒ€κΈ° μƒνƒœμ— λ“€μ–΄κ°„λ‹€. 이와 같이 μ„œλ‘œμ— μ˜ν•΄ λŒ€κΈ° μƒνƒœμ— λ“€μ–΄κ°€ λ¬΄ν•œ λŒ€κΈ°ν•˜λŠ” λ°λ“œλ½μ΄ λ°œμƒν•˜λŠ” 것이닀. 

ꡐ착 μƒνƒœμ˜ 원인

  • μƒν˜Έ 배제 : ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ λ…μ ν•˜κ³  있으며 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ“€μ€ 접근이 λΆˆκ°€λŠ₯ν•˜λ‹€. 
  • 점유 λŒ€κΈ° : νŠΉμ • ν”„λ‘œμ„ΈμŠ€κ°€ μ μœ ν•œ μžμ›μ„ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ μš”μ²­ν•˜λŠ” μƒνƒœμ΄λ‹€.
  • 비선점 : λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ κ°•μ œμ μœΌλ‘œ κ°€μ Έμ˜¬ 수 μ—†λ‹€.
  • ν™˜ν˜• λŒ€κΈ° : ν”„λ‘œμ„ΈμŠ€ AλŠ” ν”„λ‘œμ„ΈμŠ€ Bκ°€ μ μœ ν•œ μžμ›μ„ μš”μ²­ν•˜κ³ , ν”„λ‘œμ„ΈμŠ€ BλŠ” ν”„λ‘œμ„ΈμŠ€ Aκ°€ μ μœ ν•œ μžμ›μ„ μš”μ²­ν•˜λŠ” λ“± μ„œλ‘œκ°€ μ„œλ‘œμ˜ μžμ›μ„ μš”κ΅¬ν•˜λŠ” 상황이닀. 

μœ„ λ„€ κ°€μ§€ 쑰건이 λͺ¨λ‘ λ§Œμ‘±λ˜λŠ” 경우 κ΅μ°©μƒνƒœκ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλ‹€.

 

ꡐ착 μƒνƒœμ˜ ν•΄κ²° 방법

  • 예방 기법
    • ꡐ착 μƒνƒœμ˜ 원인이 λ˜λŠ” 4κ°€μ§€ 쀑 ν•˜λ‚˜λ₯Ό λΆ€μ •ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅μ°©μƒνƒœλ₯Ό μ˜ˆλ°©ν•œλ‹€.
    • μƒν˜Έ 배제 λΆ€μ • : μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— 곡유 μžμ›μ„ μ‚¬μš©ν•  수 μžˆλ‹€.
    • 점유 λŒ€κΈ° λΆ€μ • : ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜κΈ° 전에 ν•„μš”ν•œ λͺ¨λ“  μžμ›μ„ ν• λ‹Ήν•΄μ„œ ν”„λ‘œμ„ΈμŠ€ λŒ€κΈ°λ₯Ό μ—†μ• κ±°λ‚˜, μžμ›μ΄ μ μœ λ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œλ§Œ μžμ› μš”μ²­μ„ 받도둝 ν•œλ‹€.
    • 비선점 λΆ€μ • : λͺ¨λ“  μžμ›μ— λŒ€ν•œ 선점을 ν—ˆμš©ν•œλ‹€.
    • μˆœν™˜ λŒ€κΈ° λΆ€μ • : μžμ›μ„ μ„ ν˜•μœΌλ‘œ λΆ„λ₯˜ν•΄μ„œ 고유 번호λ₯Ό ν• λ‹Ήν•˜κ³ , 각 ν”„λ‘œμ„ΈμŠ€λŠ” ν˜„μž¬ μ μœ ν•œ μžμ›μ˜ κ³ μœ λ²ˆν˜Έλ³΄λ‹€ μ•žμ΄λ‚˜ λ’€ 쀑 ν•œμͺ½ λ°©ν–₯으둜만 μžμ›μ„ μš”κ΅¬ν•˜λ„λ‘ ν•œλ‹€.
    • ν•˜μ§€λ§Œ, μ΄λŸ¬ν•œ 예방 기법은 μ‹œμŠ€ν…œμ˜ μžμ› μ²˜λ¦¬λŸ‰μ΄λ‚˜ μžμ› μ‚¬μš©μ˜ νš¨μœ¨μ„±μ„ λ–¨μ–΄νŠΈλ¦¬λŠ” κ²½ν–₯이 μžˆλ‹€.
  • νšŒν”Ό 기법
    • ꡐ착 μƒνƒœ κ°€λŠ₯성이 μ—†λŠ” κ²½μš°μ—λ§Œ μžμ›μ΄ ν• λ‹Ήλ˜λ©°, ν”„λ‘œμ„ΈμŠ€λ‹Ή μš”μ²­ν•  μžμ›λ“€μ˜ μ΅œλŒ€μΉ˜λ₯Ό 톡해 μžμ› ν• λ‹Ή κ°€λŠ₯ μ—¬λΆ€λ₯Ό νŒλ‹¨ν•˜λŠ” '은행원 μ•Œκ³ λ¦¬μ¦˜'을 μ‚¬μš©ν•œλ‹€.
    • 은행원 μ•Œκ³ λ¦¬μ¦˜ : 총 μžμ›μ˜ μ–‘κ³Ό ν˜„μž¬ ν• λ‹Ήλœ μžμ›μ˜ 양을 κΈ°μ€€μœΌλ‘œ ꡐ착 μƒνƒœκ°€ λ°œμƒν•˜μ§€ μ•Šκ³  λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ μ™„λ£Œλ  수 μžˆλŠ” μ•ˆμ • μƒνƒœμ™€ ꡐ착 μƒνƒœκ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλŠ” λΆˆμ•ˆμ • μƒνƒœλ‘œ λ‚˜λˆ„κ³ , μ•ˆμ • μƒνƒœλ‘œ 가도둝 μžμ›μ„ ν• λ‹Ήν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.
  • 탐지 기법
    • μ‹œμŠ€ν…œμ— ꡐ착 μƒνƒœκ°€ λ°œμƒν–ˆλŠ”μ§€ μ°ΎλŠ”λ‹€. 은행원 μ•Œκ³ λ¦¬μ¦˜μ²˜λŸΌ μžμ›μ˜ ν• λ‹Ή μƒνƒœλ₯Ό 보고 νŒŒμ•…ν•˜κ±°λ‚˜, μžμ› ν• λ‹Ή κ·Έλž˜ν”„ 등을 μ΄μš©ν•΄μ„œ ꡐ착 μƒνƒœκ°€ λ°œμƒν–ˆλŠ”μ§€ νŒŒμ•…λ‹€.
  • 회볡 기법
    • 탐지 기법을 μ΄μš©ν•΄μ„œ λ°λ“œλ½μ„ λ°œκ²¬ν–ˆμœΌλ©΄ λ°λ“œλ½μœΌλ‘œλΆ€ν„° λ²—μ–΄λ‚˜λŠ” 방법을 μ°ΎλŠ”λ‹€.
    • ꡐ착 μƒνƒœμ— λΉ μ§„ ν”„λ‘œμ„ΈμŠ€λ₯Ό λͺ¨λ‘ μ€‘λ‹¨μ‹œν‚΄
      • μ—°μ‚°μ€‘μ΄λ˜ ν”„λ‘œμ„ΈμŠ€λ“€μ΄ λͺ¨λ‘ μ€‘λ‹¨λ˜κΈ° λ•Œλ¬Έμ— 쀑간 κ²°κ³Όκ°€ λͺ¨λ‘ νκΈ°λ˜λŠ” λΆ€μž‘μš©μ΄ μžˆλ‹€.
    • ν”„λ‘œμ„ΈμŠ€λ₯Ό ν•˜λ‚˜μ”© 쀑단 μ‹œν‚¬ λ•Œλ§ˆλ‹€ 탐지 μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ λ°λ“œλ½μ„ νƒμ§€ν•˜λ©΄μ„œ νšŒλ³΅μ‹œν‚΄
      • 맀번 탐지 μ•Œκ³ λ¦¬μ¦˜μ„ 호좜 및 μˆ˜ν–‰ν•΄μ•Ό ν•˜λ―€λ‘œ 뢀담이 λ˜λŠ” μž‘μ—…μΌ 수 μžˆλ‹€.

 

ꡐ착 μƒνƒœλŠ” 맀우 λ“œλ¬Όκ²Œ μΌμ–΄λ‚˜κΈ° λ•Œλ¬Έμ— 이λ₯Ό μ²˜λ¦¬ν•˜λŠ” λΉ„μš©μ΄ 더 μ»€μ„œ ꡐ착 μƒνƒœκ°€ λ°œμƒν•˜λ©΄ μ‚¬μš©μžκ°€ μž‘μ—…μ„ μ’…λ£Œν•œλ‹€. 

ν˜„λŒ€ μš΄μ˜μ²΄μ œμ—μ„œλŠ” 이 방법을 μ±„νƒν–ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰μ‹œν‚€λ‹€ '응닡 μ—†μŒ'이라고 뜰 λ•Œκ°€ μžˆλŠ”λ°, ꡐ착 μƒνƒœκ°€ λ°œμƒν•  경우 이와 같은 상황이 λ°œμƒν•˜κΈ°λ„ ν•œλ‹€.