buffer和cache的区别
缓存为王:CPU所有处理的数据都来自于主内存,由于CPU的运行速度远远大于主内存的速度,为了不影响CPU工作,在两者之间添加了一个高速缓冲区,即“缓存区”,专门负责保存CPU刚刚处理的数据或者循环使用的极少量数据,一般就是几MB级别的,这样CPU就避免了与主内存之间的传输数据工作,大大节约了CPU的时间,提高了系统性能;所以一直以来,缓存cache一直是业界的王者。
但是,cahce并不是缓存文件,而是用来缓存块的(块是IO读写的最小单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把该文件读入缓存中,这样下一个进程在获得CPU控制权并访问此文件,直接从缓存中读取了。
缓冲区buffer:用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程之间通信的等待时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据会先把数据存放到buffer缓冲区中,达到一定量的时候,存储速度快的设备再将数据读取过去,在此期间CPU不用等待,可以被其他进程调度;
一般是用在写入磁盘的情况,例如:打开记事本,写了一大堆东西,当写完之前,所有的内容都会在缓冲区buffer中存放着,直到保存,才会写到磁盘上。
总结:
简单来说,buffer是即将要被写入磁盘的,而cache是已经被从磁盘中读取出来使用的;
buffer是由各种进程分配的,被用在输入队列等方面,而cache经常被用在磁盘的I/O请求上,如果多个进程都要访问某个文件,那么该文件就被存储在cache中以方便下次访问,以此提高计算机的性能。
浙公网安备 33010602011771号