Suppose your friend implemented the instruction TestAndSet instruction in software instead of hardware. Explain its impact/effect to the critical section with the following solution? /* // critical section solution: */ do { while (TestAndSetLock(lock): //do nothing //critical section lock = FALSE: // remainder section } while (TRUE): /* //code for TestAndSet: */ boolean TestAndSet(Boolean *target) { boolean rv = *target: *target = TRUE: return rv: }