42seoul/philosophers 4

프로세스(process)와 세마포어(semaphore) 작성중

프로세스 프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다. 프로세스 관리는 운영 체제의 중요한 부분이 되었다. 세마포어 세마포어(Semaphore)는 에츠허르 데이크스트라가 고안한, 두 개의 원자적 함수로 조작되는 정수 변수로서, 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법으로 사용된다. 이는 철학자들의 만찬 문제의 고전적인 해법이지만 모든 교착 상태를 해결하지는 못한다. 이전에 philosophers 과제를 진행하기전에 평가를 ..

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

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

philosopher subject

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