philosophers 3

스레드(thread)와 뮤텍스(mutex)

서브젝트가 업데이트 되고, 우리는 식사하는 철학자 문제를 스레드(철학자)-뮤텍스(포크), 프로세스(철학자)-세마포어(포크) 로 구성되도록 코드를 짜야한다. 같은 문제를 다른 방법들을 이용하여 코드를 짜기 위해서는 스레드와 프로세스, 뮤텍스와 세마포어의 차이를 이해하는게 좋다. 깔끔하고 정확한 설명들은 인터넷에 찾아보면 잘 정리되어있으니 이번 글에서는 내가 과제를 진행하면서 새로 알게 되었거나, 개념의 느낌(?) 위주대로 써 볼 생각이다. 스레드 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(mult..

philosopher subject

Mandatory 3개의 다른 프로그램을 작성해야 하지만 기본 규칙은 동일합니다. 본 프로젝트는 본 표준에 따라 C로 코딩되어야 한다. Norm. Any leak, crash, undefined behavior or norm error 는 프로젝트에 0점을 의미합니다. 많은 철학자들이 원탁에 앉아 식사, 생각 또는 잠의 세 가지 중 하나를 하고 있다. 먹는 동안, 그들은 생각하거나 잠을 자지 않고, 자는 동안, 먹거나 생각하지 않으며, 물론 생각하는 동안, 먹거나 자는 것이 아니다. 철학자들은 큰 스파게티 그릇이 중앙에 있는 원형 테이블에 앉는다. 테이블 위에 포크가 몇 개 있습니다. 스파게티는 하나의 포크로 제공 및 먹기가 어렵기 때문에 철학자는 두 개의 포크로, 한 손에 하나씩 먹어야 한다고 가정한다..