-
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
Starvation이란?
Starvation(이하 기아 상태)는 프로세스가 CPU 자원의 할당을 무한히 대기하는 것을 말한다. 특히 기아 상태는 CPU 스케줄링과 밀접한 관련이 있다.
https://ko.wikipedia.org/wiki/%EA%B8%B0%EC%95%84_%EC%83%81%ED%83%9C
둘의 차이는?
둘 다 자원의 할당을 계속해서 대기한다는 점에서 비슷한 부분이 있으나 데드락은 프로세스의 상태 중 blocked 상태에서 발생하며, 기아 상태는 ready 상태에서 발생한다. 데드락은 절대 발생하지 않는 이벤트를 대기하고 있지만, 기아 상태는 CPU의 할당을 대기하기 때문에 일어나지 않는 상황을 대기하는 것과는 다르다. 특히 기아 상태는 CPU의 스케줄링과 밀접한 관련이 있다는 점에서 데드락과 구분된다.