본문 바로가기

DeadLock

Deadlock 교착상태(Deadlock) ( = 무한대기) 다중 프로그래밍 환경에서 두 개의 프로세스가 서로 다른 프로세스가 가지고 있는 자원을 기다리고 있으며 자신이 차지하고 있는 자원을 내놓지 않는 현상으로 이 두 프로세스에게는 영원히 처리기를 줄 수 없게 된다. 가. 교착상태 필수조건 ① 상호배제(mutual exclusion) : 어느 자원에 대해 한 프로세스가 이미 사용중이면 다른 프로세스는 기다려야 하는 것 ② 점유와 대기(wait for) : 하나 이상의 자원을 할당받은 채로 나머지 자원을 할당 받기 위해 다른 프로세스의 자원이 해제되기를 기다리는 프로세스가 존재하는 경우 ③ 비중단(no Preemption) : 자원을 할당받은 프로세스로부터 자원을 강제로 빼앗지 못하는 것 ④ 환형대기(circular w.. 더보기
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 .. 더보기