when an interrupt causes a device-interrupt process to be made runnable, it will usually preempt the currently running process.When a process running in the top half of the kernel wants to add an entry to the work list for a device, it needs to ensure that it will not be preempted by that device part way through linking the new element onto the work list.