作者:刘洪涛,华清远见嵌入式学院讲师。 本文主要以2.6.22.6内核分析Linux中spinlock在ARM及X86平台上的实现(不同版本的内核实现形式会有一些差异,但原理大致相同)。此处默认大家已经熟悉了spinlock的使用,重点解释容易引起迷惑的体系结构相关的实现部分。 一、spin_lock(lock)的实现 /***include/linux/spinlock.h中***/ #if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK) //如果配置了SMP或配置自旋锁调试功能 # includ