교착상태 Dead lock
2019. 10. 31. 18:36ㆍ임베디드/운영체제
두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리는 무한 대기 상태
예) 스레드 A, B가 존재하고 자신의 자원은 반환하지 않은 상태에서 상대방의 자원을 요구하는 상태
데드락이 생기기 위한 조건
1. 상호배제 : 둘 이상의 스레드는 동시에 공유자원을 사용할 수 없다
2. 순환대기 : 서로 원하는 자원이 있는 상대방이 순환적으로 연결되어 있다
3. 비선점 : 수행이 완료되기 전까지는 자원을 반납하지 않고, 상대방도 가져갈 수 없다
4. 점유대기 : 자신의 자원을 반환하지 않은 상태에서 상대방의 자원을 요구하고 있다
데드락을 방지하기 위해서는 조건 중 하나라도 성립하지 않으면 된다. 하지만 자원의 낭비가 심하다는 단점이 있다
'임베디드 > 운영체제' 카테고리의 다른 글
세그멘테이션 기법 (0) | 2019.11.10 |
---|---|
가상 메모리 동작 방식 정리 (0) | 2019.11.08 |
thrashing 스레싱 (0) | 2019.10.17 |
프로세스 상태 관계 (0) | 2019.10.16 |
스케쥴링 알고리즘 (0) | 2019.10.16 |