Linux 版 (精华区)
发信人: tcpip (高级草包), 信区: Linux
标 题: 来点真格的--2(转载)
发信站: 哈工大紫丁香 (2000年06月10日13:45:02 星期六), 转信
【 以下文字转载自 Computer 讨论区 】
【 原文由 tcpip 所发表 】
真分特,刚才写的差不多了,结果停电没存盘
兴致全没了,弄了半天才出来个3
---------------------------------------
来点真格的--2
3.Linux的内存管理
这部分东西本应该放在第一来说,但是linux的复杂的内存管理我没有
弄明白,只好知道多少说多少,惭愧!
bill的内存管理向来就被大家耻笑,而windows一启动就吃掉几十兆的
内存也都被默认了。我真怀疑bill跟内存厂商有什么协议,呵呵。linux
的内存管理十分复杂,采用了一种用到时再装入的策略,实现上大概是
这样的:
由于物理内存要比虚拟内存小的多,所以操作系统一定要十分有效的利
益用物理内存,一种节约的方法是只将执行程序时正在使用道德虚拟内
存叶面装入到系统的物理页面中。当一个进程试图存取一个不在物理内
存种的虚拟内存页面时,处理器将产生一个页面错误给操作系统。如果
发生页面错误的虚拟地址为无效的地址,说明处理器正在存取一个它不
应该存取的地址,系统将会终止进程的运行,如果是一个有效的,但此
页不再物理内存中,操作系统将从硬盘中将正确的页面交换回来。这个
过程由于涉及到硬盘存取,速度比较慢,linux将会尝试调度其他的进程
直到页面交换完毕位置。这种策略,可以保证需要大内存的程序可以安
全运行,不会因为一开始完全装入而导致内存紧张的情况。实际上这种
策略十分成功。我曾经特意做过对比,cpu,mem配置几乎相同的机器,一
台windows,一台linux,运行一个不停的需求内存的小程序。windows单
独运行我的测试程序,而linux实际上是我们的服务器,同时还提供着
ftp,http等服务呢。同时运行开始,windows在几分钟后硬盘开始哗哗
响,随后无法控制;而此时linux的cpu占用率虽然在99%左右徘徊,但
是mem没有报警,swap没有增大多少(这两项的具体数字忘了),同时还
有ftp在下载东西,从客户端没有看出来什么cpu,mem吃紧的迹象。这
个试验我不止一次说过,但很说明问题的,NT上的结果同样,只是系统
响应变慢时仍可以杀死这个进程,但很费劲了,有空应该在2000上做一
下同样的试验。
linux的其他内存管理跟操作系统上面讲到的差不多,几乎提到过的每
一个方法在linux上都有利用。在详细的东西,我讲不出来,感兴趣的
可以找一本linux kernel方面的东西,看一看。
--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: tcpip.hit.edu.cn]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: tcpip.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.338毫秒