Suppose two processes are using shared memory as shown below: give the possible
ID: 3854938 • Letter: S
Question
Suppose two processes are using shared memory as shown below: give the possible values than can be printed for b and c by EACH process. Assume all C language assignment statements are atomic: P0 executes shared int a: int b, c b = 1: a = b: c = a: Print (b, c): P1 executes: shared int a: int b, c a = 100: b = a: c = b + a: Print (b, c) You are asked to design concurrency control mechanisms for a two different hardware architectures: the first supports a Test-and-Set and a the other supports a swap instruction: as follows: int Test-and-Set(int target) { int temp = target: target = true: return (temp): } void Swap (int *a, *b) { int temp: temp = *a: *a = *b: *b = temp: } Does the swap works similarly as Test-and-set?Explanation / Answer
Question:1
"a" variable is of integer type and its shared between processes P0 and P1
i) P0 executes
shared int a;
int b,c
b = 1;
a=b; //Here value of a will be 1
c =a; //Here value of c will be 1
Print(b,c) //So it will print b as 1 and c as 1
ii) P1 executes
shared int a;
int b,c;
a = 100;
b = a; //Here value of b =1 because a is shared and its value is already set to 1 in P0 Process.
c = b +a; //Here value of c will be 2 (1 +1)
Print(b,c ) //So it will print b as 1 and c as 2
Related Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.