About | Links | Functions | Starting | Author
Philosophers (represented by parts of a program) sit around a table, with a big plate of spaghetti at its center. They each have a fork, but they need two forks to eat ; so they need to borrow their neighbor's fork to eat.
Of course, if they borrow a neighbor's fork, the neighbor can't use the fork. The processes / threads must communicate, to know the state of the forks (and of the other philosophers) at all times. There must also be a parent process that monitors everything.
- Unix logic
- Rigor
- Unix
- Algorithms & AI
Only the following functions are allowed to be used in this project on mandatory part:
Function | Description | Function | Description |
---|---|---|---|
memset | fill memory with a constant byte | pthread_create | create a new thread |
printf | format and print data | pthread_detach | detach a thread |
malloc | allocate dynamic memory | pthread_join | join with a terminated thread |
free | free dynamic memory | pthread_mutex_init | initialise the mutex |
write | write to a file descriptor | pthread_mutex_destroy | destroy the mutex object |
usleep | suspend execution for microsecond intervals | pthread_mutex_lock | lock the mutex object |
gettimeofday | get the time and gives the number of seconds and microseconds since the Epoch | pthread_mutex_unlock | releases the mutex object |
# Clone this project
git clone https://github.com/aabduvak/philosophers
# Access
cd philosophers/philo/
# Compile the program
make
# To run (example)
./philo 10 80 80 80 2
# To remove objects
make clean
# To remove objects and executable
make fclean
- Dining Philosophers Problem 1
- Dining Philosophers Problem 2
- Notion1 by jfreitas
- Notion2 by lfrasson
- To understand time 1
- To understand time 2
- Tester
- Script Maroto xD
- pthreads Tutorial
- Playlist about C Threads
- pthreads Short Introduction
- How to pass arguments to threads
- What are detached threads?
- An Application of Pthreads and Mutexes
- Multithreading part 1
- Multithreading part 2
- Miro by lorenuar
- Visualizer
- Figurinha by pcunha