在现代Linux系统中存在大量的并发来源。比如正在运行的多个用户空间进程可能以一种令人惊讶的组合方式访问我们的代码。SMP系统甚至可在不同的处理器上同时执行我们的代码。内核代码是可抢占的;因此,我们的内核代码可能在任何时候(非原子上下文)丢失对处理器的独占,而拥有处理器的进程可能正在调用我们的内核代码。设备中断是异步事件,也会导致代码的并发执行。内核还提供了许多可延迟代码执行的机制,比如workqueue、tasklet以及timer等,这些机制使得代码可在任何时刻执行,而不管当前进程在做什么。在现代的热插拔世界中,设备可能会在我们正使用时消失。