2017-04-03 5 views
1

교착 상태를 피하기 위해 선점을 사용하는 과정을 이해하지만 코드에 넣으려고 애 쓰고 있습니다.교착 상태를 방지하기 위해 선점

인 Y 스레드 T1, T2자원 w, X 이용한 교착 상태를 방지하기 선점 내 이해 :

thread t1 -> has resource X. request resource W

thread t2 -> has resources W, Y. request resource X

t1 checks if resource W is free. if it's not free, don't acquire resource X or release it.

을,210

t1 executes

전 C에서 전술 한 바와 같이 뭔가를 구현하는 방법에 대한 가야 방법

++? 어떤 도움을 주셔서 감사합니다.

답변

2

한 가지 방법은 자원에 번호를 통해 (7.4.4 here 보면) :

w = 1 
y = 2 
x = 3 

를 그런 간단한 규칙 : 스레드는 증가하는 순서로 리소스를 얻을 수 있습니다.

즉, 리소스 Rj를 요청하려면 프로세스가 먼저 모든 Ri를 i> = j가되도록 해제해야합니다.

스레드 t1 -> 자원이 X (값은 3)입니다. 요청 자원 W은 (값이 1) ==>이 제 X

스레드 t2 해제해야 - (값이 1)>W 가지고 자원을 Y (값은 2이다). 요청 리소스 X (값은 3) ==>t1이 출시 된 직후 얻습니다.

관련 문제