Synchronization
Interrupts cause potential problems because an interrupt can occur at any time -- causing code to execute that interferes with code that was interrupted
OS must be able to synchronize concurrent processes.
This involves guaranteeing that short instruction sequences (read-modify-write) execute atomically.
One way to guarantee this is to turn off interrupts before the sequence, execute it, and re-enable interrupts; CPU must have a way to disable interrupts.
Another is to have special instructions that can perform a read/modify/write in a single cycle, or can atomically test and conditionally set a bit, based on its previous value.