운영체제의 교착상태에 대처하는 방법은 크게 3가지가 있다.
- 교착상태를 발생시키지 않는 것
- 교착상태 발생 후 회복하는 것
- 교착상태를 방지하는 것
이 중에서도, 발생시키지 않는 것은 다시 예방과 회피의 방법으로 나뉜다.
- 예방 --> 교착상태의 발생 조건이 만족되지 않도록 함
- cf. 교착상태 발생 조건
- 상호배재 (mutual exclusion)
- 점유/대기 (hold and wait)
- 비선점 (no preemption)
- 순환대기 (circular wait)
- 회피 --> 현재 및 미래에 교착상태가 발생하지 않도록 자원할당을 함
은행가 알고리즘은 교착상태 회피 방법 중 하나이다. (deadlock avoidance)
교착 상태를 회피하는 것은, 미래의 자원 사용을 파악하여 순환대기 조건이 만족되지 않도록 하는 것이다.
참고 링크
'Computers > Algorithm' 카테고리의 다른 글
ch 5. backtracking (되추적법) (0) | 2016.05.18 |
---|---|
ch 4. 탐욕적 접근법 (greedy approach) (0) | 2016.05.18 |
몬테카를로 시뮬레이션 (0) | 2016.03.30 |
ch 3. 동적 프로그래밍 (dynamic programming) (0) | 2016.03.25 |
ch 3. 분할 정복법 (divide-and-conquer) (0) | 2016.03.24 |