3-5 교착상태의 처리

2023. 3. 21. 14:35운영체제

-교착상태 : 자원을 가지고 있는 일련의 프로세스들이 더 이상 진행하지 못하고 묶인채 가만히 있는 상황

how 해결? : 교착상태 방지, 교착상태 회피, 교착상태 검출 및 복구

 

1. 교착상태 방지 deadlock prevention

: 교착상태가 일어나기 위한 네 가지 필요조건 중 하나 이상을 결여되게하여 교착상태가 일어나지 않게 하는 것

1) 상호배타 조건 결여

: 프로세스들이 자원을 동시에 함께 사용하도록

but, 불가능

2) 보유 및 대기 조건 결여

: 어떤 자원을 갖고 있으면서 다른 자원을 가지려고 기다리는 행동을 하지 않는 것

but, 성능↓

3) 비선점 조건 결여

: 다른 프로세스가 가지고 있는 자원을 강제로 뺏도록

but, 불가능

4) 환형대기 조건 결여

: 자원할당도에서 자원 할당 및 화살표들이 원을 이루지 못하도록

자원할당자(=운영체제)

 

 

 

2. 교착상태 회피 deadlock avoidance

: 정해진 분량 내에서만 자원을 할당하게 하여 교착상태가 일어나는 것을 피함

즉, 자원이 고갈될 경우...

ex)

총 8개의 자원이 있다고 가정하자. 이 때 P1~P3가 현재필요한 자원은 각각 2개씩이므로 먼저 나눠준다. 그러면 2개의 자원이 남게된다.

안전한 할당

① P1은 6개의 자원을 더 필요로 하는데 현재 남은 자원은 2개이므로 기다린다.

② P2는 2개의 자원을 더 필요하는데 현재 남은 자원2개를 나눠준다. 현재남은 자원이 0이 되므로 P1과 P3에게 못 나눠준다.

③ 따라서 P2가 끝나기까지 기다렸다가 끝나면 가지고 있던 자원 모두 4개를 반납한다. 그러면 현재 남은 자원은 총 4개이다.

④ 자원 4개로 P1에게 나눠줄 수 없다. 따라서 P3는 3개의 자원을 더 필요로 하므로 나눠주면 현재 남은 자원은 1개가 된다.

⑤ P3가 종료되면 총 5개의 자원을 반납하여 현재 남은 자원은 총6개가 된다.

⑥ 남은 자원 모두를 P1에게 나눠준다.

⑦ P1이 종료되면 다시 남은 자원은 총8개가 된다.

 

ex)

총 8개의 자원이 있다고 가정하자. 이 때 P1~P3가 현재필요한 자원은 각각 2,2,3개씩이므로 먼저 나눠준다. 그러면 1개의 자원이 남게된다.

① P1은 6개의 자원을 더 필요로하는데 남은 자원은 1개이므로 기다린다.

② P2는 2개의 자원을 더 필요로하는데 남은 자원은 1개이므로 기다린다.

③ P3도 2개의 자원을 더 필요로하는데 남은 자원은 1개이므로 기다린다.

 

따라서 교착상태 발생!

 

 

 

 

3. 교착상태 검출 및 복구 deadlock detection and recovery

: 교착상태 허용하나 해결한다. 교착상태 되기 전의 상태를 기억한다.

-타임 스템프 time stamp : 주기적으로 현재 상태 기록

-롤백 rollback : 교착상태가 발생되지 않는 상태로 되돌아가는 것

-오버헤드 overhead : 추가부담

 

 

 

4. 교착상태 무시

: 컴퓨터를 재시동

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

3-6 모니터  (0) 2023.03.21
quiz8  (0) 2023.03.21
quiz7  (0) 2023.03.20
quiz6  (0) 2023.03.20
3-4 교착상태  (0) 2023.03.20