47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
options :
|
|
```
|
|
- n_phi -> number_of_philosophers
|
|
- t_die -> time_to_die
|
|
- t_eat -> time_to_eat
|
|
- t_slp -> time_to_sleep
|
|
- n_est -> [number_of_times_each_philosopher_must_eat]
|
|
```
|
|
|
|
thread :
|
|
- thread are light-weight-process (LWP) that happens inside a process
|
|
- a process can be single-threaded or multi-threaded
|
|
- different process have a unique PID with a unique LWP, different thread in the same process have the same PID and a different LWP
|
|
- thread vs process :
|
|
process :
|
|
- process is isolated, it doesn't share memory with any other process
|
|
- process can have states : new, ready, running, waiting, terminated, suspended
|
|
- process is less efficient in communication, it takes more times to create or terminate or switch
|
|
- process speed is not impacted by speed of other process (untill it reach the limit of cpu)
|
|
- process are created with fork() and execve() (to duplicate a process in a child process, or replacing an existing process)
|
|
thread :
|
|
- thread are not isolated
|
|
- thread can have states : running, ready, blocked
|
|
- thread is more efficient in communication, it takes less times to create or terminate or switch
|
|
- thread can become slow if the process does many concurrent tasks
|
|
- ressources :
|
|
- https://www.baeldung.com/linux/process-vs-thread
|
|
|
|
|
|
external function :
|
|
|
|
memset : fill memory with a constant byte
|
|
printf : format and print data
|
|
malloc : allocate dynamic memory
|
|
free : free dynamic memory
|
|
write : write to a file descriptor
|
|
usleep : suspend execution for microseconds intervals
|
|
gettimeofday : get time
|
|
pthread_create : create a new thread
|
|
pthread_detach :
|
|
pthread_join
|
|
pthread_mutex_init
|
|
pthread_mutex_destroy
|
|
pthread_mutex_lock
|
|
pthread_mutex_unlock
|
|
|