Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solareenlo/42philosophers
Simple Dining Philosophers Problem
https://github.com/solareenlo/42philosophers
42 42born2code 42cursus
Last synced: 19 days ago
JSON representation
Simple Dining Philosophers Problem
- Host: GitHub
- URL: https://github.com/solareenlo/42philosophers
- Owner: solareenlo
- Created: 2021-04-30T23:20:04.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-05-21T01:59:50.000Z (over 3 years ago)
- Last Synced: 2024-11-08T02:46:36.358Z (2 months ago)
- Topics: 42, 42born2code, 42cursus
- Language: C
- Homepage:
- Size: 705 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 42philosophers
- 食事する哲学者の問題を解くぞ!
- グローバル変数は使えない.
- 表示する時間がチグハグになってはならない.
- 誰かが死んだら即終了.
- みんながお腹いっぱいになったら即終了.
- エラー処理頑張る.### philo_one
- pthread と pthread_mutex を使ってデッドロックが起きないように工夫しながら,食事する哲学者の問題を解く.
- 哲学者1人が1スレッド.
- フォークをミューテックで管理する.
- mutex は何個でも持てる.### philo_two
- pthread とカウンティングセマフォとバイナリセマフォを上手に使って,食事する哲学者の類似問題を解く.
- 哲学者1人が1スレッド.
- フォークはセマフォで管理する.
- 哲学者1人に対して1つの専用のセマフォだけが使える.### philo_three
- fork, waitpid, kill, カウンティングセマフォとバイナリセマフォを上手に使って,食事する哲学者の類似問題を解く.
- 哲学者1人が1プロセス.
- フォークはセマフォで管理する.
- static と関数ポインタの配列と状態遷移を上手に使うとコードが短く書ける.
- 哲学者1人に対して1つの専用のセマフォだけが使える.## References
- [How to use POSIX semaphores on forked processes in C?](https://stackoverflow.com/questions/16400820/how-to-use-posix-semaphores-on-forked-processes-in-c)
- [Multiple child process](https://stackoverflow.com/questions/876605/multiple-child-process)
- [sem_close vs sem_unlink when process terminates](https://stackoverflow.com/questions/9537068/sem-close-vs-sem-unlink-when-process-terminates)
- [並行プログラムと同期](https://www.eidos.ic.i.u-tokyo.ac.jp/~tau/lecture/operating_systems/gen/slides/3-synchronization.pdf)
- [Think OS: A Brief Introduction to Operating Systems](https://greenteapress.com/thinkos/html/index.html)
- [Chapter 11 Semaphores in C](https://greenteapress.com/thinkos/html/thinkos013.html)
- [Chapter 9 Threads](https://greenteapress.com/thinkos/html/thinkos011.html)
- [solareenlo/42pthread_practice](https://github.com/solareenlo/42pthread_practice)
- [Introduction to Parallel Computing Tutorial](https://hpc.llnl.gov/training/tutorials/introduction-parallel-computing-tutorial)
- [POSIX Threads Programming](https://hpc-tutorials.llnl.gov/posix/)
- [solareenlo/42books](https://github.com/solareenlo/42books)