Question: A spinlock is the equivalent of a while loop (var == 1) {/ * do nothing * /;}, and therefore implements a form of busy-waiting.
A spinlock is the equivalent of a while loop (var == 1) {/ * do nothing * /;}, and therefore implements a form of busy-waiting. It is often used by the kernel, as an alternative to waiting on a semaphore, if there is a reasonable hope that, in case the lock has already been acquired, it will be released in a short time (thus saving on execution, relatively expensive if done in the kernel, of the wait itself). Discuss the strengths and weaknesses of this solution, taking into account that:
could the kernel be non-preemptable, for example disabling interrupts?
could there be more processors?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
