KUkingClass/cs-class

[3주차/운영체제] 데드락(Deadlock)

Closed this issue · 0 comments

운영체제

데드락(Deadlock)

질문지

Q1. 데드락이란?

Q2. 데드락 발생 필요 조건이 몇가지인가요? 그리고 각각은 어떤 조건인가요?

Q3. 데드락을 설명하기 위한 유명한 문제로 식사하는 철학자 문제가 있습니다. 위에서 말한 필요조건 측면에서 철학자 문제를 설명해보세요.

  • 예: 비선점 - 철학자가 다른 철학자의 젓가락을 뺏지 못하므로 데드락 발생

Q4. 철학자 문제에서 데드락이 발생할 때, 이를 해결하기 위한 방법이 뭐가 있을까요? 예를 들면 모두가 왼쪽을 집고 오른쪽을 집는 게 아닌, 홀수 번호 철학자들은 왼쪽 젓가락 먼저, 짝수 번호 철학자들은 오른쪽 젓가락을 들게 하는 방법이 있습니다. 이 외에 다른 방법을 생각해보세요.

  • 힌트: 생각이 안난다면 데드락 발생 필요조건 4가지를 생각해보세요.

Q5. 데드락을 해결하기 위해선, 데드락이 발생하지 않도록 (1)하거나, 데드락이 발생할 것 같으면 (2)하거나, 데드락이 발생하게 두고 나중에 (3) 하는 방법이 있습니다. 이 때 (1) (2) (3) 에 들어갈 말은?

Q6. 은행원 알고리즘은 어떻게 데드락을 해결하는 방법인가요? (위 5번의 세 가지 경우 중에) 해당 알고리즘이 어떤 알고리즘인지 간략하게 설명하고, 어떤 이유로 일반적으로 사용하기엔 어려운 알고리즘인지 설명해보세요.

Q7. 데드락 검출(detection) 방법 중 두 가지가 뭘까요? 그리고 어떤 경우가 더 오버헤드가 많이 들까요?