Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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)