Computer Science/Operating System

[운영체제-혼공] 교착상태(Deadlock)

고고잉93 2024. 5. 2. 02:40
728x90

▣ 교착상태란?

 : 두개이상의 프로세스가 서로가 가진 자원을 대기하고 있어 아무것도 진행되지 못하는 상태를 말한다.

 즉, 각 프로세스가 다음에 필요한 자원을 다른 프로세스가 가지고 있어서 발생한다.

 

교착상태를 표현할 수 있는 자원 할당 그래프를 통해 알아보자.

 

P1 : 프로세스

R1: 자원의 종류

● : 자원의 개수(ex : CPU)

 

 

교착상태의 발생

 

○ 교착상태의 발생조건

1. 상호 배제: 해당 자원을 한 번에 하나의 프로세스만 이용가능했기 때문에. 

2. 점유와 대기 : 어떤 자원을 보유한채 다른 자원을 할당받기를 기다렸기 때문에.

3. 비선점 : 다른 프로세스의 자원을 강제로 뺏지 못하기 때문에.

4. 원형 대기 : 프로세스들과 프로세스가 요청 및 할당 받은 자원이 원의 형태(순환형태)를 이루었기 때문에.

    

▶ 교착상태의 해결 : 자원의 양을 고려하여 교착상태가 발생하지 않을정도의 양큼만 자원을 배분한다.

▶ 교착상태 검출 후 회복 : 1. 회복될때까지 한 프로세스씩 자원을 몰아준다.

                                           2. 프로세스 강제 종료

                                           3. 무시 ( 타조 알고리즘..이라고도 한단다)

 

728x90