SSAFY-CSStudy / OS

SSAFY CS 운영체제 스터디입니다.
12 stars 0 forks source link

[7. 데드락] 교착상태(Deadlock)이란 무엇인가? #32

Open Yunhee000 opened 6 months ago

Yunhee000 commented 6 months ago

1Depth

Question

교착상태(Deadlock)이란 무엇인가?

Answer 서로 다른 프로세스가 서로 점유하고 있는 자원의 반납을 대기하고 있는 상태를 의미한다.

2Depth

Question

교착상태(Deadlock) 발생 조건은 무엇인가?

Answer 교착상태는 다음의 4가지가 모두 성립할 때 발생한다.
1. 상호배제 : 한 번에 하나의 프로세스만 해당 자원을 사용할 수 있어야 한다
2. 점유 대기 : 할당된 자원을 가진 상태에서 다른 자원을 기다린다.
3. 비선점 : 다른 프로세스가 자원의 사용을 끝낼 때까지 자원을 뺏을 수 없다.
4. 순환대기 : 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.

3Depth

Question

교착상태(Deadlock) 해결 방법은 무엇인가?

Answer 교착상태의 해결 방법은 4가지가 있다.
1. 예방 : 4가지 조건 중 하나라도 만족되지 않도록 한다.
2. 회피 : 데드락이 발생하지 않도록 알고리즘을 짠다. ex) Banker's algorithm
3. 회복 : 교착상태가 일어난 프로세스를 종료하거나 할당된 자원을 해제한다.
4. 무시 : 교착상태가 일어나지 않는다고 생각하고 아무런 조치도 취하지 않는다.


Additional Explain

Banker's algorithm : 프로세스에 자원을 할당할지 할당하지 않을지 결정하는 알고리즘