[CS] 식사하는 철학자 C언어로 해결하기
·
cs
※ 이 포스트에서는 메세지 큐을 이용해 문제를 해결하는 방식을 썻고 철학자가 1명인 경우는 제외했습니다. 교착 상태(Dead Lock)와 경합 조건(Race Condition)에 관해 배우는 대표적인 주제인 식사하는 철학자 입니다. 식사하는 철학자 문제를 간단하게 설명드리자면각각의 철학자는 스레드이다.철학자는 스파게티를 먹고 자고 생각하는 루틴을 반드시 지켜야 한다.각각의 철학자는 다른 철학자의 상태를 확인할 수 없다.포크는 철학자 수 만큼 주어지고 각 포크는 철학자 사이에 있다.철학자가 식사할 때는 포크가 반드시 2개가 필요하다.각 철학자는 생명 시간이 있다.철학자는 먹고 자는 루틴에 생명을 담보로한 소요 시간이 있다.자고 난 뒤에는 생명 시간이 연장 된다.만약 하나의 철학자라도 죽었다면 모든 철학자는..