[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 |