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 :

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

Description
No description provided
Readme 2 MiB
Languages
C 96.2%
Makefile 3.8%