1、数据从缓存读到CPU流程
内存–>L3-L2-L1-寄存器
2、volatile总线加锁和缓存一致性协议(MESI)
3、缓存一直性协议失效的情况
缓存大于缓存行,导致失效或者是CPU不支持。
4、进程是系统分配资源的基本单位,线程是CPU内存运行的基本单位。
5、内存数据的状态
一致性、可见性、有序性。
6、用户线程不能直接在cpu上运行,需要依赖系统接口。操作内核分配CPU使用权限
7、禁止指令重排
包装栈区的代码有序执行,保证并发情况下有序。
unsafe类手动加内存屏障
8、总线风暴产生的原因
由于Volatile的MESI缓存一致性协议,需要不断的从主内存嗅探和cas不断循环,无效交互会导致总线带宽达到峰值。
我的理解:CPU操作的像Volatile 或者CAS修饰的变量,频繁滴通过总线和主内存交互,将会导致总线拥堵资源不足,就会产生总线风暴。解决办法加锁,牺牲一定性能。