Question: [ 5 0 points ] Consider the following program: P 1 : { shared int x ; x = 1 0 ; while ( 1

[50 points] Consider the following program:
P1: {
shared int x;
x=10;
while (1){
x=x-1;
x=x+1;
if (x10)
printf("x is %d,x)
}
}
P2 : {
shared int x;
x=10;
while (1){
x=x-1;
x=x+1;
if (x10)
printf ("x is %d,x)
}
}
Note that the scheduler in a uniprocessor system would implement pseudo parallel
execution of these two concurrent processes by interleaving their instructions, without
restriction on the order of the interleaving.
1.1.[25 points] Show a sequence (i.e., trace the sequence of interleavings of statements)
such that the statement "x is 10" is printed.
1.2.[35 points] Show a sequence such that the statement "x is 8" is printed.
You should remember that the increment/decrements at the source language level are
not done atomically, that is, the assembly language code:
LD R0,x** load R0 from memory location x**?
INCR RO /* increment RO */
STO RO,x** store the incremented value back in x**?
 [50 points] Consider the following program: P1: { shared int x;

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!