CS/운영체제

DEADLOCK의 정의, 조건, 해결책

씩씩한 IT블로그 2023. 3. 16. 01:15
반응형

DEADLOCK(교착상태) 이란

둘 이상의 프로세스가 각자 서로가 필요한 자원을 점유한 상태로 무한정 대기하는 상황

 

DEADLOCK 발생조건

다음 네 조건을 만족하면  데드락에 빠질 수 있는 가능성이 있다.

1. 상호배제 : 자원들은 한 프로세스만 점유할 수 있다.

2. 점유대기 : 특정 프로세스에게 쓰이고 있는 자원이 다른 프로세스에게도 필요하여 대기하는 다른 프로세스가 존재

3. 비선점 : 다른 프로세스가 자원을 점유하고 있을 때 강제로 뻇을 수 없다

4. 순환대기 : 프로세스 P0,P1,P2...Pn 이 존재할 때, Pk-1이 Pk가 필요한 자원을 가지고(Pn은 P0가 필요한 자원보유) 있는 상황

 

DEADLOCK 해결

1. 예방법(데드락 상태를 사전에 예방, 조건에 대한 부정)

1.1 상호배제 부정 : 여러개의 프로세스가 공유자원 사용

1.2 점유대기 부정 : 프로세스가 실행되기 전 필요한 모든 자원 할당

1.3 비선점 부정

1.4 순환대기 부정

2. 회피법(데드락 발생시 해결방법)

은행원 알고리즘 : 다익스트라가 고안한 방법. 프로세스에 자원을 배정할 때, 배정 후에 교착상태에 빠질 위험이 없는지 사전에 확인한 후 배정하는 방법.

반응형