1
cache是一个高速小容量的临时存储器,可以用高速的静态存储器芯片实现,或者集成到CPU芯片内部,
存储CPU最经常访问的指令或者 *** 作数据。2
程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合3
输入/输出(Input
/Output
,简称I/O),指的是一切 *** 作、程序或设备与计算机之间发生的数据传输过程。
输入/输出设备,就是指可以与计算机进行数据传输的硬件。
最常见的I/O设备有打印机、硬盘、键盘和鼠标。从严格意义上来讲,它们中有一些只能算是输入设备(比如说键盘和鼠标);有一些只是输出设备(如打印机)。
4
*** 作系统(Operating
System,简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。 *** 作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的 *** 作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。
什么是缓存(cache)
理解缓存
*** 作系统的任务主要是合理地调配系统的各种资源,为各种程序的运行提供环境,它可以看作是硬件和应用软件之间的一个媒介。其中对内存的管理是系统的最主要的职责,怎么样使有限的内存用在刀刃上,怎么要保证系统本身所需的内存(以防止死机,在win2000和winxp里这一点已经做的非常好了),怎样克服各种硬件连接的瓶颈。
本文主要就这种硬件连接的瓶颈问题展开一些讨论。大家知道计算机的主要硬件,硬盘,内存和处理器之间的速度是不一样的,其中处理器的速度是非常快的,内存次之,而硬盘的速度是很慢的(相对于处理器来说),一件任务的处理要通过处理器给出的指令,把相关数据从硬盘里调出来,到内存,在内存和处理器之间还会有许多数据的传输,内存本身不能处理数据,要通过处理器来处理,当他们一起工作的时候,由于处理器和内存工作得快,它们常在把事做完了没事做了,要等硬盘,这样就大大降低了系统的整体性能,不能发挥所有硬件的性能。为了解决这个问题,一个优秀的 *** 作系统必然要有“缓存”来作为这些硬件之间的一个中间站,来缓和这种矛盾,从而一定程度上提高系统的性能,“缓存”处理的越好,系统的性能发挥的越好。所以研究“缓存”就有了它的意义。
看了上面的内容,以前对“缓存”没有认识的朋友应该理解它了。理解之后马上可以应用的地方就是在自购兼容机的时候。大家大可不必去追赶潮流,买什么P4处理器,而应该买一个快一点的硬盘,比如买个7200转的(或更快的),以减少瓶颈的矛盾。处理器吗,买赛扬好了,一般是没问题的,处理器大多数时候是闲着的,有时处理很多个大任务时可能会有些紧张,注意避免就可以了。
从某种角度讲,内存本身是硬盘和处理器之间的一个缓存,它的作用是缓解硬盘和处理器之间的尖锐矛盾的。当它被作为一个固定的部件后,它本身也成了需要用缓存来缓解瓶颈的对象。它对处理器和硬盘夹在中间,是他们的必经之路,硬盘与处理器之间的关系成了硬盘与内存和内存与处理器之间的双重关系。所以上面提到的瓶颈问题的处理归结为对内存的优化,即怎样处理好硬盘与内存之间的缓存很处理器与内存之间的缓存。
对于一个想了解 *** 作系统的人来说,能够理解“缓存”对对它做适当的优化是比不可少的一节课。另外再不从一下,缓存的概念是很广泛的,这里专指内存的缓存。
缓存的优化
*** 作系统本身已经有了很多优化措施,而我们只能在它的优化措施的基础上根据我们的实际情况来优化。
1,最“著名”的缓存是页面文件,这个倒不是缓解速度的,而是缓解容量的,在速度上,硬盘不如内存,但是容量上,内存是不可能跟硬盘比的,当你运行一个程序需要大量数据,占有大量内存时,内存就要被塞满,怎么办呢?把那些暂时不用的放到硬盘里去,因为处理器总是只调用处理一个任务所需的数据,其他的准备的数据(就是那些可能要用的,但暂时还不用的)可以先放一放,如果内存放不下,就只好放到硬盘了。但是这样做是有代价的,当放到内存的数据重新要被使用时,你就得等很长时间等系统把在硬盘中得数据调上来。其实你可以感受到系统的这些动作,比如你打开IE或Office,第一次打开是很慢的,但是关闭后马上再打开就快很多,这是因为这时数据还没被系统“请”出内存,系统从内存中直接取得数据自然快了;另一个情况,当你开了一个photoshop这样的大软件,这时打开Office要比平时还慢一点,这是因为内存本来被photoshop占领着,要调入Office的数据到内存就必须把photoshop的数据“请”出内存,多了这个过程,打开自然要慢一些。
优化页面文件,可以做一下几条:
1)把页面文件放到系统盘之外,这样做主要是为了保持页面文件的连续性,硬盘读取数据是靠磁头在磁性物质上“读”得到数据的,页面文件放在物理上的不同区域,磁头就要跳来跳去,自然不利于效率。系统盘文件众多,页面文件几乎肯定不连续。所以要把它移到其他盘。要提醒一点,当你移动好页面文件后,要把原来的删除掉,系统不会自动删除。
2)如果有两个硬盘,把页面文件放在转速快的那个,原因上面已讲了很多遍了。
3)最大最小页面文件的设置原则。有很多人建议将这两个值设置成相等的,我不知道他们是那里来的依据,其实这样设置是不合理的。我们先要知道他们两个值的意义。一般情况下,内存是不会真的“塞满”,它会在内存储量到达一定程度时自动将一部分暂时不用的数据放到硬盘,最小页面文件是所说的“一定程度”的具体比例的决定因素,最小页面文件大,比例就低,反之则相反;最大页面文件是极限值,有时你开了很多程序,内存和最小页面文件都满了,就自动溢出到最大页面文件。所以,将两者设为一样大是不合理的。最小页面文件要小一些,这样能够在内存中尽可能存更多的数据,效率就高,最大页面文件大一些,以免出现“全满”的的情况。
4)winxp现在支持4G内存,哪怕你有5,6百M的内存,你都不需页面文件了,这时可以把页面文件禁掉。到注册表编辑器HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Manager Memory Management下,找到DisablePagingExecutive(禁用页面文件)设其值为1。
5)在同上的注册表编辑器位置上有个ClearPageFileAtShutdown(关机时清除页面文件),这里所说的“清除”页面文件(即虚拟内存)并非是指从硬盘上完全删除pagefile sys这个文件,而是对其进行“清洗”和整理,从而为下次启动Win2K更好地利用虚拟内存作好准备。这样做还有利于安全,页面文件上的残留的数据是可以用特殊的工具读到的,而这些数据你可能并不想让人知道。这样做的代价是关闭系统时间会加长。 将其值设为1即可。
6)学过C的朋友们应该对 *** 作内存有个概念,一个任务完成后,要用free函数来释放内存,但有很多软件在设计的时候,并没有在所有环节都这样做,这会造成无用的数据占据内存,对这种情况可以使用一些内存优化软件,让这钟软件来完成释放内存的动作。
2,下面介绍和优化一些不著名的缓存:
1)内存读取硬盘数据要经过一个系统缓存(system cache),它的位置是在内存的特定区域,它是用来缓解硬盘与内存之间的速度不平衡的。它是以牺牲内存资源来换取从硬盘读取数据时的速度的,有了这块缓存,系统能从硬盘预读所需的数据,减少系统等待的时间。如果你的内存很大,比如5,6百M,那么你除了可以采取上面说的关闭页面文件的方法外,还可以起用打的系统缓存。做法如下,进入注册表编辑器: HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Manager Memory Management,找到LargeSystemCache(启用大的系统缓存),将它的值设为1就可以了。
这样设置了后,systemcache从4M增加到8M,再win2000和winxp中,这个值是动态的,如果内存不足,systemcache占据的空间可以自动相应调整。
2)处理器从内存读取数据的缓存是什么呢?是二级数据高级缓存(缓冲),同样它也要在内存中占一个空间,所以最好是有了大内存之后再设置这个值。也需再注册表里设置,方法如下:进入 HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Manager Memory Management ,找到 SecondLevelDataCache,默认为256,大内存设为512。
好了经过了上面的介绍,我想对朋友们来说最重要收获的是加深了对缓存和 *** 作系统的认识,至于优化的方法,我得承认一般的朋友是用不着去做的,当然“玩”一下也是很有意思的。
cache是一种高速缓冲存储器。
内部存储器一般指内存。内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中, *** 作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。内存条是由内存芯片、电路板、金手指等部分组成的。
内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。只不过因为RAM是其中最重要的存储器。(synchronous)SDRAM同步动态随机存取存储器:SDRAM为168脚,这是目前PENTIUM及以上机型使用的内存。
B,CPU与内存储器之间速度不匹配问题。
高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。
扩展资料:
高速缓冲存储器组成结构
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。
主要由三大部分组成:
1、Cache存储体:存放由主存调入的指令与数据块。
2、地址转换部件:建立目录表以实现主存地址到缓存地址的转换。
3、替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。
参考资料来源:百度百科-高速缓冲存储器
其代表算法有:①Hybrid算法:算法对Cache中的每一个对象赋予一个效用函数,将效用最小的对象替换出Cache;②LowestRelativeValue算法:将效用值最低的对象替换出Cache;③LeastNormalizedCostReplacement(LCNR)算法:该算法使用一个关于文档访问频次、传输时间和大小的推理函数来确定替换文档;④Bolot等人提出了一种基于文档传输时间代价、大小、和上次访问时间的权重推理函数来确定文档替换;⑤SizeAdjustLRU(SLRU)算法:对缓存的对象按代价与大小的比率进行排序,并选取比率最小的对象进行替换
扩展知识:
Cache是一种根据程序局部性原则,通过小容量速度快的存储器缓存部分数据,以减少处理器对慢速大容量存储器的访问次数,从而提升处理器取指效率的机制。Cache替换算法是指当Cache缺失发生后,Cache按某种机制选中高速缓存中的某个地址进行数据更新。Cache替换算法对Cache的命中率有较大的影响。目前主流的Cache替换算法有伪随机、先进先出(FIFO——First In First Out)和最近最少使用(LRU——Least Recently Used)等。相较于伪随机和先进先出算法,LRU算法更符合程序局部性原则(当前执行的程序代码,在不久后会再次访问该代码段),Cache的命中率更高,但其硬件资源消耗非常大。
传统的LRU算法对Cache的每一路进行统计,在需要替换时,将最近最少被使用的那一路替换。由于传统LRU算法的数据使用频率统计为向上计数,故其计数器计数位宽较大,且需要额外的机制来处理计数溢出的情况。
以上就是关于名词解释1.Cache2.程序3.I/O设备4. *** 作系统全部的内容,包括:名词解释1.Cache2.程序3.I/O设备4. *** 作系统、cache是什么意思、cache是一种只读存储器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)