프로세스(교착상태) Flashcards
교착상태
[리드] 무한 자원대기
[정의] 프로세스의 상호배제, 점유와 대기, 비선점, 환형대기로 인해 자원 할당을 무한정 대기하는 상태
[조건] (상점비환)
- 상호배제, 점유와 대기, 비선점, 환형대기
* 교착상태는 상호배제, 점유와 대기, 비선점, 환형대기가 동시에 성립할때 발생함
[해결방안] (예회탐복)
- 예방 : 조건 부정(상호배제, 점유&대기,비선점,환형대기 부정), 선점 스케쥴링
- 회피 : 은행가 알고리즘, wait-die, wound-wait
- 탐지 : 자원할당 그래프, 자원의 사전 분배, 주기적 탐지
- 복구 : 워치독 타이머(WDT), Process Kill
* 교착상태 처리 기법의 복합적 접근 방법 활용을 통해 보다 효과적인 대응 가능
[차별화] 복합적 접근법
- 자원을 유형에 따라 계층적 분류, 계층별 최적화 기법 적용
- (사례) PCB 등 내부자원 (자원에 순서주어 교착상태 방지 기법 ), 메모리 자원 (작업 교체, 선점통한 교착상태 방지), 보조기억 장치 (최대 사용량 사전 할당 기반 교착상태 회피)
자원 할당 그래프
[리드] Vertex와 Edge 연결 표현
[정의] 교착상태 탐지 목적으로 프로세스와 자원의 관계를 요청/ 할당선으로 표현한 그래프 알고리즘
[구성요소]
- Vertex : 프로세스, 자원
- Edge : 요청선, 할당선
[탐지방법]
- 교착 상태(환형 대기) 자원할당 그래프 및 회피 방법 표시
[차별화] 교착상태 발견시 해결 방법
- 은행가 알고리즘 사용 “회피”, 프로세스별 우선순위에 따라 처리 조정
* 자원할당 그래프 단순화한 “Wait-For” 그래프 존재
은행가 알고리즘
[정의] 교착상태 회피 위해 자원 상태를 감시 안전 상태의 요구만 수락하는 알고리즘
[필요성] 멀티프로세스, 자원 유한성, 교착상태 회피
[상태]
1. 안정 : 프로세스별로 요청한 자원할당 가능 교착상태 방지
2. 불안정 : 교착상태 발생 가능, 요청한 자원할당불가
[구성요소] (AMAN) (※ max[I,j] i는 프로세스, j는 자원의미)
1. 현재 여유 자원(Available) : 사용가능한 자원의수[j]=k
2. 최대 요구량(Max) : 프로세스별 최대자원의요구[i,j]=k
3. 현재 점유량(Allocaion) : 프로세스별 할당되어있는 자원수[i,j]=k
4. 추가 요구 자원(Need) : 할당후 남아있는자원수 (Need[i,j] = Max - Allocation)
[프로세스] 준비(리소스양 분석:Available) → 자원할당요청(추가 자원 요구량 분석(Request = Max - Allocation)) → 안정? 여부 → 자원할당(Safe) or 할당거부(Unsafe)
* 현재 여유자원을 초과한 Need의 프로세스는 할당을 거부
Wait-die
[정의] 비선점 기법을 기반으로 Old 프로세스가 자원을 요청할 경우 Wait, Young 프로세스가 요청을 하는 경우 Die의 방법을 수행하는 매커니즘
* 환영대기 조건 부정 통해 교착상태 회피 가능
[특징]
- 오래된 프로세스가 기다림
- 필요한 자원 획득위해 여러 번 복귀, 다수 Rollback발생
Wound-Wait
[정의] 선점 기법을 기반으로 Old 프로세스가 자원을 요청할 경우 Wound, Young 프로세스가 요청을 하는 경우 Wait의 방법을 수행하는 매커니즘
* 비선점 조건 부정 통해 교착상태 회피 가능
[특징]
- 오래된 프로세스는 기다리지 않음
- 보유중인 자원 요청하고 대기, 소수의 Rollback 발생