[운영체제] 데드락(교착상태) 의 개념과 4가지 발생 조건

728x90

데드락은 두개 이상의 프로세스가 동시에 실행될 때 운영체제 혹은 소프트웨어간 자원관리에 에러가 발생하여

프로세스가 멈춰버리는 현상을 말한다. (이때 간혹 운영체제 자체가 멈추기도 한다).

둘 이상의 프로세스 실행 시 시스템 자원 호출 요청 순서가 뒤엉켜 서로가 다른 프로세스에서

점유중인 자원을 기다리며 무한 대기상태에 빠지는것을 말한다.

 

이때 데드락이 발생하기 위해서 다음 4가지의 조건을 모두 충족해야 한다. (상점비순)

상호배제 : 한번에 하나의 프로세스만 프로세스 실행에 필요한 자원을 사용할 수 있다.

점유와 대기 : 자원을 가지고 있는 상태에서 다른 프로세스가 자원을 반납하기를 기다리고 있어야 한다.

비선점 : 다른 프로세스가 가지고 있는 자원을 강제로 빼앗아 올 수 없다.

순환대기 : 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있어야 한다.