当前位置:首页 » 硬盘大全 » 缓存和缓冲区概念
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

缓存和缓冲区概念

发布时间: 2023-03-19 18:33:35

❶ 缓冲区(或缓存)是不是指内存啊

分类: 电脑/网络 >> 软件
问题描述:

使用快车下载东西时,听说会先放在缓冲区里(好象是缓存,我也记不大清楚了),这里的缓冲区(或缓存)是不是就是指内存?谁帮我解释一下!

解析:

1,高速缓存(者渣Cache),全称“高速缓冲存储器”。

2,例如:当CPU处理数据时,它会先到高速缓存中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从主内存中读取数据——由于CPU的运行速度一般比主内存快,因此若要经常存取主内存的话,就必须等待数个CPU周期从而造成浪费。

3,提供“高速缓存”的目的是为了让数据存取的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”。

4,现在Cache的概念已经被扩充了:不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘高速缓存),乃至在硬盘与网络之间也有某种意义上的“Cache”(Inter临时文件夹)。

5,凡是位于速度相差较大的两种硬件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache。

6,所以硬盘和内存之间隐嫌瞎的Cache就叫做磁盘高速缓存。它是在内存中开辟一块位置,来临时存取硬盘中的数据。这项技术可使计算机读写时的存储系统平均数据传输率提高5-10倍,适应了当前激增的海量数据存储需求。

7,在DOS时代,我们用:

*** artdrv 内存容量

命令来加载硬盘高速缓存。自从有了Windows后,我们就不需要加载硬盘高速缓存了,因为Windows本身有自己的高速缓存管理单元,如果强行使用 *** artdrv命令加载,反而会影响Windows的性能。

8,我们在用硬盘安装Win2000/XP时候,系统会提示加载高速缓存,这是因为在安装的初期还是DOS操作,所以为了达到读存的速度灶空,安装程序要求加载高速缓存。

❷ 缓冲区和磁盘缓存,分别是啥含义我怎么觉得差不多呢

一般编程所说的缓冲区指的是内存缓冲区,这是程序所设置的一块内存区域,用来暂存从其他设备读入的数据或即将写入其他设备的数据。
而硬盘缓冲区有两种:
一是上面说的内存缓冲区,只是它是专门为读取或写入硬盘而设置的,因此可以简称为硬盘缓冲区。这个的例子是很多下载软件如迅雷中都有的磁盘缓存设置,即先将数据下载到内存中缓存起来,达到一定数量后再写到硬盘里,从而减少了读写硬盘的次数,达到保护硬盘的目的。
另一种是硬盘本身携带的一块随机存储器,大小通常为数MB到几十MB,这个是固化在硬盘内部的。它的作用和前一种类似,也是为了增加读写效率和保护硬盘,只是它是系统中所有程序所共用的,并且除了驱动程序外,通常的程序无法控制它,因此很多程序还会从内存中再设置一块缓存供自己使用。

❸ 我想问一下什么叫作缓冲,什么是缓存,还有它们各自的作用又是什么呀,嘻嘻~~~教教我好吗

缓冲应该说是动词,缓存则是个概念名次。所以我们经常说,正在进行缓冲,清除缓存这样的话。
而缓冲器相当于一个寄存器,暂时保存数据。缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,然后植入到缓冲区,而再向一个有限空间的缓冲区中植入超长的字符串可能会出现两个结果,一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另有一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。大多造成缓冲区溢出的原因是程序中没有仔细检查用户输入参数而造成的。
缓冲区是程序运行的时候机器内存中的一个连续块,它保存了给定类型的数据,随着动态分配变量会出现问题。大多时为了不占用太多的内存,一个有动态分配变量的程序在程序运行时才决定给它们分配多少内存。这样想下去的话,如果说要给程序在动态分配缓冲区放入超长的数据,它就会溢出了。一个缓冲区溢出程序使用这个溢出的数据将汇编语言代码放到机器的内存里,通常是产生root权限的地方,这就不是什么好现象了。仅仅就单个的缓冲区溢出惹眼,它并不是最大的问题根本所在。但如果溢出送到能够以root权限运行命令的区域,一旦运行这些命令,那可就等于把机器拱手相让了。
缓存:它事实上相当于一个临时仓库。每次打开一个网页,IE会自动创建一份该网页文字和图像的缓存文件(一个临时副本)。当再次打开该页时,IE会检查网站服务器上该页的变化。如果页面变化了,IE从网络上重新下载新的网页。如果该页面没有变化,IE就从内存或硬盘上使用缓存中的临时复本来显示它。
IE会在缓存中保留网页到硬盘,直到各自的缓存占满空间;IE则根据网页的时间和空间来向下取舍。这样设计的目的是为了更快地装载页面。
缓存不仅可以用来加快网页加载速度,而且当需要查看以前看过的网页时,还可以无需驱动“小猫”,只需单击IE上的“文件→脱机工作”菜单命令,然后单击工具栏上的“历史”按钮,即可方便地进行浏览。
既然IE缓存有这个妙处,那自然应该共享它了。除了直接复制缓存文件的方法外,还有大搬家—更改IE缓存的保存路径法: 首先打开IE浏览器,单击“工具→Internet选项”菜单命令,打开“Internet选项”对话框。在“常规”选项卡中单击“Internet临时文件”部分的“设置”按钮,打开“设置”对话框,单击“移动文件夹”按钮,在打开的“浏览文件夹”对话框里定位到另一个分区下的某个路径,然后单击“确定”按钮即可。

❹ 电脑中的缓冲和缓存是什么意思

1、缓冲器相当于一个寄存器,暂时保存数据。缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位 置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,然后植入到缓冲区,而再向一个有 限空间的缓冲区中植入超长的字符串可能会出现两个结果,一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另有一个结果就 是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。大多造成缓冲区溢出的原因是程序中没有仔细检查用户输入参数而造成的。
2、缓冲区是程序运行的时候机器内存中的一个连续块,它保存了给定类型的数据,随着动态分配变量会出现问题。大多时为了不占用太多的内存,一个有动态分配变量 的程序在程序运行时才决定给它们分配多少内存。这样想下去的话,如果说要给程序在动态分配缓冲区放入超长的数据,它就会溢出了。一个缓冲区溢出程序使用这 个溢出的数据将汇编语言代码放到机器的内存里,通常是产生root权限的地方,这就不是什么好现象了。仅仅就单个的缓冲区溢出惹眼,它并不是最大的问题根 本所在。但如果溢出送到能够以root权限运行命令的区域,一旦运行这些命令,那可就等于把机器拱手相让了。
3、缓存:它事实上相当于一个临时仓库。每次打开一个网页,IE会自动创建一份该网页文字和图像的缓存文件(一个临时副本)。当再次打开该页时,IE会检查网 站服务器上该页的变化。如果页面变化了,IE从网络上重新下载新的网页。如果该页面没有变化,IE就从内存或硬盘上使用缓存中的临时复本来显示它。 IE会在缓存中保留网页到硬盘,直到各自的缓存占满空间;IE则根据网页的时间和空间来向下取舍。这样设计的目的是为了更快地装载页面。
4、缓存不仅可以用来加快网页加载速度,而且当需要查看以前看过的网页时,还可以无需驱动“小猫”,只需单击IE上的“文件→脱机工作”菜单命令,然后单击工具栏上的“历史”按钮,即可方便地进行浏览。既然IE缓存有这个妙处,那自然应该共享它了。
5、除了直接复制缓存文件的方法外,还有大搬家—更改IE缓存的保存路径法: 首先打开IE浏览器,单击“工具→Internet选项”菜单命令,打开“Internet选项”对话框。在“常规”选项卡中单击“Internet临时 文件”部分的“设置”按钮,打开“设置”对话框,单击“移动文件夹”按钮,在打开的“浏览文件夹”对话框里定位到另一个分区下的某个路径,然后单击“确定 ”按钮即可

❺ 缓存与缓冲的区别与联系 有什么详细的举例

相信大山雀家现在都使用过手机和电脑了,在现在这个互联网已经普及的时代,这两种电子产品真的十分的常见了。那么大家有没有缓存过视频呢?有没有在看视频的时候进行过缓冲呢?下面我们来了解一下关于缓存与缓冲的区别与联系。

缓存是指把常用数据存储到可以快速获取的区域,以备重复利用,一般叫做cache. 缓存能提高效率缓冲是指在数据流转过程中,不同层次速度不一致时,利用缓冲区来缓解上下层之间速率问题,一般叫做buffer. 缓冲能提高速度buffer(缓冲)是为了提高内存和硬盘或其他I/0设备之间的数据交换的速度而设计的。cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计。cpu在执行程序所用的指令和读数据都是针对内存的也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,但是造价高,又由于在cpu内不能集成太多集成电路,所以一般cache比较哪念小。

以后intel等公司为了进一步提高速度,增加了二级cache,甚至三级cache,它是根据程序的局部性原理而设计的就是cpu执行的指令和访问的数据往往在集中的某一块,所以把这块内容放入cache后,cpu就不用在访问内存了,这就提高了访问速度。当然若cache中没有cpu所需要的内容,还是要访问内存的。 缓冲buffers是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容,即写入磁盘也可以通过sync命令手动清空缓冲。

举个例子吧,我这里有一个ext2的U盘,我往里面cp一个3M的MP3,但U盘的灯没有跳动?过了一会儿,或者手动输入sync,U盘的灯就跳动起来了。卸载设备时会清空缓冲,所以有些时候卸载一个设备时要等上几秒钟。修改/etc/sysctl.conf中的vm.swappiness右边的数字可以在下次开机时调节swap使用策略。该数字范围是0-100数字越大越倾向于使用swap。默认为60,可以改一下试试。--两者都是RAM中的数据。简单来buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。

buffer是由各种进程分配的,被用在如输入队列等方面。一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方李唯困便下次被访问,这样可提高系统性能。

❻ 什么叫缓存

所谓的缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

1、通过文件缓存;顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;

2、内存缓存;也就是创建一个静态内存区域,将数据存储进去,例如我们B/S架构的将数据存储在Application中或者存储在一个静态Map中。

3、本地内存缓存;就是把数据缓存在本机的内存中。

4、分布式缓存机制;可能存在跨进程,跨域访问缓存数据

对于分布式的缓存,此时因为缓存的数据是放在缓存服务器中的,或者说,此时应用程序需要跨进程的去访问分布式缓存服务器。

(6)缓存和缓冲区概念扩展阅读

当我们在应用中使用跨进程的缓存机制,例如分布式缓存memcached或者微软的AppFabric,此时数据被缓存在应用程序之外的进程中。

每次,当我们要把一些数据缓存起来的时候,缓存的API就会把数据首先序列化为字节的形式,然后把这些字节发送给缓存服务器去保存。

同理,当我们在应用中要再次使用缓存的数据的时候,缓存服务器就会将缓存的字节发送给应用程序,而缓存的客户端类库接受到这些字节之后就要进行反序列化的操作了,将之转换为我们需要的数据对象。

❼ 缓存是什么意思

缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。

❽ 缓存是什么意思

缓存就是数据交换的缓冲区(称作Cache),是存贮数据(使用频繁的数据)的临时地方。当用户查询数据,首先在缓存中寻找,如果找到了则直接执行。如果找不到,则去数据库中查找。

缓存的本质就是用空间换时间,牺牲数据的实时性,以服务器内存中的数据暂时代替从数据库读取最新的数据,减少数据库IO,减轻服务器压力,减少网络延迟,加快页面打开速度。

工作原理

缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理。

没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

❾ 缓存是什么意思

缓存是什么

缓存的原始意义,是指访问速度比一般随机存取存储器快的一种高速存储器。

简单来说,缓存就是数据交换的缓冲区。当我们的硬件需要读取数据的时候,一般会先在缓存中查找想要的数据,这样速度比较快。如果找不到的话,就会在内存中查找,但这样会降低电脑的运行速度。所以缓存的作用,就是帮粗帆助我们的电脑更快睁此的运行。可以说悉凳迅缓存的设置,是所有计算机系统可以发挥高性能的重要因素之一。

❿ 硬盘的缓冲区和缓存是一回事吗》]

不是。
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。

当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。

缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界接口传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。

硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地;第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。

缓存容量的大小不同品牌、不同型号的产品各不相同,早期的硬盘缓存基本都很小,只有几百KB,已无法满足用户的需求。2MB和8MB缓存是现今主流硬盘所采用,而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了16MB、64MB等。

大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势。