본문 바로가기

C.E/OS

DeadLock - DeadLock이란?

DeadLock이란 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 말한다.

 

예를 들어가 P1과 P2가 리소스 A,B 둘 다를 얻어야 한다고 가정하자.

 

t1에 P1이 리소를 A를 얻고 P2가 리소스 B를 얻었다면

 

t2때 P1은 리소스 B를, P2는 리소스 A를 기다리게 된다.

 

하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에

 

이 두 프로세스는 무한정 기다리게 되는데 이러한 상태을 DeadLock상태라고 한다.

 

DeadLock의 필요조건은 아래의 4가지가 있다.

 

-Mutural Exclusion : 한 리소스는 두 개의 프로세스에게 동시에 할당될 수 없다.

 

-Hold and Wait : 한 프로세스가 리소스를 가지고 있고 필요한 또다른 리소스는

다른 프로세스가 가지고 있다.

 

-No Preemption : 할당되어 있는 리소스는 프로세스가 해제하기 전까지 강탈할 수 없다.

 

-Circular Wait : P0가 원하는 리소스는 P1이 가지고 있고 P1이 원하는건 P2가, ... , Pn-1이

원하는 건 Pn이, Pn이 원하는 건 다시 P0가 가지고 있다.

 

'C.E > OS' 카테고리의 다른 글

DeadLock - Methods of Handling  (0) 2013.11.15
DeadLock - Resource Allocation Graph  (0) 2013.11.15
Memory Management - Overlay  (0) 2013.11.15
Memory Management - Dynamic Loading, Dynamic Linking  (0) 2013.11.15
Memory Management - MMU  (0) 2013.11.15