728x90
교착상태 (Deadlock)
- 한 집합 내의 프로세스들이 각자 다른 프로세스에서 발생할 이벤트들을 기다리고 있어서 자원의 요구가 뒤엉킨 상황이다.
- 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 기다릴 때 교착상태가 발생한다.
교착상태 발생 조건
조건 | 설명 |
상호배제 (Mutual Exclusion) | 한 번에 한 프로세스만 해당 자원을 사용할 수 있어야 한다. |
점유대기 (Hold and Wait) | 다른 프로세스에 할당된 자원을 얻기 위해 기다리는 최소 자원 하나를 보유한 프로세스가 존재해야 한다. |
비선점 (Non-preemptive) | 다른 프로세스가 점유하고 있는 자원을 강제로 뺏을 수 없다. |
순환대기 (Circular Wait) | P(n-1) 프로세스가 P(n) 프로세스가 보유하고 있는 자원을 얻기 위해 기다리고 있는 경우를 말한다. |
교착상태 해결 기법
1. 교착상태 예방 (Prevention)
- 교착상태 발생 4가지 조건 중 하나를 제거하여 해결한다.
- 단점 : 장치의 효율성을 낮추고 시스템 처리량을 감소시킨다.
2. 교착상태 회피 (Avoidance)
- 교착상태가 일어나려고 하면 적절히 피해간다.
- '예방'보다 자원을 좀 더 효율적으로 이용하는 것을 목표로 한다.
은행원 알고리즘 (Banker's Algorithm)
: 프로세스가 자원을 요구할 때, 자원을 할당한 뒤에도 교착상태가 일어나지 않는지를 예측하여 회피한다.
3. 교착상태 탐지 (Detection)
- 교착상태가 발생했는지를 파악하기 위해 탐지 알고리즘을 사용하여 시스템 상태를 검사한다.
4. 교착상태 회복 (Recovery)
- 교착상태를 일으킨 프로세스를 중지시키거나 자원을 선점하여 순환대기에서 탈피한다.
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 메모리 관리 기법 (0) | 2020.10.01 |
---|---|
[운영체제] CPU 스케줄링 (0) | 2020.09.24 |
[운영체제] 컴퓨터 시스템 구성요소 (0) | 2020.09.20 |
[운영체제] 프로세스 동기화 (0) | 2020.09.14 |
[운영체제] Pthread 개요 (0) | 2020.09.14 |
댓글