内存抖动

来源:互联网 发布:linux c书籍 编辑:程序博客网 时间:2024/04/29 20:39

内存抖动(memory thrashing)

现代操作系统都有一个叫虚拟内存的概念。操作系统如果只使用物理内存作为可用内存的话,会很受限制。于是就提出一种以廉价硬盘代替昂贵内存的方法,“扩充”可用内存。

   于是,就在硬盘上划出一部分硬盘空间用来暂时存放内存数据。当系统进程发现物理内存不够了,就在内存空间上找一些不活跃的进程,把它占用的内存复制到硬 盘上,空出来的内存就可以重新使用了。而这时内存被空出来的进程并不知道其实他们其实已经被停下来了。当这些被停下来的进程重新激活,就需要再找一块不那 么活跃的进程占用的内存空间,把它们的内存拷出来,把原来硬盘上的数据再拷回去。

  假如内存相对应用程序要求严重不足,就会导致这种数据的内存/硬盘频繁切换,反而占用了大量CPU时间,而其实这些CPU时间应该是用来运行程序的。按我的理解,这应该就是抖动了吧。

 

页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。

 

 

抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调。
比如:
在用页式管理的操作系统中,可供程序用的内存大小为3页,采用最近最久未使用的算法或者先进先出的算法分配内存,请求调用页面的顺序为:1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4.。。。。。。。。。。。
这样的话,每一次cpu要调用数据或者程序时数据或程序所在的页都不知内存中,都要和外存对换页。这就是抖动!


转链接:http://qing.blog.sina.com.cn/2161971512/80dd113833002j7a.html

0 0
原创粉丝点击