식사하는 철학자 문제 : 대표적인 데드락 문제를 알아봅시다.
식사하는 철학자 문제는 deadlock을 단적으로 보여주는 문제 중 하나입니다. 젓가락이 5개가 있고, 식사를 하기 위해서, 철학자는 자신의 왼쪽, 오른쪽에 있는 젓가락을 들어야 한다고 해 봅시다. 그런데, 사람들이 자기 왼쪽에 있는 젓가락을 든 상태에서, 오른쪽에 있는 젓가락을 얻으려고 한다면 어떨까요? 그리고, 누군가 젓가락을 뺏을 수 없다면? 이럴 때, deadlock이 발생하게 됩니다. 그러면 이 문제를 풀기 위해서 어떻게 해야 하는지 봅시다. 먼저, flag가 있습니다. 이것은 젓가락이 누군가에 의해 집어진 상태인지를 나타냅니다. 5명이 있으니 int형 5개를 저장하는 array를 선언하였습니다. 그리고 people은 현재 식사를 하고 있는 철학자의 수를 의미하는데요. 왜 이 변수를 썼는지 밑에..
OS/이론
2019. 11. 25. 21:10
최근댓글