운영체제에서 데드락(DeadLock)이란?

종종 컴퓨터에서 작업이 무한 대기 상태에 빠질 때가 있습니다. 데드락이 원인일 수 있습니다.

DeadLock이란?

데드락(DeadLock)이란 두 개 이상의 프로세스가 서로가 점유하고 있는 리소스가 해제되길 기다리고 있어서 모든 프로세스가 대기하는 문제를 의미합니다. 교착 상태라고도 부릅니다.

 

예를 들어, 리소스1리소스2, 프로세스1프로세스2가 있습니다. 두 프로세스는 작업을 완료하기 위해 리소스1과 리소스2 모두에 액세스해야 합니다. 이 상황에서 아래의 흐름으로 이어진다면 교착 상태입니다.

 

1. 프로세스1이 리소스1에 액세스 합니다.

2. 프로세스2가 리소스2에 액세스 합니다.

3. 프로세스1이 리소스2에 액세스 하려는데 이미 할당되어 불가능합니다.

4. 프로세스2는 리소스1에 액세스 하려는데 이미 할당되어 불가능합니다.

5. 프로세스1과 프로세스2는 교착 상태로 들어가고 작업을 완료하지 못합니다.

데드락 발생하는 이유

리소스가 올바르게 할당되지 않으면 데드락이 발생할 수 있습니다. 어떤 프로세스가 다른 프로세스에서 이미 사용 중인 리소스를 요청하고 운영체제가 이 요청을 허용하는 경우를 예로 들 수 있습니다. 가령 프로그램을 설치할 때를 떠올려보세요. 많은 경우 실행되고 있는 프로세스를 모두 종료시키고 리소스를 해제하도록 유도합니다. 이는 프로그램 설치 과정에서 이미 할당된 공유 리소스에 액세스 할 수 있는 가능성을 차단하는 것입니다.

 

만약 데드락이 발생하면 위해서는 문제가 되는 프로세스를 강제 종료하는 방법이 있습니다.

반응형

댓글

Designed by JB FACTORY