SMP看了一半后的感悟
想看看Intel的多核处理器(采用SMP结构(对称多处理器结构(对称的意思是"平等",也就是各个处理器没有主次之分)))是怎么真并发(也就是并行,我一直认为并发和并行是需要严格区分的,单处理器只能并发,多处理器才能并行,也就是我这几天看的书上说的真并发)的。
首先我看的是《linux内核设计与实现》中的内核同步方法,先看这本书一是因为这本书是我手头关于linux最新的一本书(基于linux2.6的,后面提到的另一本书是基于linux2.4的),二是因为这本书是本理论书,涉及的代码少,主要介绍的是思想,不会用一堆linux的代码给我洗脑。看完内核同步部分后了解到了linux内核主要的两大加锁方式:自旋锁、信号量。前者在试图拿被占用的锁的时候会轮询等待锁被释放;后者会把当前进程投入睡眠转而调度执行别的进程。这本书对SMP的介绍很少,看完后还是不了解SMP。
然后我就看《LINUX内核源代码情景分析(下)》中的多处理器SMP系统结构,现在这一章看了一半了,觉得很不错,对Intel的SMP结构、多处理器间互斥、保持多处理器间cache的一致性都有了了解,没有完全掌握,但是知道这里有被推荐的解决方案了。然后还发现了一个惊喜:这一章里还详细地介绍了APIC(高级可编程中断控制器),这是老的中断控制器8259A的替代版,之前我就从各种资料上找APIC的介绍,没找到,只发现Intel那三卷天书上有,但是天书我实在不想看,这本书里我也找过,在它之前的中断,异常和系统调用那一章居然介绍的是8259A,原来APIC是伴随着SMP而诞生的,放在了SMP这一章,接下来要好好看看。
Intel三卷天书中关于SMP的部分我也会去看看,但不一定看得懂,之前我试图看过这三卷天书,但是因为我有点"看书强迫症":看书要从头看到尾。比如说看《读者》,它的每一篇文摘,每一个广告,我都会看一遍,即使有我非常厌恶的那种抒情的散文或诗,我也忍不住要看完再翻页。当时我就是从第一卷的封面开始看的o(╯□╰)o,看了十几页后我实在受不了了:看得半懂不懂,还TMD跟我想看的没一点关系,然后我就没看了。这次我打算直接从第三卷第8章看起…… 看书没你这样看的,不理解还使劲看。
希望下次能看到你的感悟好文章,而非片断。
页:
[1]