对于cache的算法。大方面有两种,Write-Through(通写)和Write-Back(回写). Write-Through,也就是说OS发送的处理data的请求,一直要等到全部memory里面的data正确写到稳定存储media(如硬盘)中,然后返回给OS报告处理完毕,然后OS才会去update其状态;这种情况下,通常不会有dirty cache. 而Write-Back,就是在OS发送处理data的请求后,该算法会将它用buffer存起来,并在没有正确写到稳定存储media(如硬盘)中前,就告诉OS处理完毕,然后OS就会去update;但是要是此时掉电或其他故障,buffer的数据没有被写入稳定存储media(如硬盘),那么os update的信息就和media中的信息不一致.为了避免这样,所以才用NVRAM,它在调电后数据仍然不丢失,但是在被重新上电后,其数据会是dirty的,也就是楼主所提到的dirty cache(如何将dirty cache更新到media,这是Write-Back应该做的事)。 这和买卖东西相似,Write-Through就相当于你亲自去买东西,你买到什么就可以亲手拿到;而Write-Back就和中介差不多,你给了中介钱,然后它告诉你说你的东西买到了,然后就相信拿到这个东西了,但是要是出现特殊情况中介跑了(掉链子了),你再去检查,东西原来没有真正到手。
Write-Through(透写)和Write-Back(回写).
最新推荐文章于 2024-08-28 22:04:30 发布