-
[Philosophers] 필로소퍼 70시간만에 끝내기(1)-과제파악하기42seoul 2021. 5. 18. 16:53
3써클인데 필로소퍼 하는 이유
6월 8일에 Inception이 5써클로 이동하고 Philosophers가 3써클로 내려온다고 해서
미리 Philosophers를 해놓으려고 한다.
하루에 7시간씩하면 10일만에 끝나겠지?
+ 필로소퍼는 과제 3개를 해야하는데
6월 8일에 3써클로 내려올때 셋중에 일부가 보너스로 넘어간다고 한다.
과제파악
- 식사하는 철학자들을 이용한 쓰레드, 프로세스 익히기 과제(쓰레드는 같은 메모리를 공유, 프로세스는 부모의 데이터를 그대로 복사하여 자식이 사용함, 고로 자식 프로세스에서의 자료 변경은 부모 프로세스의 자료에 영향을 주지 않음 등의 차이가 있다. 이걸 공부해야함.)
- 포크가 양쪽에 있음 -> 포크가 두개가 있어야 먹을 수 있음. 먹고 나면 자야함, 자고나면 생각해야함 -> 정해진 시간까지 다시 먹지 못하면 죽음 -> 죽으면 프로그램 종료
- 가능하면 죽지 않게 프로그램을 짜라
- 철학자들의 상태를 출력해야하며, 하나의 출력이 끝나고 다른 출력이 되어야한다. 예를들어 출력 문장이 제멋대로 섞여서 출력되면 안됨
- 철학자의 수, 죽는 시간(소요시간을 의미), 먹는 시간(소요시간을 의미), 잠자는 시간(소요시간을 의미), [각 철학자가 먹어야하는 횟수]를 프로그램 실행시 인자로 받는데 마지막 요소는 선택적이다. 그래서 대괄호로 감싸져있음.
- 철학자들은 서로 누가 언제 죽었는지 모름
- 철학자는 배고프면 안됨, 모든 철학자는 먹어야함
- 철학자들끼리는 서로 소통할 수 없음
- leak, crash, undefined behavior, norm error -> 0점
- 시간의 단위는 밀리초임
- 각 철학자는 1부터 N(철학자의 수)까지의 숫자로 불림
- 철학자가 죽고나서 해당 철학자가 죽었음을 출력하기까지 10ms 이내의 시간이 걸려야함.(시간이 더 걸리면 안됨)
- 다시 한번, 철학자가 안죽도록 한번 해봐!
오늘 공부한 시간: 30분
오늘 공부한거: 과제파악(대충)
누적 시간: 30분
'42seoul' 카테고리의 다른 글
[Makefile] make: *** [test] Error 1 (0) 2021.05.25 [Philosophers] 필로소퍼 70시간만에 끝내기(2)-첫번째 문제 파악하기 (0) 2021.05.21 [libasm] 어셈블리 (about 1 week) - 2일차(ft_strlen, ft_strcmp) (0) 2021.05.06 [libasm] 어셈블리 (about 1 week) - 2일차(ft_write, ft_read) (0) 2021.05.06 [libasm] 어셈블리 (about 1 week) (0) 2021.03.26