운영체제

데드락

정재익 2025. 12. 15. 14:57

데드락이 발생할수있는 조건 4가지 4가지 조건을 다 채워야 발생한다.

1. 상호배제 (Mutual exclusion) : 자원은 한 프로세스만 사용해야한다.

2. 점유대기 (Hold and wait) : 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용중인 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야한다.

3. 비선점 (No preemption) : 다른 프로세스에 할당된 자원을 강제로 빼앗을 수 없다

4. 순환 대기 (Circluar wait) : 한 프로세스는 다음 프로세스가 점유한 자원을 대기하고 다음 프로세스는 그 다음 프로세스가 점유한 자원을 대기하고 그 다음 프로세스는 처음 프로세스가 점유한 자원을 대기해야한다.

 

참고로 레이스 컨디션과 데드락은 다름

레이스 컨디션은 타이밍문제

데드락은 교착상태문제

 

레이스 컨디션: 여러 스레드가 공유 자원에 동시에 접근하여 실행 순서에 따라 결과가 달라짐 원자성이 보장 안되고 동기화가 없는것이 문제

'운영체제' 카테고리의 다른 글

경쟁상태 (레이스컨디션)  (0) 2025.12.22
메모리 구조  (0) 2025.12.15
단편화  (0) 2025.07.24
페이징  (0) 2025.07.24
스와핑  (0) 2025.07.24