middlefitting

데드락(Deadlock) 이란 무엇인가. 본문

OS

데드락(Deadlock) 이란 무엇인가.

middlefitting 2023. 2. 1. 23:41

데드락이란

데드락은 남아있는 자원이 없는 상황에서 자원을 점유한 프로세스들이 희생을 하지 않고,

 

다른 자원을 요청하면서 발생하는 교착상태를 말합니다.

 

즉 일련의 프로세스들이 서로가 가진 자원을 기다리며 막혀 있는 상태입니다.

 

여기서 말하는 자원은 하드웨어 소프트웨어 등을 포함하는 개념입니다.

 

 

 

데드락 발생 조건

데드락 발생에는 4가지 조건이 존재하며, 어느 한 조건도 만족하지 않는다면 데드락은 발생하지 않습니다.

 

상호배제 (Mutual exclusion)

획득한 자원을 독점적으로 사용하는 것을 말합니다

 

비선점 (No preemption)

프로세스는 자원을 스스로 내어놓을 뿐, 빼앗기지 않는 것을 말합니다.

 

보유 대기 (Hold and wait)

자원을 가진 프로세스가 자원을 놓지 않고 자원을 기다리는 것을 말합니다.

 

순환 대기 (Circular wait)

사이클이란 그림처럼 자원을 기다리는 프로세스들끼리 사이클을 형성하는 것을 말합니다.

 

자원에서 프로세스로 가는 화살표를 자원이 할당된 것으로 보고,

 

프로세스에서 자원으로 가는 화살표는 자원을 요청하는 것으로 보았을 때,

 

프로세스 1, 2 는 서로 상대방이 가지고 있는 자원을 요청하고 있는 상태입니다.

 

상호배제, 비선점, 보유 대기를 가지고 있는 상황에서는 어느 프로세스도 추가적인 자원을 흭득할 수 없고,

 

데드락이 발생하게 되는 것입니다.

 

 

 

출처

KOWS 운영체제 - 반효경 교수님 - Deadlock 1

http://www.kocw.net/home/search/kemView.do?kemId=1046323