운영체제/혼공 운영체제
혼공 운영체제 ch13 - 교착상태
여파고
2024. 1. 28. 17:25
교착상태(Dead Lock)
A자원을 물고있는 프로세스1 이 B자원을 기다리고
B자원을 물고있는 프로세스2 가 C자원을 기다리고
C자원을 물고있는 프로세스3 이 A자원을 기다리면
프로세스1은 프로세스2 때문에 A를 놓지 않고 기다리고,
프로세스2는 프로세스3 때문에 B를 놓지 않고 기다리고,
프로세스3은 프로세스1 때문에 C를 놓지 않고 기다려서,
서로 꼼짝도 못하는 상태
일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상을 교착상태라고 한다
자원 할당 그래프
어떤 프로세스가 어떤 자원을 사용하고 있고, 또 어떤 프로세스가 어떤 자원을 기다리고 있는지를 표현한 그래프
프로세스는 원으로, 자원의 종류는 사각형으로 표현한다
자원의 사용 가능한 개수는 점으로 표현한다
보통 교착상태를 나타내는 그래프는 원의 형태를 띄고 있다.
교착 상태 발생 조건
- 상호배제
한 자원이 사용중일때 다른 프로세스가 사용할 수 없음 - 점유와 대기
자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태 - 비선점
빼앗아 올 수 없음 - 원형 대기
위의 그래프처럼 원의 형태(서로 물고 물리는 형태)
교착 상태 해결 방법
- 교착 상태 예방
○ 상호 배제 없애기
○ 점유와 대기 없애기
○ 비선점 조건 없애기
○ 원형 대기 조건 없애기 : 모든 자원에 번호를 붙이고 오름차순으로 자원 할당 - 교착 상태 회피
배분할 수 있는 자원의 양을 고려하여 교착상태가 발생하지 않을 정도의 양 만큼만 자원을 배분
○ 정상상태 : 안전상태(안전순서열O)
○ 교착상태 발생 가능성 있는 상태 : 불안전상태(안전순서열X) - 교착 상태 검출 후 회복
○ 선점을 통한 회복 : 교착상태가 해결될 때까지 (다른프로세서한테서 자원 빼앗아서)한 프로세스씩 자원을 몰아주기.
○ 프로세스 강제 종료를 통한 회복 : 단순, 확실. 열받게 하는 프로세스들 강제 종료해버림.
반응형