A multithread C program that emulates threads sharing memory.
- A compatible C Compiler (gcc or clang) with POSIX threads support
- meson >= 1.0.0
- ninja >= 1.11.1
- cmake >= 3.25.2
- Clone the repo
- Setup build
meson setup build- Compile
meson compile -C build- Goto build dir
cd build
Usage : ./dining_philosophers n thinking_duration dining_duration cycle
n : number of philosophers to emulate
thinking_duration : expected time (us) for thinking
dining_duration : expected time (us) for dining
cycle : count to repeat cycle: THINKING->HUNGER->EATING
Example : ./dining_philosophers 100 100 100 1000
Average hunger duration : 0.002731 sec
Std deviation : 0.000526
Frequency
0____________________________________________________________________14
0 - 67 |βββββββββββββββ
67 - 134 |βββββββββββββββββββββββββ
134 - 201 |ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
201 - 268 |ββββββββββ
268 - 334 |βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
334 - 401 |βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
401 - 468 |βββββββββββββββββββββββββββββββββββββββββββββ
468 - 535 |ββββββββββββββββββββ
535 - 602 |ββββββββββββββββββββββββββββββ
602 - 669 |βββββββββββββββββββββββββ
669 - 736 |ββββββββββββββββββββ
736 - 803 |ββββββββββββββββββββ
803 - 869 |ββββββββββββββββββββββββββββββββββββββββ
869 - 936 |ββββββββββ
936 - 1003 |βββββββββββββββ
1003 - 1070 |ββββββββββ
1070 - 1137 |βββββ
1137 - 1204 |ββββββββββ