Fork me on GitHub
摘要: 现在的compiler与CPU为了最佳化执行效能,必要时可能重新安排执行程式的流程顺序。 1.compiler最佳化可依据CPU的instruction issue数目,执行的latency cycles以及程式流程,在不影响程式上下文结果下重排或简化程式。 2.硬件设计最佳化: multiple 阅读全文
posted @ 2022-01-23 17:27 BabyMelvin 阅读(200) 评论(0) 推荐(0) 编辑
摘要: kernel本身就是个multithread concurrent的系统。在没有适当条件保证下,存取共享资源很容易发生race condition.共享资源包括周边IO及共享内存中的数据结构等。可通过适当的synchronization机制提供critical section来保证资源的存取。个人认 阅读全文
posted @ 2022-01-23 16:49 BabyMelvin 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1.内存屏障 内存屏障的作用:内存屏障主要解决的问题是编译器的优化和CPU的乱序执行 基本的内存屏障有4种: 1.写屏障 2.数据依赖屏障(常与写屏障成对出现) 3.读屏障 4.通用内存屏障 1.1 代码优化 编译器会对c语言进行代码优化,生成的汇编语言可能和c语言执行顺序不一样。在需要严格按照c语 阅读全文
posted @ 2022-01-23 16:35 BabyMelvin 阅读(261) 评论(0) 推荐(0) 编辑