반응형
Ⅰ. 프로세스간 무한 자원대기, 교착상태의 개요
가. 교착상태의 개념
- 멀티 프로세스 환경에서 두 개 이상의 프로세스가 아무리 기다려도 자원을 사용할 수 없는 무한 대기 상태
나. 교착상태의 발생 원인
원인 | 설명 |
상호배제 | - 자원 배타 점유, 타 프로세스 사용 차단 |
점유와 대기 | - 특정 자원 할당 점유 후 다른 자원을 요구 |
비선점 | - 할당된 자원의 사용이 끝날 때까지 회수 불가 |
환형대기 | - 프로세스 간 자원 요구가 하나의 원형 구성 |
- 교착 상태의 필요조건으로 4가지 조건 동시 성립 시 발생
Ⅱ. 교착상태의 해결 방안
가. 교착상태 예방 및 회피
구분 | 해결 방안 | 내용 |
예방 | - 상호배제 조건 부정 | - 공유할 수 없는 자원을 사용할 때 성립 |
- 점유와 대기 조건 부정 | - 자원 요청시, 다른 자원 점유하지 않음 | |
- 비선점 조건 부정 | - 자원 할당 실패 시 점유 자원 반납 | |
- 환형대기 조건 부정 | - 모든 프로세스에 각 자원할당 순서 부여 | |
회피 | - Wait-Die | - 자원 요청시 대기, 점유한 자원 요청시 종료 |
- Wound-Wait | - 자원 요청시 선점, 점유한 자원 요청시 대기 | |
- Banker's Algorithm | - 자원 상태 감시, 사전에 필요 자원 수 제시 |
나. 교착상태 발견 및 회복
구분 | 해결 방안 | 내용 |
발견 | - 자원 할당 그래프 사용 | - 교착상태 발견 목적 프로세스, 자원 그래프 |
회복 | - 프로세스 종료 | - 교착상태 프로세스 모두 중지 및 재실행 |
- 자원 선점 대상 선택 | - 교착상태 프로세스 중 자원 선점 프로세스 결정 |
[참조] https://blog.skby.net/%EA%B5%90%EC%B0%A9%EC%83%81%ED%83%9C-deadlock/
[banker's 알고리즘] https://blog.skby.net/%EC%9D%80%ED%96%89%EA%B0%80-bankers-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/
반응형