[OS] Lecture 7. Deadlock (1_5) - kibitzing/EnGrow GitHub Wiki

유튜브 링크

진구

익숙한 용어 데드락, 정의는 그렇게 익숙하진 않군 그래도 자연스러움. 가능성이 있냐 없냐가 중요

자원을 못받아서 걸리는게 데드락이니까 자원에 대해 잘 알아야지. 근데 왜 디스크가 전체 할당이지..? 부분부분 할당 아닌감.


세영

Deadlock

프로세스가 발생 가능성이 없는 이벤트/자원을 기다리는 것

  • Deadlock vs. Starvation
    • Deadlock은 Sleep 상태의 프로세스에서 일어남 (발생 가능성 0)
    • Starvation은 Ready 상태의 프로세스에서 일어남 (운이 없어서 그냥 기다리는 것)

자원의 분류

(*): Deadlock을 발생시킬 수 있는 자원

분류 구분 설명
선점 가능 여부 선점 자원 선점 후 돌아와도 문제 발생하지 않는 자원 Processor, Memory
  비선점 자원 (*) 선점당하면 이후 진행에 문제가 발생하는 자원 Disk
할당 단위 전체 할당 자원 전체를 프로세스에게 할당 Processor, Disk
  부분 할당 자원을 조각으로 나눠서 할당 Memory
동시 사용 가능 여부 배타 할당 (*) 한 순간/영역에 한 프로세스만 사용 가능 Processor, Memory, Disk
  공유 할당 여러 프로세스가 동시에 사용 가능 Program, Shared Data
재사용 가능 여부 SR (Serially-resuable Resources) (*) 프로세스가 사용 후 다른 프로세스가 사용할 수 있는 자원 Processor, Memory, Disk, Program
  CR (Consumable Resources) 프로세스가 사용 후 사라지는 자원 Signal, Message