식사하는 철학자들 문제는 전산학에서 동시성과 교착 상태를 설명하는 예시로, 여러 프로세스가 동시에 돌아갈 때 교착 상태가 나타나는 원인을 직관적으로 알 수 있다.
다섯 명의 철학자가 원탁에 앉아 있고, 각자의 앞에는 스파게티가 있고 양옆에 젓가락이 한 짝씩 있다.
그리고 각각의 철학자는 다른 철학자에게 말을 할 수 없다.
철학자가 스파게티를 먹기 위해서는 양 옆의 젓가락 짝을 동시에 들고 있어야 한다.
이때 각각의 철학자가 왼쪽의 젓가락 짝을 들고 그 다음 오른쪽의 젓가락 짝을 들어서 스파게티를 먹는 알고리즘을 가지고 있으면, 다섯 철학자가 동시에 왼쪽의 젓가락 짝을 든 다음 오른쪽의 젓가락 짝을 들 때까지 무한정 기다리는 교착 상태에 빠지게 될 수 있다.
또한 어떤 경우에는 동시에 젓가락 양짝을 집을 수 없어 식사를 하지 못하는 기아 상태가 발생할 수도 있고, 몇몇 철학자가 다른 철학자보다 식사를 적게 하는 경우가 발생하기도 한다.
솔직히 뭔 말인지 못 알아 먹겠다. 교훈은 순서를 지켜야 한다는 건가?
닥쳐 - 굶어 - 스파게티가 없음 짜파게티를 먹어 - 이러고 열어둔 윈도우 창을 닫음. 수학과 철학의 경계선인가, 아님 프로그래머들은 늘 이런걸 두고 고민하는 건가. 멀티프로그래밍 공유 자원에 대한 접근을 제한하는 방법이라는데 갑자기 밥 먹는 철학자 이야기가 나온다.
몰라. 독수리 타법으로도 채팅은 가능해.
Posted by 미야