Question: According to the following ticket lock implementation, fill out values for Turns and Tickets in the table AFTER each action finishes. int FAA(int *ptr) {

According to the following ticket lock implementation, fill out values for Turns and Tickets in the table AFTER each action finishes.

int FAA(int *ptr) {

int old = *ptr;

*ptr = old + 1;

return old;

}

typedef struct __lock_t {

int ticket;

int turn;

}

void lock_init(lock_t *lock) {

lock->ticket = 0;

lock->turn = 0;

} void acquire(lock_t *lock) {

int myturn = FAA(&lock->ticket);

while (lock->turn != myturn); // spin

}

void release (lock_t *lock) {

FAA(&lock->turn);

}

actions turns tickets
A locks and runs
B locks
A unlocks
C locks
A locks
B runs
B unlocks
C runs
C unlocks
B locks

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!