상세 컨텐츠

본문 제목

[운영체제] Deadlock Handling #3(deadlock detection)

운영체제

by ~지우~ 2021. 7. 27. 14:29

본문

728x90

오늘은 deadlock을 다루는 방법 중 deadlock detection에 대해 알아보겠습니다.



detection 알고리즘은 deadlock이 발생했는지 검사하는 방법입니다.자원이 하나의 instance를 가지고 있을 때에는 wait-for 그래프를 이용하여 deadlock이 발생했는지 검사합니다.

 

wait-for 그래프는 자원 노드를 삭제한 후, cylcle 존재 여부를 통해 dedlock이 발생하는지 아닌지를 알 수 있습니다.

 

프로세스에 할당된 자원은 자원이 프로세스를 가리키고 있습니다.프로세스가 요청하는 자원은 프로세스가 자원을 가리키고 있습니다.

 

 

자원 노드를 삭제한 wait-for 그래프입니다.

wait-for graph

 

wait-for 그래프에 cycle이 존재하기 때문에 deadlock이 발생할 것이라는 것을 알 수 있습니다. 

 

detection 알고리즘을 프로세스가 자원을 요청할 때마다 실행할 수도 있고, 운영체제에서 정의된 간격마다 실행할 수도 있습니다.

만약 프로세스가 자원을 요청할 때마다 실행한다면, overhead가 높을 것입니다.

정의된 간격마다 실행한다면, 정확성에 문제가 있을 것입니다.

따라서 detection의 간격과 횟수를 적절히 정하는 것은 중요하다고 할 수 있습니다.

728x90

관련글 더보기

댓글 영역