Given code is for swapping the values in two variables. Two processes P0 and P1 are manipulating the integer variables X and Y in a shared memory. Initially, X=20 and Y = 5. Assuming that P0 and P1 execute simultaneously (i.e., not necessarily sequentially) on a single CPU, show two possible values of X and Y after both P0 and P1 complete. For each value, show how the details of the scenario where it could occur. Void Swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp;} P0: If (X>Y) Swap (X,Y); P1: If (X>Y) Swap (X,Y); Solution X=5 20 Y=20 5 In, this program we send the memory of the variables X and Y to the function, hence modification done to the variable will be updated Only one time swap function will be executed among the two process hence these results are obtained .