-
Deadlock과 Starvation의 차이운영체제 2021. 7. 7. 17:04
Deadlock이란?
Deadlock(이하 데드락)이란 여러 프로세스나 스레드가 절대 일어나지 않는 이벤트나 자원 할당을 위해 무한정 대기하는 것을 말한다.
프로세스의 상태는 running, ready, blocked 상태가 있는데 특히 blocked 상태는 프로세스가 어떤 특정 이벤트나 필요한 자원을 기다리는 상태다. 데드락이 발생하면 프로세스는 blocked 상태에서 무한히 대기한다.
https://ko.wikipedia.org/wiki/%EA%B5%90%EC%B0%A9_%EC%83%81%ED%83%9C
교착 상태 - 위키백과, 우리 모두의 백과사전
데드락은 여기로 연결됩니다. 다른 뜻에 대해서는 데드락 (동음이의) 문서를 참조하십시오. 교착 상태(膠着狀態, 영어: deadlock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리
ko.wikipedia.org
Starvation이란?
Starvation(이하 기아 상태)는 프로세스가 CPU 자원의 할당을 무한히 대기하는 것을 말한다. 특히 기아 상태는 CPU 스케줄링과 밀접한 관련이 있다.
https://ko.wikipedia.org/wiki/%EA%B8%B0%EC%95%84_%EC%83%81%ED%83%9C
기아 상태 - 위키백과, 우리 모두의 백과사전
기아 상태(starvation 스타베이션[*])는 컴퓨터 과학 용어의 하나로, 프로세스가 끊임없이 필요한 컴퓨터 자원을 가져오지 못하는 상황으로, 이러한 자원 없이는 처리를 끝낼 수 없는 병행 컴퓨팅에
ko.wikipedia.org
둘의 차이는?
둘 다 자원의 할당을 계속해서 대기한다는 점에서 비슷한 부분이 있으나 데드락은 프로세스의 상태 중 blocked 상태에서 발생하며, 기아 상태는 ready 상태에서 발생한다. 데드락은 절대 발생하지 않는 이벤트를 대기하고 있지만, 기아 상태는 CPU의 할당을 대기하기 때문에 일어나지 않는 상황을 대기하는 것과는 다르다. 특히 기아 상태는 CPU의 스케줄링과 밀접한 관련이 있다는 점에서 데드락과 구분된다.
https://www.youtube.com/watch?v=xvoEsy2zJnc