系统进程就是系统内正在运行的应用程序,当你同时按下“Ctrl+Alt+Del”这组组合键后你就能够查看当前系统内的所有进程了。当我们同时开启的程序太多了就会占用计算机大量的资源,从而造成计算机系统内部的阻塞甚至导致计算机死机。其实我们可以通过合理的管理系统进程来减少对系统资源的占用,同时也提高了计算机的效率。
1.系统进程
这些大多是保证系统正常运行所需的进程。下面以笔者电脑上的进程列表为例(图1)来做个简单的介绍(默认情况下,WinXP会启动许多的系统服务,由于笔者关闭了一些不必要的系统服务,所以列表可能与大家的略有不同)。
①Svchost.exe:它是从动态链接库(DLL)中运行的服务的通用主机进程名称。每个Svchost.exe包含着一组服务。我们平时上网、磁盘管理、执行的计划任务等就是由这个进程来完成的。这就是典型的一个进程会对应多个程序。对于WinXP/2000系统会有多个此进程同时存在。*、病毒等也常常通过这个进程来加载,这样它的进程名和程序名就不一样了。
②Explorer.exe:资源管理器,我们常用的桌面、任务栏等就是由它来管理的。
③Winlogon.exe:管理用户登录,是在登录系统时加载的,作用就是保证用户能够正常登录系统。
④System和System Idle Process:系统默认服务,它作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间(别让CPU太闲了)。大家常常会发现它的CPU占有率数值很大,其实这表明CPU此时很空闲。
其他如Alg.exe、sass.exe 、Services.exe 、Csrss.exe、Smss也是系统进程,大家一般接触较少,具体说明就不介绍了。这些是系统正常运行所必需的进程,如果被关闭,系统可能会出现一些莫名其妙的故障。
2.用户服务或自行启动的进程
①运行Norton杀毒软件启动进程—Navapsvc.exe和Navapw32.exe。
②任务栏输入法切换图标—Ctfmon.exe,它是Office自动加载的文字服务,如果你没装Office,这里显示的是internat.exe。
③启动QQ后的进程—QQ.exe、Timplatform(QQ的TM功能),这就是前面说的一个应用程序启动多个进程。
④Taskmgr.exe—正在运行的任务管理器。
其他如启动Winamp(Winamp.exe)、Outlook Express(msin.exe)、Word(Winword.exe)、IE浏览器(iexplore.exe)、记事本(Notepad.exe)、EXCEL(Excel.exe)等程序后(括号中即为进程名),它们的进程名和程序本身是一致的,大家可以比较容易地判断出来。
3.管理进程
虽然任务管理器可以列出系统所有的进程,但是无法知道进程所在的路径、调用的模块、进程的关系(如子、父进程)、包含子服务等详细资料。下面介绍两种方法。
1.利用系统自带命令
在WinXP中,Tastlist和Taskkill就是专门用于查看和终止进程的两个命令。
①Tasklist命令,用于显示运行在本地或远程计算机上的所有任务的应用程序和服务列表,带有过程ID。
语法:
tasklist[.exe] [/s computer] [/u domainuser [/p password]] [/fo {TABLE LIST CSV}] [/nh] [/fi FilterName [/fi FilterName2 [ ... ]]] [/m [ModuleName] /svc /v]
各参数的说明请参考Windows的帮助(在系统桌面上按“F1”键后搜索这个命令即可)。比如要查看QQ.exe这个进程调用的模块,在命令行下输入:
tasklist /m
回车后就可以看到当前所有程序所调用的DLL文件了,当然也包括QQ.exe(如图2一个程序身后有很多模块在支援)。
②Taskkill命令,用于结束一个或多个任务或进程。可以根据进程ID或图像名来结束进程。
语法:
taskkill [/s Computer] [/u DomainUser [/p Password]]] [/fi FilterName] [/pid ProcessID] [/im ImageName] [/f][/t]
如要强行终止QQ.exe则输入命令:taskkill /im qq.exe /f。回车后即可结束QQ进程。
2.利用专门进程软件
Process Explorer(以下简称为PE)这个软件已经有国内的爱好者对它进行了汉化,下面就以汉化版来介绍。虽然系统命令可以列出进程比较详细的信息,但是无法知道进程包含每个服务的具体路径,以及调用的DLL文件。来管理进程。PE可以让使用者能了解到在后台执行的处理程序,能显示目前已经载入哪些模块,分别正在被哪些程序使用着,还可显示这些程序所调用的DLL进程,以及它们所打开的句柄。
下面就以用PE来查看Svchost.exe这个进程为例。如上所述,每个Svchost.exe包含着一组服务,而*们也非常喜欢它,常常通过注册为系统服务并借助它来启动。Svchost.exe进程只作为服务宿主,也就是说它只能提供条件,让其他服务在这里被启动,自己并不代表任何程序。这些系统服务是以动态链接库(DLL)的形式实现,*们把可执行程序指向Svchost,由它调用*文件的动态链接库来启动服务。如果仅依靠系统自带那两个命令是无法解析这个进程的。
运行PE后选中Svhoost.exe,右击选择“属性”,在弹出的窗口中就可以看到关于该进程的详细信息(如图3用工具查看进程就方便了)。
①查看路径。单击“映像”,可以看到Svchost.exe路径是在C:windows system32下。而它所注册的服务是imgsvc,父进程ID为554(Services.exe),(如图4了解进程的来龙去脉)。
②查看注册服务。单击“服务”可以看到所注册服务(imgsvc)的详细说明(如图5现在知道这些进程在做什么了)。
③查看调用模块。单击“程序线程”,可以看到所注册服务的每个线程和调用的模块(如图6从模块与进程的关系可以判断它是不是正常的)。
这样通过PE,我们就可以知道进程的详细信息了,如果发现进程有什么异常,即可按提示的路径和调用模块信息予以终止。
看完上面的介绍,大家能够管好电脑的这些进程了吧。总之,进程作为系统的一个重要组件,大家如果能够管识别并管好它,可以给使用电脑带来极大的便利。