Open jinsusong opened 1 year ago
식사하는 철학자 문제 해결 방법
젓가락 개수 늘리기 젓가락 개수를 5개에서 6개로 늘려 최악의 경우 5명이 젓가락 하나씩 집어도 1명은 2개의 젓가락으로 식사를 마치고 이 과정을 반복한다.
철학자 위치 구분 (환형 대기 해결) a. 홀수 번 철학자, 짝수 번 철학자를 구분한다. b. 홀수 번 철학자 인 경우는 젓가락을 왼쪽, 오른쪽 순으로 집어서 밥을 먹고 젓가락을 왼쪽, 오른쪽 순으로 놓는다. c. 짝수 번 철학자인 경우는 젓가락을 오른쪽, 왼쪽 순으로 집어서 밥을 먹고 젓가락을 오른쪽, 왼쪽 순으로 놓는다.
각각의 철학자 상태 구분 철학자가 EATING상태가 되기 위해서 자신이 HUNGRY상태이고, 자신의 왼쪽, 오른쪽 모두 EATING상태가 아니어야 한다. HUNGRY: 철학자가 젓가락 집기를 원함. (임계구역 접근을 원함) THINKING: 철학자가 젓가락 집기를 원치 않음 (임계구역 접근을 원치 않음) EATING: 철학자가 2개의 젓가락을 집어 밥을 먹는다. (임계구역에 접근함)
세마포어 사용 왼쪽 포크와 오른쪽 포크를 동시에 들게끔하고 그것을 세마포어들로 감싼다. (임계 구역에 들어간 철학자만 포크를 들 수 있고, 다른 철학자는 임계구역 밖에서 기다리게 한다.)
출처 : https://velog.io/@minseojo/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%8B%9D%EC%82%AC%ED%95%98%EB%8A%94-%EC%B2%A0%ED%95%99%EC%9E%90-%EB%AC%B8%EC%A0%9C https://simsimjae.tistory.com/72
여러 프로세스가 동시에 돌아갈 때 교착 상태가 나타나는 원인을 직관적으로 알 수 있는 문제임.
https://ko.wikipedia.org/wiki/%EC%8B%9D%EC%82%AC%ED%95%98%EB%8A%94_%EC%B2%A0%ED%95%99%EC%9E%90%EB%93%A4_%EB%AC%B8%EC%A0%9C
철학자 문제 교착상태 성립을 위한 조건을 젓가락으로 설명해보세요.
특정 철학자(3번)가 기아 상태가 되는 경우에 대해 설명하는 설명해보세요
소스코드 해석 https://www.geeksforgeeks.org/dining-philosophers-problem/