Commit d0547dd5 by Son Pham

### Lab 7, Problem 1 Completed

parent 7792d793
 ... ... @@ -3,7 +3,7 @@ # Prof: Luiz Felipe Perrone # answers.txt [1.1] About three seconds into the execution, I see five left chopsticks picked up by the philosophers and the program entered deadlock. [1.1] About three seconds into the execution, The program seems to stop functioning entirely with a bunch of philosophers getting hungry. [1.2] Deadlock could happen because current execution of the program satisfy all conditions for deadlock: ... ... @@ -11,5 +11,3 @@ - Hold and wait: The philosopher can hold the left chopstick and request the right chopstick which can be hold by another philosopher - No premption: The philosopher won't release his favorite left chopstick until he get the right chopstick and enter critical section. - Circular wait: Philosopher tries to request the right chopsticks in circle. There were no avoidance mechanism, so deadlock occured.
 ... ... @@ -63,10 +63,7 @@ void* philosopher(void* param) { // Eating seciont printf("Philosopher %d is hungry\n", id); pthread_mutex_lock(&chopsticks[id]); printf("Philosopher %d picked up the left chopstick\n",id); pthread_mutex_lock(&chopsticks[(id+1)/NUM_THREADS]); printf("Philosopher %d picked up the right chopstick\n",id); // -- Critical section printf("Philosopher %d is ready to eat\n", id); // Eat for some amount of time ... ... @@ -78,10 +75,8 @@ void* philosopher(void* param) { // Releasing the chopsticls pthread_mutex_unlock(&chopsticks[id]); printf("Philosopher %d released up the left chopstick\n",id); pthread_mutex_unlock(&chopsticks[(id+1)/NUM_THREADS]); printf("Philosopher %d released up the right chopstick\n",id); } } } /** ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!