Answered step by step
Verified Expert Solution
Link Copied!

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

image text in transcribed

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications 19th International Conference Dexa 2008 Turin Italy September 2008 Proceedings Lncs 5181

Authors: Sourav S. Bhowmick ,Josef Kung ,Roland Wagner

2008th Edition

3540856536, 978-3540856535

More Books

Students also viewed these Databases questions

Question

1. Who will you assemble on the team?

Answered: 1 week ago

Question

4. Who would lead the group?

Answered: 1 week ago