목차
없음
본문내용
(1) Deadlock(교착상태)
교착 상태(deadlock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다.
예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다.
이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이,전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다.
이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다.
<3가지조건이 성립되면 교착상태가 발생된다.>
1. 상호배제(Mutual exclusion)
A. 단지 한번에 하나의 프로세스 만이 자원을 사용할 수 있다.
2. 점유와 대기(Hold-and-wait)
A. 하나의 프로세스가 다른 프로세스가 요구하는 자원을 할당받은 상태에세 다른 자원의 할당을 요구
3. 비선점(No preemption)
A. 자원을 강제적으로 선점할 수 없고, 소유 프로세스가 작업을 종료한 후에 해제가 가능
4. 순환대기(Circular wait)
A. 하나의 프로세스가 다음 포르세스가 요구하는 자원을 가지는 경우가 반복되어 닫힌 체인을 구성하는 경우
B. 순환대기 조건이 해결되지 않으면 교착 상태가 발생
C. 3가지 조건(상호배제, 점유와대기, 비선점)이 존재하면 순환대기조건이 해결되지 않음
D. 4가지조건(상호배제, 점유와 대기, 비선점, 순환대기)은 교착 상태에 대한 필요 충분 조건이 됨
교착 상태(deadlock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다.
예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다.
이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이,전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다.
이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다.
<3가지조건이 성립되면 교착상태가 발생된다.>
1. 상호배제(Mutual exclusion)
A. 단지 한번에 하나의 프로세스 만이 자원을 사용할 수 있다.
2. 점유와 대기(Hold-and-wait)
A. 하나의 프로세스가 다른 프로세스가 요구하는 자원을 할당받은 상태에세 다른 자원의 할당을 요구
3. 비선점(No preemption)
A. 자원을 강제적으로 선점할 수 없고, 소유 프로세스가 작업을 종료한 후에 해제가 가능
4. 순환대기(Circular wait)
A. 하나의 프로세스가 다음 포르세스가 요구하는 자원을 가지는 경우가 반복되어 닫힌 체인을 구성하는 경우
B. 순환대기 조건이 해결되지 않으면 교착 상태가 발생
C. 3가지 조건(상호배제, 점유와대기, 비선점)이 존재하면 순환대기조건이 해결되지 않음
D. 4가지조건(상호배제, 점유와 대기, 비선점, 순환대기)은 교착 상태에 대한 필요 충분 조건이 됨