2017. 3. 5. 20:07ㆍ9급 공무원/컴퓨터 일반
A는 B의 자원을
B는 A의 자원을 요구하며
서로 안내놓고 있음
서로 머리끄댕이 잡고 너 먼저 놔라 하고 있는 상황
# 발생 조건 : 이하 네 가지 상황이 동시 발생하면 교착상태임(하나라도 만족하지 않으면 발생하지 않음)
* 상호배제(Mutual exclusion) : 점유된 자원은 다른 프로세스가 사용할 수 없다.
* 점유와 대기(Hold & wait) : 하나 이상의 자원을 점유한 채로, 다른 프로세스가 점유한 자원을 요청하며 대기한다
* 비선점(Non preemption) : 프로세스가 점유한 자원을 강탈할 수 없다.
* 순환대기(환형대기, Circular wait) : 프로세스간에 닫힌 체인이 존재하여 각 프로세스는 체인 내의 다른 프로세스에 의해 소유되어 있는 자원을 요청하며 대기하고 있다.
# 해결 방안
· 발견(탐지, Detection)
· 회복(복구, Recovery)
· 예방(방지, Prevention) - 점유와 대기 부정, 비선점 부정, 환형대기 부정 (상호배제는 부정할 수 없음)
· 회피(Avoidance) - 은행가 알고리즘
# 교착상태 회복
· 프로세스 제거
· 자원 선점
· 복귀
# 교착상태 예방
· 환형대기 부정 - 고유번호 할당, 큰 번호로만 자원 요구하도록 함
> 프로그램 작성의 어려움, 자원 낭비
· 점유와 대기 부정 - 모든 자원을 할당 한 후 프로세스 실행
> 공유자원 낭비, 기아상태 발생 시킬 수 있음
· 비선점 부정 - 자원 요구시 점유한 자원 반납하도록 하거나, 공유자원을 강제로 빼앗아 옴
> 처리비용 증가(기존 작업 무효, 요청 반납이 무한정 반복될 수 있음)
'9급 공무원 > 컴퓨터 일반' 카테고리의 다른 글
[운영체제] 버디 시스템(Buddy System) (0) | 2017.03.05 |
---|---|
[운영체제] 데커 알고리즘(Dekker's algorithms) 개요 (0) | 2017.03.05 |
[운영체제] 프로세스 스케줄링 (0) | 2017.03.05 |
[운영체제] 가상 기계 (0) | 2017.03.05 |
[운영체제] 프로세스의 상태 (0) | 2017.03.05 |