Question: 2. (12,5 points) We now know that the basic operations on semaphores, just like mutexes, must also be atomic (indivisible). This means: i. If at

 2. (12,5 points) We now know that the basic operations on

2. (12,5 points) We now know that the basic operations on semaphores, just like mutexes, must also be atomic (indivisible). This means: i. If at any time a process calls a wait() operation on a semaphore, this operation must be atomic in itself (both increment/decrement operations within itself, and between decrement and if/while operations within the wait() function itself), ii. Also, if a process is running a wait() on a semaphore, a signal() cannot be run by another process on the same semaphore (or vice versa). In order to provide the above-mentioned atomicity properties, what kind of changes should be implemented in the codes given below? Update the codes with necessary changes. typedef struct \{ int value; struct process *list; \} semaphore; // initialization semaphore *sema; sema->value =N;// N is some positive integer, representing the resource sema->list = null; // count the semaphore represents. wait (semaphore *S) S->value-;; if (S->value { add this process to S->list

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!