本文参考自宋宝华老师的《linux驱动开发详解》
并发(Concurrency) 指的是多个执行单元同时、 并行被执行, 而并发的执行单元对共享资源(硬件资源和软件上的全局变量、 静态变量等) 的访问则很容易导致竞态(Race Conditions)
只要并发的多个执行单元存在对共享资源的访问, 竞态就可能发生。
1.对称多处理器(SMP) 的多个CPU
SMP是一种紧耦合、 共享存储的系统模型,, 它的特点是多个CPU使用共同的系统总线, 因此可访问共同的外设和储存器。
在SMP的情况下, 两个核(CPU0和CPU1) 的竞态可能发生于CPU0的进程与CPU1的进程之间、CPU0的进程与CPU1的中断之间以及CPU0的中断与CPU1的中断之间, 下图中任何一条线连接的两个实体都有核间并发可能性。