꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

스레드 교착 상태(Deadlock)와 기아 상태(Starvation)

gold_dragon 2021. 4. 22. 21:06

교착 상태(Deadlock)

무한 대기 상태로, 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있어서 다음 단계로 진행하는 못하는 상태를 말합니다.

<조건>

1. 상호배제

2. 점유대기

3. 비선점

4. 순환대기

위 4가지 조건이 성립될 때 Deadlock이 발생합니다.

조건 중에 일부를 성립이 안되도록 하면 해결할 수 있습니다.

기아 상태(Starvation)

특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당 받지 못하는 상태를 말합니다.

 

교착 상태는 여러 프로세스가 동일 자원 점유를 요청할 때 발생하고, 기아 상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스는 영원히 자원 할당이 안되는 경우에 주로 발생합니다.

 

기아 상태를 해결하기 위해서는 우선순위를 변경해주면서 해결할 수 있습니다.

'운영체제 (OS)' 카테고리의 다른 글

가상 메모리 - 페이징 시스템  (0) 2021.04.22
가상 메모리  (0) 2021.04.22
스레드 동기화 문제  (0) 2021.04.22
스레드  (0) 2021.04.21
프로세스 총 정리 및 성능 개선 방법  (0) 2021.04.21