반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

교착상태(Deadlock) 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/개인프로젝트

교착상태(Deadlock)

yeonee 여니 2023. 11. 23. 13:09
728x90
반응형
SMALL

교착상태(Deadlock)

 

1) 교착상태란?

교착상태란 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 상황을 뜻합니다.

 

2) 교착상태의 발생 조건 4가지

교착상태는 아래의 4가지 조건이 모두 만족되는 경우(필요충분조건)에 발생할 가능성이 있으며,

하나라도 만족하지 않으면 교착상태가 발생하지 않습니다.

1. 상호 배제(Mutual Exclusion)

한 번에 한 개의 프로세스만이 자원을 점유할 수 있다.

(하나의 자원을 점유한다)

2. 점유 대기(Hold and Wait)

프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림

(이미 하나의 자원을 점유한 상태)

→ 단, 2개만 대기가 이루어지는 상태이다.

3. 비선점(No Preemption)

다른 프로세스가 점유한 자원을 강제적(내맘대로)으로 빼앗을 수 없다.

→ 언제까지??? 반환할 때까지!

4. 순환 대기(Circular Wait)

프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건.

각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음

(점유하고자하는 자원을 아직 점유하지 않은 상태에서 대기)

→ n1이 n2를 대기하고 있고, n2가 n3를 대기하고 있고, n3가 n4를 대기하고 있고, n4가 n1을 대기하고 있는 즉, n개가 점유된 자원을 사용하기 위해 원형을 이루며 대기하는 상태

➡ 위 네 가지 조건을 모두 만족할 시, 교착 상태가 발생할 수 있습니다.

 

728x90
반응형
LIST