Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Assuming that the instruction XCHG (int *var1, int *var2) can be used to atomically swap two integer pointer variables (e.g. before XCHG: *y = 0
Assuming that the instruction XCHG (int *var1, int *var2) can be used to atomically swap two integer pointer variables (e.g. before XCHG: *y = 0 and *z = 1 and after XCHG: *y = 1 and *z = 0), write the bodies of lock () and unlock () to illustrate how the XCHG can be used to provide mutual exclusion. #define N 10000 int bolt = 0; int shared = 0; void lock(int* key); void unlock(int, * key); void increment(void) {int key = 1; while(l) {lock(&key); shared = shared + N; unlock(&key);}} void decrement(void) {int key = l; while(l) {lock(&key); shared = shared - N; unlock(&key);}} void lock (int, * key) {// you can access the actual value of key by using *key} void unlock(int * key) {// you can access the actual value of key by using *key
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started