• 19. 다중 자원과 교착상태 검출

    2021. 9. 22.

    by. ahntree

    728x90

    하나의 자원을 하나의 프로세스만 사용 가능할 경우, 자원 할당 그래프에 사이클이 존재하면 교착 상태가 발생한 것으로 본다. 하지만 하나의 자원을 여러 개의 프로세스가 사용 가능할 경우에는 다른 검출 방법이 필요하다.

     

     

     

    1. 다중 자원과 사이클

    프로세스 P1은 자원 R1을 사용하면서 자원 R2를 기다리고 있고, 프로세스 P2는 자원 R2를 사용하면서 자원 R1을 기다리고 있다고 가정하자. R1은 동시에 2개의 프로세스가 사용할 수 있는 자원이라고 하면 이 상황은 교착 상태라고 볼 수 없다.

     

    프로세스 P2는 자원 R1과 R2를 사용하면서 작업을 끝내고 자원을 반납한다. R2가 반납되었으므로 프로세스 P1도 남은 작업을 마무리할 수 있다.

     

     

     

    2. 대기 그래프와 그래프 감소

    대기 그래프(wait for graph)는 자원 할당 그래프에서 프로세스와 프로세스 간에 기다리는 관계만 나타낸 그래프이다.

     

    그래프 감소(graph reduction)는 대기 그래프에서 작업이 끝날 가능성이 있는 프로세스 및 관련 프로세스의 화살표를 연속적으로 지워가는 작업이다. 여기서 작업이 끝날 가능성이 있다는 건 기다리는 자원이 없다는 뜻이다. 그래프 감소를 완료한 후에도 사이클이 남아 있다면 교착 상태가 발생한 것으로 판단한다.

    728x90

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

    21. 메모리 주소  (0) 2021.09.22
    20. 메모리 관리의 개요  (0) 2021.09.22
    18. 교착 상태  (0) 2021.09.22
    17. 임계구역 해결 방법  (0) 2021.09.22
    16. 공유 자원과 임계구역  (0) 2021.09.22

    댓글