Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vinicius-santoro/42-formation-lvl2-9.philosophers
Project 9: philosophers - Ninth project for the formation of software engineers at school 42 São Paulo.
https://github.com/vinicius-santoro/42-formation-lvl2-9.philosophers
Last synced: 16 days ago
JSON representation
Project 9: philosophers - Ninth project for the formation of software engineers at school 42 São Paulo.
- Host: GitHub
- URL: https://github.com/vinicius-santoro/42-formation-lvl2-9.philosophers
- Owner: Vinicius-Santoro
- Created: 2022-08-02T19:50:21.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-17T14:30:20.000Z (about 2 years ago)
- Last Synced: 2024-11-06T15:32:01.911Z (2 months ago)
- Language: C
- Homepage:
- Size: 236 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 42-formation-lvl2-9.philosophers
Project 9: philosophers - Ninth project for the formation of software engineers at school 42 São Paulo.
- This project is about the basics of threading a process. How to create threads and use mutexes.
## This project was like this:
![philo](https://user-images.githubusercontent.com/83036509/195736506-28f72fd7-3b88-48f3-8b93-01e2c5648938.gif)## Sumary
#### Necessary concepts
Some necessary concepts to develop this project.
- [What is the processor?](readmes/necessary_concepts.md)
- [What is the core?](readmes/necessary_concepts.md)
- [What are threads?](readmes/necessary_concepts.md)
- [What are processes?](readmes/necessary_concepts.md)
- [Difference between processes and threads](readmes/necessary_concepts.md)#### Extern functions
We can use some extern functions. Follows a description of each of them.
- [memset](readmes/extern_functions.md)
- [malloc](readmes/extern_functions.md)
- [free](readmes/extern_functions.md)
- [write](readmes/extern_functions.md)
- [usleep](readmes/extern_functions.md)
- [gettimeofday](readmes/extern_functions.md)
- [pthread_create](readmes/extern_functions.md)
- [pthread_join](readmes/extern_functions.md)
- [pthread_mutex_init](readmes/extern_functions.md)
- [pthread_mutex_lock](readmes/extern_functions.md)
- [pthread_mutex_unlock](readmes/extern_functions.md)
- [pthread_mutex_destroy](readmes/extern_functions.md)#### Useful links:
- [Short introduction to threads (pthreads)](https://youtu.be/d9s_d28yJq0)
- [Difference between processes and threads](https://youtu.be/IKG1P4rgm54)
- [What is a mutex in C?](https://youtu.be/oq29KUy29iQ)
- [Multithreading in C](https://www.geeksforgeeks.org/multithreading-c-2/)
- [Mutex lock for Linux Thread Synchronization](https://www.geeksforgeeks.org/mutex-lock-for-linux-thread-synchronization/#:~:text=A%20Mutex%20is%20a%20lock,the%20locked%20region%20of%20code.)
- [Dining Philosopher Problem - Simplified](https://youtu.be/VSkvwzqo-Pk)
- [Dining Philosopher Problem Using Semaphores](https://www.geeksforgeeks.org/dining-philosopher-problem-using-semaphores/)
- [Dining Philosophers Problem with Solution](https://youtu.be/NbwbQQB7xNQ)#### How the project works
- [Dining philosophers problem](readmes/how_the_project_works.md)
- [How to test it](readmes/how_the_project_works.md)
- [Arguments](readmes/how_the_project_works.md)#### Project documentation
- [main.c](readmes/main.md)
- [utils.c](readmes/utils.md)
- [init_list.c](readmes/init_list.md)
- [thread.c](readmes/thread.md)
- [philo_actions.c](readmes/philo_actions.md)
- [mutex_check.c](readmes/thread.md)
- [death_check.c](readmes/death_check.md)
- [free.c](readmes/free.md)