1. 缓冲区是什么
缓冲区,计算机读取数据时, 在内存中开辟的临时存储数据的区域. 简单说来是一块连续的计算机内存区域, 可以保存相同数据类型的多个实例。形象的说就是一个水池的水运到另一水池,你用的水桶就是“缓冲区”
2. 磁盘缓存和磁盘缓冲区是不是不一样
我读完了所有的内容,这两种也可以混淆为一种意思
按照你理解的意思,磁盘缓存就是硬盘缓存,是硬盘主板上面的内存,磁盘缓冲区是操作系统为提高磁盘接口性能,会在内存中开辟一块缓冲区
两种缓存对电脑的磁盘性能都非常重要
3. 硬盘缓冲区跟硬盘缓存都是啥
硬盘里面的缓冲区是给软件设置的。比如内存在系统盘里面设置4096m的缓冲区,作为内存条不足的情况下在缓冲区后台运行,软件停顿而不崩溃。游戏有的也设置缓冲区,是在系统或者内存打不开点的时候在缓冲区里面运行,只是低配的补充,高配不存在这个情况。
4. 硬盘的缓存
想知道“写入缓存”选项是如何设置的吗?请打开“设备管理器”,展开“磁盘驱动器”,接着在下面任何一个驱动器图标上点击鼠标右键并选择“属性”,然后切换到“策略”标签。在这里你应该会看到两个选项:“为快速删除而优化”(所有的东西都直接写入硬盘驱动器)和“为提高性能而优化”(写入到缓存)。
第一个选项可以允许你快速的断开设备与电脑的连接,例如一个USB闪存,你不用点击任务栏里面的“安全删除硬件”图标就可以直接把这些设备和电脑断开。如果两个选项都处于灰色无法选择的状态,那么说明你的磁盘驱动器默认已经把“写入缓存”选项打开了。(欲查看更多关于延缓写入默认状态的信息,请查看微软的文章“Windows XP and Surprise Removal of Hardware” )
在Windows XP系统中有时候会弹出“写入缓存失败(Delayed write failed)”的提示,告诉你延缓写入系统可能存在一些问题。虽然这并不是什么致命错误,不过也值得引起你足够的关注。
下面是一些常见的引起“写入缓存失败”的原因:
1.磁盘驱动器本身的原因。这种情况尤其发生SCSI或者RAID驱动器上。有一些RAID驱动器的驱动程序会在安装了SP2的XP操作系统中报告一个虚假消息告诉用户“写入缓存失败”。所以你应该为你的磁盘驱动器安装最新版本的驱动程序。
2.数据线的原因。一些错误或者损坏的数据线,特别是外部USB线和火线,会造成这种情况。如果你的数据线过长,或者数据线连接到的是一个质量不合格的USB HUB上,也会造成写入缓存失败。最后,还有可能是因为你有一个需要80针数据线的UDMA驱动器,但你却使用了一条40针脚的数据线。
3.SCSI终止错误。虽然这种情况在使用了self-terminating技术的SCSI设备上很少发生,但是我们还是必须把它考虑进来。
4.媒体错误。这是可能发生的最严重的情况,换句话说,也就是磁盘驱动器坏了。如果你能通过SMART(比如SMART & Simple )软件获取磁盘驱动器的统计信息,那么你可以通过这些信息来判断磁盘驱动器出现了机械(物理)故障。你还可以使用一个叫Gibson Research's SpinRite的工具来帮助你诊断媒体错误,只是这个软件在对磁盘驱动器进行完全检测的时候会耗费相当长的时间。
希捷Barracuda 1TB 32M SATA3
5.计算机的BIOS设定强制开启了驱动器控制器不支持的UDMA模式。虽然UDMA 模式能够增强磁盘的性能,但是如果驱动器控制器不支持的话将会导致一些错误发生。这种情况并不多见,主要是发生在新安装的硬件设备上(该硬件设备支持UDMA模式),用户可以通过升级BIOS或者将BIOS中关于硬盘驱动器的选项恢复成默认的“自动检测”模式来解决这个问题。举个例子:如果设置成UDMA Mode6模式的设备出现了问题,那么你可以将它设置成Mode5模式。
6.驱动器控制器的问题。如果你的系统同时拥有长和短两种PCI插槽(64位和32位),请尝试将USB控制器从长PCI插槽中拔出。一些比较老的PCI 卡并不支持这种类型的插槽。
7.内存的奇偶校验错误。这种情况通常发生在你新增了一条内存之后,造成这种错误的原因是很可能是你的新内存条和主板所支持的内存类型不符,或者是内存本身有问题。(内存有问题还会造成其他一些错误,例如随机死锁等)
8.注册表中的LargeSystemCache键值错误。这种情况很少见,通常发生在那些安装了ATI显示适配器,内存大于521MB的机器上。这些机器上的注册表中有一个叫做LargeSystemCache的键
(HKEY LOCAL ManagerMemory Management),该键值用来管理系统分配给一些核心进程的内存容量,如果键值被设为1的话(这样设置可以增强内存大于512MB的机器的性能),有可能会在一些系统中导致数据错误和产生写入缓存失败的错误。如果出现这种情况的话,请把该键值改为0。
5. “缓冲区”是什么意思
缓冲区,也称为缓存,是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,用来缓冲输入或输出的数据。这个保留的空间称为缓冲区。
缓冲区是固定数据量的容器,它的功能是一个内存或一个分段的传输区,数据可以存储在这里,以后用于检索。
缓冲的四个性质
1.容量(容量)
指缓冲区可以容纳的数据元素的最大数量。该容量是在创建缓冲区时设置的,不能更改。
2、上限(极限)
引用缓冲区中不能读写的第一个元素数组的下标索引。它也可以被认为是缓冲区中元素的实际数量。
3.位置
指的是要读取或写入的下一个元素的索引。该值将随着get()或put()的调用而自动更新。
4.马克(马克)
指备忘录位置。调用mark()设置mark = position,调用reset()设置position = mark。标记在设置之前是未定义的。
6. 硬盘的缓冲区和缓存是一回事吗》]
不是。
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。
当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界接口传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。
硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地;第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。
缓存容量的大小不同品牌、不同型号的产品各不相同,早期的硬盘缓存基本都很小,只有几百KB,已无法满足用户的需求。2MB和8MB缓存是现今主流硬盘所采用,而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了16MB、64MB等。
大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势。