许多朋友对计算机里头的“当红”名词“系统资源”可能并不陌生,在报刊或书籍上我们经常可以看到它的影子,但对于这位朝夕相处的朋友,你究竟了解多少呢?不少朋友一直存在认识上的误区,他们把系统资源和内存占用当作一回事了。真实的情况如何呢?想弄清楚问题的答案,那就随本文一起揭开系统资源的神秘面纱。
一、溯本清源,弄清各类资源的含义
“物以类聚,人以群分”,对于资源的概念划分,我们听得最多的主要有:CPU资源、内存资源、系统资源、用户资源、GDI资源,这些不同名称的资源,彼此间究竟有没有联系?要走出认识上的误区,首先必须弄清楚它们的含义。
先从系统资源说起吧。简单地说,当应用程序运行时,内存需要一块空间来追踪、保留正在执行的程序的状态,比如按钮、光标、菜单位置和位图、窗口状态等,存储这些信息的空间有个专有名词来形容,那就是我们熟悉的“系统资源”,而存储这些信息的空间是一种称为“堆”的内存块,你可以把“堆”理解成采用特殊机制管理的内存空间。
根据存储对象类型的不同,系统资源分为两个方面:用户资源和GDI(Graphic Device Interface,图形设备接口)资源。由系统内核程序“User.exe”管理的堆叫作用户资源堆,用来存储窗口状态、菜单位置等信息;由系统内核程序“Gdi.exe”管理的堆叫作GDI资源堆,用来存储画刷、画笔、字体、调色板等图形对象信息。用户资源堆和GDI资源堆合称为系统资源堆,习惯上我们称之为系统资源。
现在大家应该明白,系统资源和内存资源并不是同一回事。我们说一个程序使用了多少内存资源,实际上就是指该程序运行时须要占用多少内存空间,依据软件设计的优化程度、功能强弱等因素,有的只需几百KB,有的却需要几十MB甚至数百MB,通常比系统资源要大得多。
CPU资源就更好理解了,它实际上指的是CPU使用率,软件运行时都要通过CPU进行数据运算,占用一定的CPU执行时间,CPU使用率是衡量软硬件设计的重要指标。某些设计不完善或陷入死循环的程序,往往会让系统处于无反应状态,原因就是它们的CPU使用率很高。在某些软件评测文章里,我们通常还可以看到“资源占用过高”的评语,但实际上这种提法并不全面,应该具体指出是哪类资源占用过高,比如CPU资源、内存资源或系统资源。
二、寻根把脉,探讨系统资源管理机制
“瘟酒五”、“瘟酒八”的不稳定是众所周知的,Windows 2000/XP的稳定性就好多了。事实上,引发Windows 9x不稳定的罪魁祸首就是系统资源的管理方式。基于NT内核设计的Windows 2000/XP,同使用Win9x内核的Windows 95/98/ME相比,管理系统资源的机制是完全不同的。
1.Windows 9x
在Windows 9x系统下,微软将系统资源分为五个堆,其中用户资源堆占据三个,GDI资源堆为两个。三个用户资源堆分别是:16位的用户堆,大小为64KB;32位的窗口堆,大小为2MB;32位的菜单堆,大小为2MB。两个GDI资源堆分别是:16位的GDI堆,大小为64KB;32位的GDI堆,大小为2MB。从划分类型来分析,我们不难发现有16位和32位两种,Windows 9x如此设计系统资源的原因,就是为了让旧的16位程序能在新的操作系统上正常运行。
著名的“木桶原理”大家都知道吧?如果组成木桶的木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。木桶原理同样适用于系统可用资源,道理很简单,当某个类型可以分配的资源被占尽时,即使其它部分剩下的资源还很多,系统也会因资源不足而出现问题。所以说,可用的系统资源一定等于可用用户资源和可用GDI资源中较小的那一个。为了保持与16位应用程序的兼容性,Windows 9x的大量数据要占用16位的64KB的资源堆,这部分资源首先被大量消耗,限制系统资源使用的是64KB的资源堆而不是2MB的资源堆。
想必大家应该明白了,在Windows 9x系统下,系统资源的大小是固定的,与硬件的档次根本没有关系,无论你的CPU是P4还是486,内存是8MB还是1G。当你遭遇“系统资源不足”的提示时,有些老鸟可能会向你提示增加内存,其实这种经验之谈完全是错误的。解决问题的方法主要有两种:一是减少同时运行的程序,释放可用系统资源;二是重新启动系统,克服因资源回收机制不完善,导致系统资源的可用空间急剧下降后,不足以满足正常运行的需要。
如何查看当前的系统资源状况?在Windows 9x中提供了一个专门的工具来观察。单击“开始菜单→程序→附件→系统工具→资源状况”,即可运行该工具。如果你找不到该工具,可以在添加/删除中的Windows组件里头选择安装。
2.Windows 2000/XP
在Windows 2000/XP系统下,你几乎不会碰到诸如“系统资源不足”的提示,主要原因就在于Windows 2000/XP已经没有系统资源大小的限制,系统会根据实际运行情况,自动分配足够的系统资源。美中不足的是,一些旧的16位程序可能无法正常运行,为此微软特意提供了“兼容性模式”运行方式,可以在Windows 2000/XP系统上模拟其他版本的Windows,比如Windows 95/98/Me/NT等。
看了这么多,不知道大家对“系统资源”是否有了更深的了解?希望本文对大家有所帮助。