Linux2.0是第一个支持SMP(对称多处理器)的内核。在早些时候, inux2.0 内核通过使用一种粗粒度的锁来保证系统的完整性,其原则就是:一个正在内核态运行的进程除非交出控制权或者要求进入睡眠,否则不能被另一个欲进入内核态的进程打断。 也就是说在任意时刻只能有一个处理器是运行内核态的操作系统代码。这是一种安全而易于实现的方式,不过这种方式对于充分利用多处理器的性能存在着明显的不足。在 Linux 以后改进的版本中,操作系统内核采用了一种细粒度的锁来支持这种多处理器的体系机构。通过把操作系统的内核代码划分为临界区的方式,在保证系统完整性的前提下,提升了操作系统利用多处理器的性能优势。
前面转载了一篇写自旋锁的文章,写的非常好,深感佩服!我也觉得内核同步其实非常复杂,与其贪大求全,不如小鸡啄米慢慢来。可能写的东西比较凌乱,就当笔记了吧!
原子操作
首先说说最简单的原子操作,每本书都会… 【查看更多】
最新评论