인프런 커뮤니티 질문&답변
교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유
해결된 질문
작성
·
21
답변 1
0
큰돌
지식공유자
안녕하세요 ㅎㅎ
예전에 운영체제에 대해 배울 때, '교착상태의 4가지 필요충분조건'이라고 배웠
-> 혹시 해당 교재 스샷있으면 스샷좀 부탁드립니다.
먼저 제가 설명드리면요.
네 가지 조건이 모두 성립해도, 실행 순서나 자원 할당 타이밍에 따라 교착상태가 발생하지 않을 수 있습니다.
즉, 4가지 조건 = 교착상태의 가능성을 만드는 조건이고 교착상태 발생 여부 = 실제 자원 할당 상태에 의해 결정됩니다.
ex)
자원: R1, R2 (각각 1개씩)
프로세스: P1, P2
여기서...
R1, R2는 상호 배제 자원
프로세스는 자원을 잡고 다른 자원을 요청
자원은 비선점
잠재적으로 순환 대기 구조 가능 -> 교착상태 가능
하지만...
P1이 R1을 획득
P1이 R2를 요청 → 아직 아무도 R2를 안 쓰고 있음
P1이 R2를 획득
P1이 작업 종료 후 R1, R2 반납
이후 P2가 자원 사용
이렇게 순환 대기가 실제로 형성되기 전에 작업이 끝났기 때문에 교착상태가 발생하지 않을 수 있습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.





