首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问不是ram但磁盘上的i/o的文件系统缓存已经发出。

问访问不是ram但磁盘上的i/o的文件系统缓存已经发出。
EN

Unix & Linux用户
提问于 2016-07-29 17:49:44
回答 1查看 95关注 0票数 1

Linux有一个文件系统缓存,它将尽可能多的数据作为缓冲区保存在RAM中。

线程试图读取文件系统中的页面块。如果页面在缓存中,它将从缓存(缓存命中)获取数据。否则,它会发出页面的磁盘i/o请求并等待(缓存丢失)。

但是,当多个线程(或处理器)读取同一个页面块时,我认为还有一种情况;该页不在缓存中,但页的i/o请求已经发出。在这种情况下,不会再次发出磁盘i/o,但是线程应该等待从磁盘读取页面。

Linux的文件缓存是否具有此属性?你这是什么意思?

EN

回答 1

Unix & Linux用户

发布于 2016-07-29 23:58:36

在Linux中,我认为在任何操作系统中,从缓存加载是异步的,就是:当请求一个页面但尚未加载时,就会有一个缓存条目被标记为未加载。当第二个请求传入时,它会将该请求转到现有的缓存条目上,并等待加载完成。在Linux内核中,等待机制称为等待队列。关于等待队列有很多文档:Linux设备驱动程序,完满 (在等待队列之上的一个稍高层次的数据结构),内核API文档,…

我不知道这个机制是否有正式名称。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/299132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档