操作系统缓存一致性

写回机制


为什么把当前写入的数据先从内存读入到cache block中,还是要标记脏(Dirty)

因为我们要写入的数据,写操作通常只修改 Cache Block 中的一部分(一个字、半字节等),不是整个 Block。所以要先从内存读入完整的block,再进行写操作。

缓存一致性


如何解决缓存一致性的问题呢?

总线嗅探的方式很简单,就是比如ACPU修改了他的值,通过总线广播给其他核心,进行同步更改和A相同的数据。但是这个总线负载太大了,引入了MESI协议

MESI协议

无效就是一个数据在多个核心同时有,给了其中一个,别的要改为无效状态

相关推荐
你想考研啊8 小时前
二、redis集群部署(3主3从)
数据库·redis·缓存
顾漂亮8 小时前
Redis深度探索
java·redis·后端·spring·缓存
缘友一世11 小时前
Redis未授权访问漏洞:从原理到高级利用
数据库·redis·缓存
Dontla12 小时前
React useCallback介绍(用来缓存函数的引用,避免每次渲染都重新创建函数)主要用于性能优化
react.js·缓存·性能优化
_Johnny_1 天前
Redis 升级操作指南:单机与主从模式
数据库·redis·缓存
不爱洗脚的小滕1 天前
【Redis】三种缓存问题(穿透、击穿、双删)的 Golang 实践
redis·缓存·golang
提笔了无痕1 天前
什么是Redis的缓存问题,以及如何解决
数据库·redis·后端·缓存·mybatis
lang201509281 天前
Spring Boot缓存机制全解析
spring boot·后端·缓存
ldmd2841 天前
Go语言实战:入门篇-4:与数据库、redis、消息队列、API
数据库·redis·缓存
007php0071 天前
百度面试题解析:synchronized、volatile、JMM内存模型、JVM运行时区域及堆和方法区(三)
java·开发语言·jvm·缓存·面试·golang·php