컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

29.교착 상태 해결방법

공부를하자 2023. 7. 30. 14:38

1.교착상태 예방

 1)정의 개요

   -교착상태는 4가지의 조건(상호배제,원형대기,비선점,점유와 대기) 모두 충족되지 않으먼 발생하지 않는다.     

     -교착상태 예방은 발생하는 조건을 미리 사전에 방지하는 것을 말한다.

 2)상호배제 예방:

  자원을 공유하는 것으로 방지할 있지만 모든 자원에 적용하기엔 무리가 있다.

 -점유와 대기 예방: 프로세스에 자원을 모두 할당하거나 아예 가지지 않는 상태만 되게 하는것.

  그러면 자원의 활용률이 낮아진다.

 3)비선점 예방

  프로세스가 가지고 있는 자원을 다른 프로세스가 가져올 있게 하는것.

  일부 자원에는 효과적이나 프로세스가 자원을 뺏어선 안되는 작업이 있을 있으므로

  범용성이 떨어지는 방법.

 4)원형대기 예방

  모든 자원에 번호를 붙이고 오름차순으로 자원을 할당하여 원형대기를 방지하는 방법.

  나머지 방법보단 현실적인 방법이지만 수많은 자원에 번호를 붙이기엔 다소 간단한 작업이 아니고

  자원 활용에 있어 부작용이 있다.

2.교착 상태 회피

  1)정의

  -교착상태가 발생하지 않을 만큼 자원을 할당하는 .

  2)안전상태(safe state):프로세스가 정상적으로 자원을 할당받고 종료될 있는 상태(안전순서열이 있는 상태).

  3)불안전상태(unsafe state): 교착상태가 발생할 수도 있는 상태(안전순서열이 없는 상태).

  4)안전순서열(safe sequence): 교착 상태 없이 안전하게 프로세스에 자원을 할당할 있는 순서를 의미.

  *안전상태 예시(안전순서열이 있는 상태(P2>P1>P3))

   -P2 먼저  남는 자원을 2 받아 작업을 실행하고 4개를 반환 남은 자원 5.

   - 다음 P1 5개의 자원을 할당 자원을 마치고 10 반환

   -마지막으로 P3 자원을 할당하고 작업을 마친다.

 *불안전 상태 예시()

   -P2 자원을 받아 작업을 끝내도 나머지 자원을 반환하고 P1,P3 남은 자원을 할당해도

    작업을 마치지 못한다. 교착상태 발생.

   -자원 할당 단계에서 잘못됨.

 3.교착상태 검출 회복

  1)정의:교착 상태 발생했을 나중에 조치를 취하는 방법.

  2)선점을  통한 회복

  -교착 상태일때 교착상태가 회복 때까지  프로세스 자원을 몰아주는 방식

  3)프로세스 강제 종료를 통한 회복

  -프로세스를 강제로 종료 시키는 방식. 단순하면서도 확실한 방식.

  -프로세스 전체를 강제종료: 가장 확실한 방법. 하지만 작업내역을 잃게될 가능성이 있다.

  -교착상태가 없어질 까지 프로세스를 하나씩 종료시키는 방식:

   작업내역 소실을 최대한 줄이지만 교착상태 여부를 확인하는 과정에서 오버헤드를 야기.

  *타조알고리즘(ostrich algorithm) :교착상태를 무시하는 방법.