这本书实际上叫做《现代体系结构上的 UNIX 系统-内核程序员的对称多处理和缓存技术(修订版)》这本书我才刚刚看完,下面打算看电子版书籍《内存模型和缓存一致性》与《多处理器编程的艺术》。我第一次看的时候没注意第一三部分,主要注意了第二部分。读书板块从来都是读文学书,很少有读技术书的,我今天来凑个热闹。
第一部分讲解了两种高速缓存系统和其写策略:直接映射高速缓存和 N 路组相连高速缓存系统,与常用的写策略:写直通,写回和写分配。接着通过介绍纯虚拟高速缓存,到键虚拟高速缓存再到物理高速缓存系统执行上下文切换 /fork/exec 等操作时候的困难和优势,介绍了为什么目前常见的硬件都是讲虚拟高速缓存和物理高速缓存相结合的策略-避免出现重名和歧义的问题,而且物理高速缓存有总线监视等搞笑手段。最后指出了三种提高高速缓存效率的方法:地址空间布局,延迟高速缓存无效和缓存对其的数据结构。最后一种方法是对应用程序最直接的方法,前两种实际上对应用程序是透明的。
这一部分考虑了主从系统内核,支持自旋锁的内核,采用信号量的内核等面对争用的解决方式,我个人觉得这部分实际上已经可以不看了。因为很多只要看 linux 内核里面的锁,互斥量等东西就能理解到。
第三部分讲述了在 SMP 体系下,面对缓存不一致问题的解决。并介绍了缓存一致性和顺序一致性协议,实际上这部分同样也不是很值得看,不如直接看《 A Primer onMemory Consistencyand Cache Coherence 》
这本书作为一本入门书籍比较合适,其他方面可能比《 C++并发实战》还是要差一些,对于内存的解释相比较而言还是并发实战更好一些。