磁盘缓冲区是位于磁盘中还是内存中?

磁盘缓冲区是( )_百度知道
磁盘缓冲区是( )
A.在ROM存储器中建立的一个保留区域B读写磁盘文件时用到的内存的一个区域C磁盘上存放暂存数据的存储空间D上述三者都不对...
A.在ROM存储器中建立的一个保留区域B 读写磁盘文件时用到的内存的一个区域C磁盘上存放暂存数据的存储空间D上述三者都不对
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:5761
获赞数:9687
C.磁盘缓冲区就是磁盘上的高速缓存。
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
数据从内存要写入磁盘中时,数据会被先写入到磁盘缓冲区,磁盘再从磁盘缓冲区中读取数据写入,磁盘缓冲区是为了平滑不同I/O设备的速度差。
那“内存缓冲区”的作用是什么?node中的内存缓冲区,是不是就是一般所说的“内存缓冲区”?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
应该是这样:数据从内存要写入磁盘中时,数据会被先写入到磁盘缓冲区,磁盘缓冲区满了再把数据写入磁盘。
磁盘缓冲区是为了平滑不同I/O设备的速度差。
是的,磁盘是分区分块存储的。如果是机械硬盘,是分磁道和扇区的。当磁头转到一个扇区的某磁道时,开始读取数据,如果只读取了 100KB 的数据,这时操作系统就想,磁头转到这儿看不容易啊,反正来都来了,顺带多读点数据吧,万一用的着呢。
所以,读取数据的时候也是通过缓冲区的。
题外话:如果应用的数据存放在不同的磁道,不同的扇区,那么读取的效率是很低的,这被称为磁盘碎片,所以 windows 有个操作叫“整理磁盘碎片”。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。Linux内核为了达到最佳的磁盘操作效率,会把需要写入到磁盘的数据现在内存中缓存起来,在合适的时候才真正写入到磁盘中,这在绝大多数情况都是没有任何问题的,而且提高了系统的效率,但是如果系统当机、掉电,就会有些文件内容不会保存下来。在Linux系统关机或者重启时,会自动把缓冲区的内容自动同步到磁盘中。我们也可以手工去执行sync命令,强制将内存中的文件缓冲内容写到磁盘,这个命令是通过调用sync系统调用来实现的。(flush file system buffers。Synchronize data on disk
with memory。Force changed blocks to disk, update the super block.`sync' writes any data buffered in memory out to disk.
This can include (but is not limited to) modified superblocks, modified inodes, and delayed reads and writes.
This must be implemented
The `sync' program does nothing but exercise the `sync' system call.
The kernel keeps data in memory to avoid doing (relatively slow) disk reads and writes.
This improves performance, but if the computer crashes, data may be lost or the file
system corrupted as a result. The `sync' command ensures everything in memory is written to disk.)但是,我认为一般情况下我们是没有必要去执行这个命令的,因为Linux内核会尽快让内存中的数据自动同步到磁盘上去,而且,谁又会知道什么时候会掉电或当机呢?
格式:sync
强制将内存中的文件缓冲内容写到磁盘。
[root@web ~]# sync
[root@web ~]#
java 强制将数据写入磁盘
今天遇到个问题,就是在试图将数据写入文件的时候发现有的时候,数据还在缓存中,并没有将数据及时写入到磁盘上,尝试用了flush,发现也没用,后来通过网络上,发现了解决方法
[java] view
深入分析Linux sync命令,解决延迟写入问题
在用reboot命令启动unix系统后,系统提示出错信息,部分应用程序不能正常工作。经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的原因,最后想到了...
linux平台下的写文件刷新
c语言libc库自带的fflush和linux的sync、fsync、fdatasync,字面上都是刷新缓冲区数据到磁盘(当然,fflush还可以刷新缓冲区数据到标准输入、输出以...
关于文件读写缓存的问题(flush的使用场景)
核心提示:
根据linux操作系统定义,底层的文件的write()方法是会进行缓存的
当用python或者java操作文件时,尤其是需要又读又写同一个文件的,比如:
我需要从头先读这个文件f1,...
每天进步一点点——Linux下的磁盘缓存
前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入...
BDI机制原本主要是用于检测磁盘的繁忙程度等作用,从2.6.19内核开始,将此部分功能整合到了mm/backing_dev.c中,一直到2.6.31内核为止,其功能也只是在不段的完善,...
前言Linux的swap相关部分代码从2.6早期版本到现在的4.6版本在细节之处已经有不少变化。本文讨论的swap基于Linux 4.4内核代码。Linux内存管理是一套非常复杂的系统,而swap只是...
我们知道Oracle 里用户客户端是通过session连接服务器里的Server process进程来访问数据库的.
但是Server Process 并不会直接从数据文件中读写数据, ...
package com.线程间通信;
public class DirtyThread {
//两个实例变量
private String name=&zhangsan&;
private...
没有更多推荐了,> 问题详情
有三个进程PA、PB和PC协作解决文件打印问题:PA将文件记录从磁盘读入内存的缓冲区l中,每执行一次读
悬赏:0&答案豆
发布时间:
有三个进程PA、PB和PC协作解决文件打印问题:PA将文件记录从磁盘读入内存的缓冲区l中,每执行一次读一个记录:PB将缓冲区1中的内容复制到缓冲区2中,每执行一次复制一个记录;PC将缓冲区2中的内容打印出来,每执行一次打印一个记录。缓冲区的大小与记录大小一样。请用信号量来保证文件的正确打印。请帮忙给出正确答案和分析,谢谢!
您可能感兴趣的试题
1在记录型信号量机制中,每次signal操作意味着①,因此应将S.value②,当S.value≤0时,表示③,此时应④。请帮忙给出正确答案和分析,谢谢!2A.senderB.receiverC.textD.messageE.mailbox请帮忙给出正确答案和分析,谢谢!3在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入。 send((1),(2)); receive((3),(4));(1)A.senderB.receiverC.textD.messageE.mailbox请帮忙给出正确答案和分析,谢谢!4进程A1、A2、…Anl通过m个缓冲区向进程B1、B2、…Bn2不断地发送消息。发送和接收工作遵循如下规则: (1)每个发送进程一次发送一个消息,写入一个缓冲区,缓冲区大小与消息长度一样。 (2)对于每一个消息,B1、B2、…Bn2都需各接收一次,读入自己的数据区内。 (3)m个缓冲区都满时,发送进程等待;没有可读的消息时,接收进程等待。 试用wait、signal操作描述它们的同步关系。请帮忙给出正确答案和分析,谢谢!
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
每天只需0.4元
选择支付方式
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
恭喜你被选中为
扫一扫-免费查看答案!
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
提示:请截图保存您的账号信息,以方便日后登录使用。
常用邮箱:
用于找回密码
确认密码:本文转自:
概念上的区别:
1. buffer是块设备的内存读写缓冲区,而page cache是文件系统的概念。
2. A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.
但事实上:
1. 由于linux使用了页回写技术,所以现在page cache也起到了buffer类似的作用:先把数据写到page cache中并置为"dirty",后台进程在适当的时间再把它冲刷到磁盘上。
2. 既然两者的角色很模糊,所以在linux2.4以后,两者在内存里是同一块区域。在2.4之间,数据会被缓存两次,浪费内存;2.4以后,数据只会缓存一次了。不过,buffer的概念仍然保留着,shell中使用free命令仍然能看到buffer项的存在。
Short answer: Cached is the size of the page cache. Buffers is the size of in-memory block I/O buffers. C Buffers is largely irrelevant.
Long answer: Cached is the size of the Linux page cache, minus the memory in the swap cache, which is represented by SwapCached (thus the total page cache size is Cached + SwapCached). Linux performs all file I/O through the page cache. Writes are implemented
as simply marking as dirty the corresponding pag the flusher threads then periodically write back to disk any dirty pages. Reads are implemented by returning the data if the data is not yet in the cache, it is first
populated. On a modern Linux system, Cached can easily be several gigabytes. It will shrink only in response to memory pressure. The system will purge the page cache along with swapping data out to disk to make available more memory as needed.
Buffers are in-memory block I/O buffers. They are relatively short-lived. Prior to Linux kernel version 2.4, Linux had separate page and buffer caches. Since 2.4, the page and buffer cache are unified ...
高速缓存区(buffer cache)
1、高速缓存区结构
oracle为了将物理I/O最小化,把最近使用过的块数据保管在内存的一定区域。这部分内存区域就是高速缓存区。高速缓存区与共享池、重做缓存区成为SGA的最重要的内存区域。利用下面的命...
页高速缓存和页回写
页高速缓存是linux内核实现磁盘缓存。它主要用来减少对磁盘的I/O操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。
磁盘高速缓存之所以在任何现代操作...
关于磁盘缓存与磁盘缓冲区的理解与延伸
前两天的腾讯电话面试,问到一个问题,文件写入磁盘的过程是怎样的?当时的回答是:用系统调用函数write文件内容到内核缓存中,后台有个守护进程会周期性的将缓存持久化到磁盘中。然后面试官问了一个问...
磁盘缓存和内存缓存的区别
内存缓存高速缓存(英语:cache,英语发音:/kae?/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRA...
磁盘缓存,又称磁盘快取,实际上就是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘...
转载请说明出处:http://blog.csdn.net/cywosp/article/details/
前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出...
磁盘缓存,又称磁盘快取,实际上就是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘...
为了避免对硬盘的频繁读写,数据一般存放在缓冲区。什么情况下会把缓冲区的数据写入到磁盘中?1.通过调用fflush函数刷新缓冲区2.缓冲区已满(8k)3.正常关闭文件调用fclose主函数调用retur...
这个官方答案是A。个人觉得应该是B,为什么是A?
缓冲区操作
缓冲区以及缓冲区是如何工作,是所有I/O的基础。“输入/输出”就是把数据移进或移出缓冲区。
进程执行I/O操作,就是向操作系统发出请求,让它要么把缓...
没有更多推荐了,

我要回帖

更多关于 引入磁盘缓冲区的原因 的文章

 

随机推荐