1、 使用新的入口
必须包含 <linux/init.h>。
module_init(your_init_func);。
module_exit(your_exit_func);。
老版本:int init_module(void);。
void cleanup_module(voi);。
2.4中两种都可以用,对如后面的入口函数不必要显示包含任何头文件。
2、 GPL
MODULE_LICENSE("Dual BSD/GPL");。
老版本:MODULE_LICENSE("GPL");。
3、 模块参数
必须显式包含<linux/moduleparam.h>。
module_param(name, type, perm);。
module_param_named(name, value, type, perm);。
参数定义
module_param_string(name, string, len, perm);。
module_param_array(name, type, num, perm);。
老版本:MODULE_PARM(variable,type);。
MODULE_PARM_DESC(variable,type);。
4、 模块别名
MODULE_ALIAS("alias-name");。
这是新增的,在老版本中需在/etc/modules.conf配置,现在在代码中就可以实现。
5、 模块计数
int try_module_get(&module);。
module_put();
老版本:MOD_INC_USE_COUNT 和 MOD_DEC_USE_COUNT。
6、 符号导出
只有显示的导出符号才能被其他 模块使用,默认不导出所有的符号,不必使用EXPORT_NO。
_SYMBOLS
老板本:默认导出所有的符号,除非使用EXPORT_NO_SYMBOLS。
7、 内核版本检查
需要在多个文件中包含<linux/module.h>时,不必定义__NO_VERSION__。
老版本:在多个文件中包含<linux/module.h>时,除在主文件外的其他文件中必须定义_。
_NO_VERSION__,防止版本重复定义。
8、 设备号
kdev_t被废除不可用,新的dev_t拓展到了32位,12位主设备号,20位次设备号。
unsigned int iminor(struct inode *inode);。
unsigned int imajor(struct inode *inode);。
老版本:8位主设备号,8位次设备号。
int MAJOR(kdev_t dev);。
int MINOR(kdev_t dev);。
9、 内存分配头文件变更
所有的内存分配函数包含在头文件<linux/slab.h>,而原来的<linux/malloc.h>不存在。
老版本:内存分配函数包含在头文件<linux/malloc.h>。
10、 结构体的初试化
gcc开始采用ANSI C的struct结构体的初始化形式:
static struct some_structure = {。
.field1 = value,。
.field2 = value,。
..
};
老版本:非标准的初试化形式
static struct some_structure = {。
field1: value,
field2: value,
..
};
11、 用户模式帮助器
int call_usermodehelper(char *path, char **argv, char **envp,。
int wait);
新增wait参数
12、 request_module()。
request_module("foo-device-%d", number);。
老版本:
char module_name[32];。
printf(module_name, "foo-device-%d", number);。
request_module(module_name);。
13、 dev_t引发的字符设备的变化。
1、取主次设备号为
unsigned iminor(struct inode *inode);。
unsigned imajor(struct inode *inode);。
2、老的register_chrdev()用法没变,保持向后兼容,但不能访问设备号大于256的设备。
。
3、新的接口为
a)注册字符设备范围
int register_chrdev_region(dev_t from, unsigned count, char *name);。
b)动态申请主设备号
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, char。
*name);
看了这两个函数郁闷吧^_^!怎么和file_operations结构联系起来啊?别急!
c)包含 <linux/cdev.h>,利用struct cdev和file_operations连接。
struct cdev *cdev_alloc(void);。
void cdev_init(struct cdev *cdev, struct file_operations *fops);。
int cdev_add(struct cdev *cdev, dev_t dev, unsigned count);。
(分别为,申请cdev结构,和fops连接,将设备加入到系统中!好复杂啊!)
d)void cdev_del(struct cdev *cdev);。
只有在cdev_add执行成功才可运行。
e)辅助函数
kobject_put(&cdev->kobj);。
struct kobject *cdev_get(struct cdev *cdev);。
void cdev_put(struct cdev *cdev);。
这一部分变化和新增的/sys/dev有一定的关联。
14、 新增对/proc的访问操作。
<linux/seq_file.h>。
以前的/proc中只能得到string, seq_file操作能得到如long等多种数据。
相关函数:
static struct seq_operations 必须实现这个类似file_operations得数据中得各个成。
员函数。
seq_printf();
int seq_putc(struct seq_file *m, char c);。
int seq_puts(struct seq_file *m, const char *s);。
int seq_escape(struct seq_file *m, const char *s, const char *esc);。
int seq_path(struct seq_file *m, struct vfsmount *mnt,。
struct dentry *dentry, char *esc);。
seq_open(file, &ct_seq_ops);。
等等
15、 底层内存分配
1、<linux/malloc.h>头文件改为<linux/slab.h>。
2、分配标志GFP_BUFFER被取消,取而代之的是GFP_NOIO 和 GFP_NOFS。
3、新增__GFP_REPEAT,__GFP_NOFAIL,__GFP_NORETRY分配标志。
4、页面分配函数alloc_pages(),get_free_page()被包含在<linux/gfp.h>中。
5、对NUMA系统新增了几个函数:
a) struct page *alloc_pages_node(int node_id,。
unsigned int gfp_mask,。
unsigned int order);。
b) void free_hot_page(struct page *page);。
c) void free_cold_page(struct page *page);。
6、 新增Memory pools。
<linux/mempool.h>。
mempool_t *mempool_create(int min_nr,。
mempool_alloc_t *alloc_fn,。
mempool_free_t *free_fn,。
void *pool_data);。
void *mempool_alloc(mempool_t *pool, int gfp_mask);。
void mempool_free(void *element, mempool_t *pool);。
int mempool_resize(mempool_t *pool, int new_min_nr, int gfp_mask);。
16、 per-CPU变量
get_cpu_var();
put_cpu_var();
void *alloc_percpu(type);。
void free_percpu(const void *);。
per_cpu_ptr(void *ptr, int cpu)。
get_cpu_ptr(ptr)。
put_cpu_ptr(ptr)。
老版本使用
DEFINE_PER_CPU(type, name);。
EXPORT_PER_CPU_SYMBOL(name);。
EXPORT_PER_CPU_SYMBOL_GPL(name);。
DECLARE_PER_CPU(type, name);。
DEFINE_PER_CPU(int, mypcint);。
2.6内核采用了可剥夺得调度方式这些宏都不安全。
17、 内核时间变化
1、现在的各个平台的HZ为
Alpha: 1024/1200; ARM : 100/128/200/1000; CRIS: 100; i386: 1000; IA-64:。
1024; M68K: 100; M68K-nommu: 50-1000; MIPS: 100/128/1000; MIPS64: 100;。
PA-RISC: 100/1000; PowerPC32: 100; PowerPC64: 1000; S/390: 100; SPARC32:。
100; SPARC64: 100; SuperH: 100/1000; UML: 100; v850: 24-100; x86-64: 1000.。
2、由于HZ的变化,原来的jiffies计数器很快就溢出了,引入了新的计数器jiffies_64。
3、#include <linux/jiffies.h>。
u64 my_time = get_jiffies_64();。
4、新的时间结构增加了纳秒成员变量。
struct timespec current_kernel_time(void);。
5、他的timer函数没变,新增。
void add_timer_on(struct timer_list *timer, int cpu);。
6、新增纳秒级延时函数
ndelay();
7、POSIX clocks 参考kernel/posix-timers.c。
18、 工作队列(workqueue)
1、任务队列(task queue )接口函数都被取消,新增了workqueue接口函数。
struct workqueue_struct *create_workqueue(const char *name);。
DECLARE_WORK(name, void (*function)(void *), void *data);。
INIT_WORK(struct work_struct *work,。
void (*function)(void *), void *data);。
PREPARE_WORK(struct work_struct *work,。
void (*function)(void *), void *data);。
2、申明struct work_struct结构。
int queue_work(struct workqueue_struct *queue,。
struct work_struct *work);。
int queue_delayed_work(struct workqueue_struct *queue,。
struct work_struct *work,。
unsigned long delay);。
int cancel_delayed_work(struct work_struct *work);。
void flush_workqueue(struct workqueue_struct *queue);。
void destroy_workqueue(struct workqueue_struct *queue);。
int schedule_work(struct work_struct *work);。
int schedule_delayed_work(struct work_struct *work, unsigned long。
delay);
19、 新增创建VFS的"libfs"。
libfs给创建一个新的文件系统提供了大量的API.。
主要是对struct file_system_type的实现。
参考源代码:
drivers/hotplug/pci_hotplug_core.c。
drivers/usb/core/inode.c。
drivers/oprofile/oprofilefs.c。
fs/ramfs/inode.c。
fs/nfsd/nfsctl.c (simple_fill_super() example)。
经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: 。
CPU占用率高的九种可能
1、防杀毒软件造成故障
由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。
2、驱动没有经过认证,造成CPU资源占用100% 。
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。
3、病毒、木马造成
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。
4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。
5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。
6、查看“svchost”进程。
svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。
7、查看网络连接。主要是网卡。
8、查看网络连接
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。
要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出: 。
如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。
9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 。
前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事?
征兆:
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 。
任何文件的拷贝操作在那个时间将有可能停止相应 。
网络连接速度将显著性的降低
所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因: 。
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。
解决方法:
方法一:关闭“为菜单和工具提示使用过渡效果”
1、点击“开始”--“控制面板”
2、在“控制面板”里面双击“显示”
3、在“显示”属性里面点击“外观”标签页 。
4、在“外观”标签页里面点击“效果”
5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。
方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。
CPU占用100%案例分析
1、dllhost进程造成CPU使用率占用100% 。
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
解决办法:
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,
启用”查找死锁模块”,设置: 。
--wblock=yes
监控的目录,请指定您的主机的文件所在目录: 。
--wblockdir=d:\test 。
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm 。
停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。
过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。
找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。
2、svchost.exe造成CPU使用率占用100% 。
在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。
在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。
当感染一台服务器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,这就给捕捉带来了较大难度。
”程序的文件名,再在整个注册表中搜索即可。
我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。
svchost.exe到底是做什幺用的呢? 。
首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢? 。
svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。
svchost.exe是病毒这种说法是任何产生的呢? 。
因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。
如何才能辨别哪些是正常的svchost.exe进程,而哪些是病毒进程呢? 。
svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。
微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。
还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。
上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。
3、Services.exe造成CPU使用率占用100% 。
症状
在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。
解决方案
Service Pack 信息 。
要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 。
260910 如何获取最新的 Windows 2000 Service Pack 。
修复程序信息
Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。
要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点: 。
注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。
下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。
4、正常软件造成CPU使用率占用100% 。
首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。
如果是使用电脑途中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。
5、病毒、木马、间谍软件造成CPU使用率占用100% 。
出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad—Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒的表现。
svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。
6、explorer.exe进程造成CPU使用率占用100% 。
在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
7、超线程导致CPU使用率占用100% 。
这类故障的共同原因就是都使用了具有超线程功能的P4 CPU。我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天网防火墙有冲突,可以通过卸载天网并安装其它防火墙解决,也可以通过在BIOS中关闭超线程功能解决。
8、AVI视频文件造成CPU使用率占用100% 。
在Windows XP中,单击一个较大的AVI视频文件后,可能会出现系统假死现象,并且造成exploere.exe进程的使用率100%,这是因为系统要先扫描该文件,并检查文件所有部分,建立索引。如果文件较大就会需要较长时间并造成CPU占用率100%。解决方法:右键单击保存视频文件的文件夹,选择”属性—>常规—>高级“,去掉”为了快速搜索,允许索引服务编制该文件夹的索引“前面复选框的对钩即可。
9、杀毒软件CPU使用率占用100% 。
现在的杀毒软件一般都加入了,对网页、邮件、个人隐私的即时监空功能,这样无疑会加大系统的负担。比如:在玩游戏的时候,会非常缓慢。关闭该杀毒软件是解决得最直接办法。
10、处理较大的Word文件时CPU使用率过高 。
上述问题一般还会造成电脑假死,这些都是因为WORD的拼写和语法检查造成的,只要打开WORD的“工具—选项”,进入“拼写和语法”选项卡,将其中的“键入时检查拼写”和“键入时检查语法”两项前面的复选框中的钩去掉即可。
11、网络连接导致CPU使用率占用100% 。
当你的Windows2000/xp作为服务器时,收到来自端口445上的连接请求后,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。要解决这个问题可以通过修改注册表来解决,打开注册表,找到HKEY—LOCAL—MACHNE\SYSTEM\CurrentControlSet\Services\lanmanserver,在右面新建一个名为";maxworkitems";的DWORD值.然后双击该值,如果你的电脑有512以上内存,就设置为";1024";,如果小于512,就设置为256. 。
一些不完善的驱动程序也可以造成CPU使用率过高 。
经常使用待机功能,也会造成系统自动关闭硬盘DMA模式。这不仅会使系统性能大幅度下降,系统启动速度变慢,也会使是系统在运行一些大型软件和游戏时CPU使用率100%,产生停顿。
进程占用CPU 100%时可能中的病毒 。
system Idle Process 。
进程文件: [system process] or [system process] 。
进程名称: Windows内存处理系统进程 。
描 述: Windows页面内存管理进程,拥有0级优先。
介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。它的CPU占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。
Spoolsv.exe
进程文件: spoolsv or Spoolsv.exe 。
进程名称: Printer Spooler Service 。
描 述: Windows打印任务控制程序,用以打印机就绪。
介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
Spoolsv.exe→打印任务控制程序,一般会先加载以供列表机打印前的准备工作 。
Spoolsv.exe,如果常增高,有可能是病毒感染所致 。
目前常见的是:
Backdoor/Byshell(又叫隐形大盗、隐形杀手、西门庆病毒) 。
危害程度:中
受影响的系统: Windows 2000, Windows XP, Windows Server 2003 。
未受影响的系统: Windows 95, Windows 98, Windows Me, Windows NT, Windows 3.x, Macintosh, Unix, Linux,
病毒危害:
1. 生成病毒文件
2. 插入正常系统文件中
3. 修改系统注册表
4. 可被黑客远程控制
5. 躲避反病毒软件的查杀
简单的后门木马,发作会删除自身程序,但将自身程序套入可执行程序内(如:exe),并与计算机的通口(TCP端口138)挂钩,监控计算机的信息、密码,甚至是键盘操作,作为回传的信息,并不时驱动端口,以等候传进的命令,由于该木马不能判别何者是正确的端口,所以负责输出的列表机也是其驱动对象,以致Spoolsv.exe的使用异常频繁...... 。
Backdoor.Win32.Plutor 。
破坏方法:感染PE文件的后门程序 。
病毒采用VC编写。
病毒运行后有以下行为:
1、将病毒文件复制到%WINDIR%目录下,文件名为";Spoolsv.exe";,并该病毒文件运行。";Spoolsv.exe";文件运行后释放文件名为";mscheck.exe";的文件到%SYSDIR%目录下,该文件的主要功能是每次激活时运行";Spoolsv.exe";文件。如果所运行的文件是感染了正常文件的病毒文件,病毒将会把该文件恢复并将其运行。
2、修改注册表以下键值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Run 。
增加数据项:";Microsoft Script Checker"; 数据为:";MSCHECK.EXE /START";
修改该项注册表使";MSCHECK.EXE";文件每次系统激活时都将被运行,而";MSCHECK.EXE";用于运行";Spoolsv.exe";文件,从而达到病毒自激活的目的。
3、创建一个线程用于感染C盘下的PE文件,但是文件路径中包含";winnt";、";Windows";字符串的文件不感染。另外,该病毒还会枚举局域网中的共享目录并试图对这些目录下的文件进行感染。该病毒感染文件方法比较简单,将正常文件的前0x16000个字节替换为病毒文件中的数据,并将原来0x16000个字节的数据插入所感染的文件尾部。
4、试图与局域网内名为";admin";的邮槽联系,创建名为";client";的邮槽用于接收其控制端所发送的命令,为其控制端提供以下远程控制服务: 。
显示或隐藏指定窗口、屏幕截取、控制CDROM、关闭计算器、注销、破坏硬盘数据。
哪些病毒会造成CPU占有率过高 。
震荡波蠕虫
利用微软操作系统的LSASS缓冲区溢出漏洞进行远程主动攻击和传染,导致系统异常和网络严重拥塞,具有极强的危害性,病毒如果攻击成功,则会占用大量系统资源,使CPU占用率达到100%,出现电脑运行异常缓慢的现象。
如果中了这种病毒可采用下面的四种方法进行清除。
1、断网打补丁
如果不给系统打上相应的漏洞补丁,则连网后依然会遭受到该病毒的攻击,用户应该先下载相应的漏洞补丁程序,然后断开网络,运行补丁程序,当补丁安装完成后再上网。
2、清除内存中的病毒进程
要想彻底清除该病毒,应该先清除内存中的病毒进程,用户可以按CTRL+SHIFT+ESC三或者右键单击任务栏,在弹出菜单中选择“任务管理器”打开任务管理器界面,然后在内存中查找名为“avserve.exe”的进程,找到后直接将它结束。
3、删除病毒文件
病毒感染系统时会在系统安装目录(默认为C:\WINNT)下产生一个名为avserve.exe的病毒文件,并在系统目录下(默认为C:\WINNT\System32)生成一些名为<;随机字符串>;_UP.exe的病毒文件,用户可以查找这些文件,找到后删除,如果系统提示删除文件失败,则用户需要到安全模式下或DOS系统下删除这些文件。
4、删除注册表键值
该病毒会在电脑注册表的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Run项中建立名为“avserve.exe”,内容为:“%Windows%\avserve.exe”的病毒键值,为了防止病毒下次系统启动时自动运行,用户应该将该键值删除,方法是在“运行”菜单中键入“REGEDIT” 然后调出注册表编辑器,找到该病毒键值,然后直接删除。
bride病毒
此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行,病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。
病毒清除方法
此病毒可以用趋势、诺顿、瑞星、金山和江民等杀毒软件进行清除。
最新的如MS07-42等漏洞补丁如何修复?非独立安装,能下不能装。
帖子标题:
最新的如MS07-42等漏洞补丁如何修复?非独立安装,能下不能装。
帖子内容:
现象:
历史操作:没安装什么软件,只是按照提示的意思,因为不是独立安装,就无法修复,系统提示只是说繁忙,但都已经下好了的。
备注:
我的诊断报告:
各位高手:
非常感谢您留心我这份系统诊断报告,小菜鸟十万火急等待您的帮助!
该诊断报告由360安全卫士提供 http://www.360safe.com。
诊断时间: 2007-08-30 14:05:28。
诊断平台: Microsoft Windows XP Service Pack 2。
IE版本: Internet Explorer V6.0.2900.2180 Build:62900.2180 。
计算机物理内存:511.48MB - 当前可用内存:178.55MB。
100 - 未知 - Process: QQ.exe [QQ] - D:\2007版本\QQ.exe。
O2 - 未知 - BHO: (ThunderAtOnce Class) - [迅雷浏览器高级特性支持模块] - {01443AEC-0FD1-40fd-9C87-E93D1494C233} - D:\下载器\新版讯雷\ComDlls\TDAtOnce_Now.dll。
O2 - 未知 - BHO: (Kingsoft Trojan Webshield) - [Kingsoft Trojan Webshield] - {4E8A5278-C04E-4FE3-BF78-8A7CCD6EF333} - D:\金山清理专家\金山清理\IEBuddy.DLL。
O2 - 未知 - BHO: (Thunder Browser Helper) - [XunLeiBHO] - {B69F34DC-F0F9-42DC-9EDD-957187DA688D} - D:\下载器\新版讯雷\ComDlls\xunleiBHO_Now.dll。
O3 - 未知 - Toolbar: (第三方IE工具栏) - [无效的CLSID:{1E796980-9CC5-11D1-A83F-00C04FC99D61}] - {1E796980-9CC5-11D1-A83F-00C04FC99D61} - 。
O8 - 未知 - Extra context menu item: 使用Web迅雷下载 - D:\下载器\WEB讯雷\GetUrl.htm。
O8 - 未知 - Extra context menu item: 添加到QQ表情 - D:\2007版本\AddEmotion.htm。
O9 - 未知 - Extra button: 金山网页防挂马模块设置(HKLM) - D:\金山清理专家\金山清理\IEBuddyExt.DLL。
O9 - 未知 - Extra button: 启动Web迅雷(HKLM) - http://my.xunlei.com。
O23 - 未知 - Service: AVP [怅诱数呾侬堈烛瓷冯睿洁证?璃腔哏赲[] - D:\卡巴斯基\avp.exe -r - (running)。
O30 - 未知 - HKCU\..\Desktop: [Scrnsave.exe] [Direct3D Pipes Screen Saver] C:\WINDOWS\system32\sspipes.scr。
=======================================。
100 - 安全 - Process: smss.exe [进程为会话管理子系统用以初始化系统变量,ms-dos驱动名称类似lpt1以及com,调用win32壳子系统和运行在windows登陆过程。] - C:\WINDOWS\System32\smss.exe。
100 - 安全 - Process: csrss.exe [客户端服务子系统,用以控制windows图形相关子系统。] - C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=base。
100 - 安全 - Process: winlogon.exe [windows nt用户登陆程序。] - C:\WINDOWS\system32\winlogon.exe。
100 - 安全 - Process: services.exe [用于管理windows服务系统进程。] - C:\WINDOWS\system32\services.exe。
100 - 安全 - Process: lsass.exe [本地安全权限服务控制windows安全机制。] - C:\WINDOWS\system32\lsass.exe。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\system32\svchost -k DcomLaunch。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\system32\svchost -k rpcss。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\System32\svchost.exe -k netsvcs。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\system32\svchost.exe -k NetworkService。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\system32\svchost.exe -k LocalService。
100 - 安全 - Process: explorer.exe [windows program manager或者windows explorer用于控制windows图形shell,包括开始菜单、任务栏,桌面和文件管理。] - C:\WINDOWS\Explorer.EXE。
100 - 安全 - Process: avp.exe [卡巴斯基杀毒软件相关程序。] - 。
100 - 安全 - Process: 360tray.exe [360安全卫士实时保护模块] - D:\卡巴斯基\360safe\safemon\360Tray.exe。
100 - 安全 - Process: ctfmon.exe [office xp输入法图标。] - C:\WINDOWS\system32\ctfmon.exe。
100 - 安全 - Process: avp.exe [卡巴斯基杀毒软件相关程序。] - 。
100 - 安全 - Process: nvsvc32.exe [nvidia driver helper service在nvida显卡驱动中被安装。] - C:\WINDOWS\system32\nvsvc32.exe。
100 - 安全 - Process: svchost.exe [service host process是一个标准的动态连接库主机处理服务。] - C:\WINDOWS\system32\svchost.exe -k imgsvc。
100 - 安全 - Process: alg.exe [这是一个应用层网关服务用于网络共享。] - C:\WINDOWS\System32\alg.exe。
100 - 安全 - Process: IEXPLORE.EXE [microsoft internet explorer浏览器用于浏览网页。] - C:\Program Files\Internet Explorer\iexplore.exe。
100 - 安全 - Process: spoolsv.exe [windows打印任务控制程序,用以打印机就绪。] - C:\WINDOWS\system32\spoolsv.exe。
100 - 安全 - Process: 360Safe.exe [360安全卫士] - D:\卡巴斯基\360safe\360safe.exe。
100 - 安全 - Process: msiexec.exe [windows installer的一部分。用来帮助windows installer package files (msi)格式的安装文件。] - C:\WINDOWS\system32\msiexec.exe /V。
O2 - 安全 - BHO: (WebThunder Browser Helper) - [Web迅雷, 支持多资源超线程技术的下载工具。] - {00000AAA-A363-466E-BEF5-9BB68697AA7F} - D:\下载器\WEB讯雷\WebThunderBHO_Now.dll。
O4 - 安全 - HKLM\..\Run: [IMJPMIG8.1] [微软Microsoft输入法编辑器程序。] "C:\WINDOWS\IME\imjp8_1\IMJPMIG.EXE" /Spoil /RemAdvDef /Migration32。
O4 - 安全 - HKLM\..\Run: [NvCplDaemon] [是NVIDIA显示卡相关动态链接库文件。] RUNDLL32.EXE C:\WINDOWS\system32\NvCpl.dll,NvStartup。
O4 - 安全 - HKLM\..\Run: [kav] [卡巴斯基杀毒软件相关程序。] "D:\卡巴斯基\avp.exe"。
O4 - 安全 - HKLM\..\Run: [NvMediaCenter] [是NVidia显示卡相关文件。] RunDLL32.exe NvMCTray.dll,NvTaskbarInit。
O4 - 安全 - HKLM\..\Run: [360Safetray] [360safe实时保护功能模块。] D:\卡巴斯基\360safe\safemon\360Tray.exe /start。
O4 - 安全 - HKCU\..\Run: [ctfmon.exe] [office xp输入法图标。] C:\WINDOWS\system32\ctfmon.exe。
O16 - 安全 - DPF: {8D9E0B29-563C-4226-86C1-5FF2AE77E1D2} (中国工商银行个人银行) - 。
O16 - 安全 - DPF: {D27CDB6E-AE6D-11CF-96B8-444553540000} (Flash播放器) - 。
O23 - 安全 - Service: NVSvc [是NVIDIA显示卡相关程序。] - C:\WINDOWS\system32\nvsvc32.exe - (running)。
=======================================。
O31 - 未知 - Notify: klogon - C:\WINDOWS\system32\klogon.dll - Kaspersky Lab - Logon Visualizer - 6.0.0.299 - 28778 - 7072750eb5c0f0cd54b48f972855ca61。
O31 - 未知 - SEApproved: {42071714-76d4-11d1-8b24-00a0c9068ff3} - deskpan.dll - - - - 0 - 。
O31 - 未知 - SEApproved: 无效的CLSID:Shell extensions for file compression - - - - - 0 - 。
O31 - 未知 - SEApproved: 无效的CLSID:加密上下文菜单 - - - - - 0 - 。
O31 - 未知 - SEApproved: {0DF44EAA-FF21-4412-828E-260A8728E7F1} - - - - - 0 - 。
O31 - 未知 - SEApproved: {00E7B358-F65B-4dcf-83DF-CD026B94BFD4} - - - - - 0 - 。
O31 - 未知 - SEApproved: {7A9D77BD-5403-11d2-8785-2E0420524153} - - - - - 0 - 。
O31 - 未知 - SEApproved: {1CDB2949-8F65-4355-8456-263E7C208A5D} - C:\WINDOWS\system32\nvshell.dll - - - 6.14.10.11038 - 466944 - c8ea187df8f1cedf34eb5bab8ab38ebf。
O31 - 未知 - SEApproved: {1E9B04FB-F9E5-4718-997B-B8DA88302A47} - C:\WINDOWS\system32\nvshell.dll - - - 6.14.10.11038 - 466944 - c8ea187df8f1cedf34eb5bab8ab38ebf。
O31 - 未知 - SEApproved: {1E9B04FB-F9E5-4718-997B-B8DA88302A48} - C:\WINDOWS\system32\nvshell.dll - - - 6.14.10.11038 - 466944 - c8ea187df8f1cedf34eb5bab8ab38ebf。
O31 - 未知 - SEApproved: {B41DB860-8EE4-11D2-9906-E49FADC173CA} - D:\winrar\rarext.dll - - - - 129024 - de449c94c4c9e3db84e32029f20dd989。
O31 - 未知 - SEApproved: {F0CB00CD-5A07-4D91-97F5-A8C92CDA93E4} - F:\播シ放牌器鲟\REALPLAYER\rpshell.dll - - - - 0 - 。
O31 - 未知 - SEApproved: {1D2680C9-0E2A-469d-B787-065558BC7D43} - C:\WINDOWS\system32\mscoree.dll - Microsoft Corporation - Microsoft .NET Runtime Execution Engine - 2.0.50727.253 - 271360 - b5b67ee09b52d7129b8041b9bd411f7b。
O31 - 未知 - SEApproved: 无效的CLSID:AlcoholShellEx - - - - - 0 - 。
O31 - 未知 - SEApproved: {85E0B171-04FA-11D1-B7DA-00A0C90348D6} - D:\卡巴斯基\scieplugin.dll - Kaspersky Lab - Script Monitor Internet Explorer plugin - 6.0.0.299 - 184430 - 3f6db09f466b9e4f252549e62a21d6a5。
O31 - 未知 - Directory Menu: {B41DB860-8EE4-11D2-9906-E49FADC173CA} - D:\winrar\rarext.dll - - - - 129024 - de449c94c4c9e3db84e32029f20dd989。
O31 - 未知 - LSA: Security Packages - sv1_0.dll - - - - 0 - 。
O31 - 未知 - LSA: Security Packages - channel.dll - - - - 0 - 。
=======================================。
O40 - winlogon.exe - Kaspersky Lab - C:\WINDOWS\system32\klogon.dll - Logon Visualizer - 7072750eb5c0f0cd54b48f972855ca61。
O40 - Explorer.EXE - NVIDIA Corporation - C:\WINDOWS\system32\NVRSZHC.DLL - NVIDIA Simplified Chinese language resource library - 7df6a9c481cb51565c636d131bd8199e。
O40 - Explorer.EXE - - C:\WINDOWS\system32\nvshell.dll - - c8ea187df8f1cedf34eb5bab8ab38ebf。
O40 - Explorer.EXE - Kaspersky Lab - D:\卡巴斯基\scr_ch_pg.dll - Script Checker - c15736f474624083153ee37826a4001b。
O40 - Explorer.EXE - Kaspersky Lab - D:\卡巴斯基\klscav.dll - Script Checker AV Plugin - 65d848acdb0d41a6317726b7df376d92。
O40 - Explorer.EXE - Kaspersky Lab - D:\卡巴斯基\pr_remote.dll - PR_REMOTE - 5f6e14e8290e10b4fac233b7cca87430。
O40 - Explorer.EXE - Kaspersky Lab - D:\卡巴斯基\prloader.dll - Prague Loader - ebf71aa09b2418a0c79a406255862ab5。
O40 - Explorer.EXE - - D:\winrar\rarext.dll - - de449c94c4c9e3db84e32029f20dd989。
O40 - Explorer.EXE - Kaspersky Lab - D:\卡巴斯基\shellex.dll - Windows Shell Extension - 62281a8da78c81f4f4695c3de52ba680。
=======================================。
O41 - dtscsi - dtscsi - C:\WINDOWS\system32\drivers\dtscsi.sys - (running) - - - 。
O41 - IGALIVE - IGALIVE - C:\Program Files\IGALIVE\IGALIVE.sys - (running) - - - 784bdc2672c2d589cb0337b255a06ec6。
O41 - KAVBootC - KAVBootC Application - C:\WINDOWS\system32\drivers\KAVBootC.sys - (running) - KAVBootC Application - Kingsoft Corporation - c023b22ab4d7158452e75a1b8778dc49。
O41 - kl1 - Kaspersky Unified Driver - C:\WINDOWS\system32\drivers\kl1.sys - (running) - Kaspersky Unified Driver - Kaspersky Lab - 5445b03cd42dedf5f85b9daf712fdd09。
O41 - klif - spuper-ptor - C:\WINDOWS\system32\drivers\klif.sys - (running) - spuper-ptor - Kaspersky Lab - 2985985b39e13643f941b6396fb915dd。
O41 - Passthru - Sample NDIS 4.0 hook driver - C:\WINDOWS\system32\drivers\inetdrv.sys - (running) - Sample NDIS 4.0 hook driver - - 3b84380a20c113fc5d3c0c84c0818cd0。
O41 - prodrv06 - StarForce Protection Environment Driver - C:\WINDOWS\system32\drivers\prodrv06.sys - (running) - StarForce Protection Environment Driver - StarForce Technologies, Inc. - 6c1f735ac47dd97369cba67400fe2d75。
O41 - prohlp02 - StarForce Protection Helper Driver - C:\WINDOWS\system32\drivers\prohlp02.sys - (running) - StarForce Protection Helper Driver - StarForce Technologies, Inc. - ca0193b2b57da95cc6310b833e1ee965。
O41 - prosync1 - StarForce Protection Synchronization Driver - C:\WINDOWS\system32\drivers\prosync1.sys - (running) - StarForce Protection Synchronization Driver - StarForce Technologies, Inc. - cc3d1bb199cbb576b0fbaaba626b6714。
O41 - sfhlp01 - StarForce Protection Helper Driver - C:\WINDOWS\system32\drivers\sfhlp01.sys - (running) - StarForce Protection Helper Driver - StarForce Technologies, Inc. - 95654a66531b8a198d0d5d153cc95f8e。
O41 - SNP2STD - USB2.0 PC Camera driver - C:\WINDOWS\system32\drivers\snp2sxp.sys - (running) - USB2.0 PC Camera driver - - 。
O41 - sptd - sptd - C:\WINDOWS\system32\drivers\sptd.sys - (running) - - - 。
O41 - XPROTECTOR - XPROTECTOR - C:\WINDOWS\system32\drivers\Xprotector.sys - (running) - - - e87ef942b225b23247db60de56f62c1c。
O41 - CSNPD51 - Colasoft NDIS 5.0 Protocol Driver - C:\WINDOWS\system32\drivers\CSNPD51.sys - (not running) - Colasoft NDIS 5.0 Protocol Driver - Colasoft Co., Ltd. - 7e1f065749df9f4fc10c5b4d411fa45a。
O41 - CSNPD51a64 - Colasoft NDIS 5.0 Protocol Driver (AMD64) - C:\WINDOWS\system32\drivers\CSNPD51a64.sys - (not running) - Colasoft NDIS 5.0 Protocol Driver (AMD64) - Colasoft Co., Ltd. - e61d0cbc26476f5a5d482681e00af42a。
O41 - CSTDIDRV - CSTDIDRV - C:\WINDOWS\System32\Drivers\CSTDI50.sys - (not running) - - - 。
O41 - NPF - NPF Driver - TME extensions - C:\WINDOWS\system32\drivers\npf.sys - (not running) - NPF Driver - TME extensions - Politecnico di Torino - f498c5c3399a60933196fc215ef074f9。
O41 - npkcrypt - npkcrypt - C:\WINDOWS\system32\npkcrypt.sys - (not running) - - - 。
O41 - npkycryp - npkycryp - C:\WINDOWS\system32\npkycryp.sys - (not running) - - - 。
=======================================。
360Safe.exe=3.5.2.1003。
AntiAdwa.dll=3.5.1.1001。
AntiEng.dll=3.5.2.1002。
AntiActi.dll=2.0.0.3000。
CleanHis.dll=3.0.2.1000。
safelive.exe=1.0.0.2007。
live.dll=1.0.1.1017。
=======================================。
操作历史报告:
----------清理恶评及系统插件历史----------。
2007-08-04 09:58。
清理恶评软件 - 网络实名 - 。
2007-07-14 13:52。
插件管理 - 迅雷浏览器高级特性支持模块 - D:\下载器\新版讯雷\ComDlls\TDAtOnce_Now.dll。
2007-07-14 14:42。
清理好评插件 - 金山快译工具栏 - 。
2007-08-04 09:56。
清理恶评插件 - 雅虎助手&上网助手 - 。
清理恶评插件 - 网络实名 - C:\Program Files\3721。
清理恶评插件 - 一搜工具条 - C:\Program Files\YiSou。
2007-08-06 17:24。
清理恶评插件 - 一搜工具条 - C:\Program Files\YiSou。
2007-08-30 13:41。
清理好评插件 - 我要地图 桌面版 - C:\Documents and Settings\All Users\「开始」菜单\程序\我要地图 桌面版。
----------全面诊断修复历史----------。
2007-07-14 14:46。
100 - 安全 - spoolsv.exe - C:\WINDOWS\system32\spoolsv.exe。
100 - 安全 - avp.exe - D:\卡巴斯基\avp.exe。
100 - 未知 - StarWindService.exe - D:\虚拟光驱\Alcohol 120\StarWind\StarWindService.exe。
100 - 未知 - TIMPlatform.exe - D:\2007版本\TIMPlatform.exe。
100 - 未知 - WgaTray.exe - C:\WINDOWS\system32\WgaTray.exe。
100 - 安全 - wuauclt.exe - C:\WINDOWS\system32\wuauclt.exe。
2007-07-14 14:46。
100 - 安全 - avp.exe - D:\卡巴斯基\avp.exe。
2007-07-14 14:46。
O4 - 安全 - kav - "D:\卡巴斯基\avp.exe"。
2007-07-14 14:46。
R1 - 安全 - IE用户指定空白页 - HKCU\Software\Microsoft\Internet Explorer\Main。
2007-07-14 14:47。
O8 - 未知 - &V使用Vagaa哇嘎下载 - D:\2007版本\flashshow\qqshow0\GIF\Data\vg.htm。
O8 - 未知 - 上传到QQ网络硬盘 - D:\2007版本\AddToNetDisk.htm。
O8 - 未知 - 使用迅雷下载全部链接 - D:\下载器\新版讯雷\Program\getallurl.htm。
O8 - 未知 - 添加到QQ自定义面板 - D:\2007版本\AddPanel.htm。
O8 - 未知 - 用QQ彩信发送该图片 - D:\2007版本\SendMMS.htm。
2007-07-14 14:47。
O16 - 安全 - 下载的ActiveX插件 - C:\WINDOWS\DOWNLO~1\SUBMIT~1.DLL。
O23 - 未知 - StarWindService - D:\虚拟光驱\Alcohol 120\StarWind\StarWindService.exe。
2007-07-14 14:47。
O23 - 未知 - StarWindService - D:\虚拟光驱\Alcohol 120\StarWind\StarWindService.exe。
2007-08-30 13:43。
100 - 安全 - spoolsv.exe - C:\WINDOWS\system32\spoolsv.exe。
100 - 安全 - realsched.exe - C:\Program Files\Common Files\Real\Update_OB\realsched.exe。
100 - 未知 - WgaTray.exe - C:\WINDOWS\system32\WgaTray.exe。
100 - 未知 - TIMPlatform.exe - D:\2007版本\TIMPlatform.exe。
100 - 未知 - Qzone.exe - D:\2007版本\Qzone\Qzone.exe。
O4 - 安全 - TkBellExe - "C:\Program Files\Common Files\Real\Update_OB\realsched.exe" -osboot。
O8 - 未知 - &V使用Vagaa哇嘎下载 - D:\2007版本\flashshow\qqshow0\GIF\Data\vg.htm。
O8 - 未知 - 使用Web迅雷下载全部链接 - D:\下载器\WEB讯雷\GetAllUrl.htm。
1.调度器的概述
多任务操作系统分为非抢占式多任务和抢占式多任务。与大多数现代操作系统一样,Linux采用的是抢占式多任务模式。这表示对CPU的占用时间由操作系统决定的,具体为操作系统中的调度器。调度器决定了什么时候停止一个进程以便让其他进程有机会运行,同时挑选出一个其他的进程开始运行。
2.调度策略
在Linux上调度策略决定了调度器是如何选择一个新进程的时间。调度策略与进程的类型有关,内核现有的调度策略如下:
#define SCHED_NORMAL 0#define SCHED_FIFO 1#define SCHED_RR 2#define SCHED_BATCH 3/* SCHED_ISO: reserved but not implemented yet */#define SCHED_IDLE 5。
0: 默认的调度策略,针对的是普通进程。
1:针对实时进程的先进先出调度。适合对时间性要求比较高但每次运行时间比较短的进程。
2:针对的是实时进程的时间片轮转调度。适合每次运行时间比较长得进程。
3:针对批处理进程的调度,适合那些非交互性且对cpu使用密集的进程。
SCHED_ISO:是内核的一个预留字段,目前还没有使用。
5:适用于优先级较低的后台进程。
注:每个进程的调度策略保存在进程描述符task_struct中的policy字段。
3.调度器中的机制
内核引入调度类(struct sched_class)说明了调度器应该具有哪些功能。内核中每种调度策略都有该调度类的一个实例。(比如:基于公平调度类为:fair_sched_class,基于实时进程的调度类实例为:rt_sched_class),该实例也是针对每种调度策略的具体实现。调度类封装了不同调度策略的具体实现,屏蔽了各种调度策略的细节实现。
调度器核心函数schedule()只需要调用调度类中的接口,完成进程的调度,完全不需要考虑调度策略的具体实现。调度类连接了调度函数和具体的调度策略。
武特师兄关于sche_class和sche_entity的解释,一语中的。
调度类就是代表的各种调度策略,调度实体就是调度单位,这个实体通常是一个进程,但是自从引入了cgroup后,这个调度实体可能就不是一个进程了,而是一个组。
4.schedule()函数
linux 支持两种类型的进程调度,实时进程和普通进程。实时进程采用SCHED_FIFO 和SCHED_RR调度策略,普通进程采用SCHED_NORMAL策略。
preempt_disable():禁止内核抢占。
cpu_rq():获取当前cpu对应的就绪队列。
prev = rq->curr;获取当前进程的描述符prev。
switch_count = &prev->nivcsw;获取当前进程的切换次数。
update_rq_clock() :更新就绪队列上的时钟。
clear_tsk_need_resched()清楚当前进程prev的重新调度标志。
deactive_task():将当前进程从就绪队列中删除。
put_prev_task() :将当前进程重新放入就绪队列。
pick_next_task():在就绪队列中挑选下一个将被执行的进程。
context_switch():进行prev和next两个进程的切换。具体的切换代码与体系架构有关,在switch_to()中通过一段汇编代码实现。
post_schedule():进行进程切换后的后期处理工作。
5.pick_next_task函数。
选择下一个将要被执行的进程无疑是一个很重要的过程,我们来看一下内核中代码的实现。
对以下这段代码说明:
1.当rq中的运行队列的个数(nr_running)和cfs中的nr_runing相等的时候,表示现在所有的都是普通进程,这时候就会调用cfs算法中的pick_next_task(其实是pick_next_task_fair函数),当不相等的时候,则调用sched_class_highest(这是一个宏,指向的是实时进程),这下面的这个for(;;)循环中,首先是会在实时进程中选取要调度的程序(p = class->pick_next_task(rq);)。如果没有选取到,会执行class=class->next;在class这个链表中有三种类型(fair,idle,rt).也就是说会调用到下一个调度类。
static inline struct task_struct *pick_next_task(struct rq *rq){ const struct sched_class *class; struct task_struct *p; /*。
* Optimization: we know that if all tasks are in。
* the fair class we can call that function directly:。
*///基于公平调度的普通进程。
if (likely(rq->nr_running == rq->cfs.nr_running)) {。
p = fair_sched_class.pick_next_task(rq); if (likely(p)) return p;。
}//基于实时调度的实时进程。
class = sched_class_highest; for ( ; ; ) {。
p = class->pick_next_task(rq); //实时进程的类。
if (p) return p; /*。
* Will never be NULL as the idle class always。
* returns a non-NULL p:。
*/
class = class->next; //rt->next = fair; fair->next = idle。
}
在这段代码中体现了Linux所支持的两种类型的进程,实时进程和普通进程。回顾下:实时进程可以采用SCHED_FIFO 和SCHED_RR调度策略,普通进程采用SCHED_NORMAL调度策略。
在这里首先说明一个结构体struct rq,这个结构体是调度器管理可运行状态进程的最主要的数据结构。每个cpu上都有一个可运行的就绪队列。刚才在pick_next_task函数中看到了在选择下一个将要被执行的进程时实际上用的是struct rq上的普通进程的调度或者实时进程的调度,那么具体是如何调度的呢?在实时调度中,为了实现O(1)的调度算法,内核为每个优先级维护一个运行队列和一个DECLARE_BITMAP,内核根据DECLARE_BITMAP的bit数值找出非空的最高级优先队列的编号,从而可以从非空的最高级优先队列中取出进程进行运行。
我们来看下内核的实现
struct rt_prio_array {。
DECLARE_BITMAP(bitmap, MAX_RT_PRIO+1); /* include 1 bit for delimiter */。
struct list_head queue[MAX_RT_PRIO];。
};
数组queue[i]里面存放的是优先级为i的进程队列的链表头。在结构体rt_prio_array 中有一个重要的数据构DECLARE_BITMAP,它在内核中的第一如下:
define DECLARE_BITMAP(name,bits) \。
unsigned long name[BITS_TO_LONGS(bits)]。
5.1对于实时进程的O(1)算法。
这个数据是用来作为进程队列queue[MAX_PRIO]的索引位图。bitmap中的每一位与queue[i]对应,当queue[i]的进程队列不为空时,Bitmap的相应位就为1,否则为0,这样就只需要通过汇编指令从进程优先级由高到低的方向找到第一个为1的位置,则这个位置就是就绪队列中最高的优先级(函数sched_find_first_bit()就是用来实现该目的的)。那么queue[index]->next就是要找的候选进程。
如果还是不懂,那就来看两个图
注:在每个队列上的任务一般基于先进先出的原则进行调度(并且为每个进程分配时间片)
在内核中的实现为:
static struct sched_rt_entity *pick_next_rt_entity(struct rq *rq, struct rt_rq *rt_rq){ struct rt_prio_array *array = &rt_rq->active; struct sched_rt_entity *next = NULL; struct list_head *queue; int idx;。
idx = sched_find_first_bit(array->bitmap); //找到优先级最高的位。
BUG_ON(idx >= MAX_RT_PRIO); queue = array->queue + idx; //然后找到对应的queue的起始地址。
next = list_entry(queue->next, struct sched_rt_entity, run_list); //按先进先出拿任务。
return next;。
那么当同一优先级的任务比较多的时候,内核会根据。
位图:
将对应的位置为1,每次取出最大的被置为1的位,表示优先级最高:
5.2 关于普通进程的CFS算法:
我们知道,普通进程在选取下一个需要被调度的进程时,是调用的pick_next_task_fair函数。在这个函数中是以调度实体为单位进行调度的。其最主要的函数是:pick_next_entity,在这个函数中会调用wakeup_preempt_entity函数,这个函数的主要作用是根据进程的虚拟时间以及权重的结算进程的粒度,以判断其是否需要抢占。看一下内核是怎么实现的:
wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se)。
s64 gran, vdiff = curr->vruntime - se->vruntime;//计算两个虚拟时间差//如果se的虚拟时间比curr还大,说明本该curr执行,无需抢占。
if (vdiff <= 0) return -1;。
gran = wakeup_gran(curr, se); if (vdiff > gran) return 1; return 0;。
gran为需要抢占的时间差,只有两个时间差大于需要抢占的时间差,才需要抢占,这里避免太频繁的抢占。
wakeup_gran(struct sched_entity *curr, struct sched_entity *se)。
unsigned long gran = sysctl_sched_wakeup_granularity; if (cfs_rq_of(curr)->curr && sched_feat(ADAPTIVE_GRAN))。
gran = adaptive_gran(curr, se);。
/*
* Since its curr running now, convert the gran from real-time。
* to virtual-time in his units.。
*/ if (sched_feat(ASYM_GRAN)) {。
/*
* By using 'se' instead of 'curr' we penalize light tasks, so。
* they get preempted easier. That is, if 'se' < 'curr' then。
* the resulting gran will be larger, therefore penalizing the。
* lighter, if otoh 'se' > 'curr' then the resulting gran will。
* be smaller, again penalizing the lighter task.。
*
* This is especially important for buddies when the leftmost。
* task is higher priority than the buddy.。
*/ if (unlikely(se->load.weight != NICE_0_LOAD))。
gran = calc_delta_fair(gran, se);。
} else { if (unlikely(curr->load.weight != NICE_0_LOAD))。
gran = calc_delta_fair(gran, curr);。
} return gran;。
6.调度中的nice值
首先需要明确的是:nice的值不是进程的优先级,他们不是一个概念,但是进程的Nice值会影响到进程的优先级的变化。
通过命令ps -el可以看到进程的nice值为NI列。PRI表示的是进程的优先级,其实进程的优先级只是一个整数,它是调度器选择进程运行的基础。
普通进程有:静态优先级和动态优先级。
静态优先级:之所有称为静态优先级是因为它不会随着时间而改变,内核不会修改它,只能通过系统调用nice去修改,静态优先级用进程描述符中的static_prio来表示。在内核中/kernel/sched.c中,nice和静态优先级的关系为:
#define NICE_TO_PRIO(nice) (MAX_RT_PRIO + (nice) + 20)。
#define PRIO_TO_NICE(prio) ((prio) - MAX_RT_PRIO - 20)。
动态优先级:调度程序通过增加或者减小进程静态优先级的值来奖励IO小的进程或者惩罚cpu消耗型的进程。调整后的优先级称为动态优先级。在进程描述中用prio来表示,通常所说的优先级指的是动态优先级。
由上面分析可知,我们可以通过系统调用nice函数来改变进程的优先级。
#include <stdlib.h>#include <stdio.h>#include <math.h>#include <unistd.h>#include <sys/time.h>#define JMAX (400*100000)#define GET_ELAPSED_TIME(tv1,tv2) ( \。
(double)( (tv2.tv_sec - tv1.tv_sec) \。
+ .000001 * (tv2.tv_usec - tv1.tv_usec)))//做一个延迟的计算double do_something (void){ int j; double x = 0.0; struct timeval tv1, tv2;。
gettimeofday (&tv1, NULL);//获取时区。
for (j = 0; j < JMAX; j++)。
x += 1.0 / (exp ((1 + x * x) / (2 + x * x)));。
gettimeofday (&tv2, NULL); return GET_ELAPSED_TIME (tv1, tv2);//求差值}int main (int argc, char *argv[]){ int niceval = 0, nsched; /* for kernels less than 2.6.21, this is HZ。
for tickless kernels this must be the MHZ rate。
e.g, for 2.6 GZ scale = 2600000000 */。
long scale = 1000; long ticks_cpu, ticks_sleep; pid_t pid;。
FILE *fp; char fname[256]; double elapsed_time, timeslice, t_cpu, t_sleep; if (argc > 1)。
niceval = atoi (argv[1]);。
pid = getpid (); if (argc > 2)。
scale = atoi (argv[2]); /* give a chance for other tasks to queue up */。
sleep (3); sprintf (fname, "/proc/%d/schedstat", pid);//读取进程的调度状态。
/*
在schedstat中的数字是什么意思呢?:
*/
/* printf ("Fname = %s\n", fname); */。
if (!(fp = fopen (fname, "r"))) { printf ("Failed to open stat file\n"); exit (-1);。
} //nice系统调用。
if (nice (niceval) == -1 && niceval != -1) { printf ("Failed to set nice to %d\n", niceval); exit (-1);。
}
elapsed_time = do_something ();//for 循环执行了多长时间。
fscanf (fp, "%ld %ld %d", &ticks_cpu, &ticks_sleep, &nsched);//nsched表示调度的次数。
t_cpu = (float)ticks_cpu / scale;//震动的次数除以1000,就是时间。
t_sleep = (float)ticks_sleep / scale;。
timeslice = t_cpu / (double)nsched;//除以调度的次数,就是每次调度的时间(时间片)
printf ("\nnice=%3d time=%8g secs pid=%5d"。
" t_cpu=%8g t_sleep=%8g nsched=%5d"。
" avg timeslice = %8g\n",。
niceval, elapsed_time, pid, t_cpu, t_sleep, nsched, timeslice);。
fclose (fp); exit (0);。
说明: 首先说明的是/proc/[pid]/schedstat:在这个文件下放着3个变量,他们分别代表什么意思呢?
第一个:该进程拥有的cpu的时间。
第二个:在对列上的等待时间,即睡眠时间。
第三个:被调度的次数
由结果可以看出当nice的值越小的时候,其睡眠时间越短,则表示其优先级升高了。
7.关于获取和设置优先级的系统调用:sched_getscheduler()和sched_setscheduler。
#include <sched.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#define DEATH(mess) { perror(mess); exit(errno); }void printpolicy (int policy){ /* SCHED_NORMAL = SCHED_OTHER in user-space */。
if (policy == SCHED_OTHER) printf ("policy = SCHED_OTHER = %d\n", policy); if (policy == SCHED_FIFO) printf ("policy = SCHED_FIFO = %d\n", policy); if (policy == SCHED_RR) printf ("policy = SCHED_RR = %d\n", policy);。
}int main (int argc, char **argv){ int policy; struct sched_param p; /* obtain current scheduling policy for this process */。
//获取进程调度的策略
policy = sched_getscheduler (0);。
printpolicy (policy); /* reset scheduling policy */。
printf ("\nTrying sched_setscheduler...\n");。
policy = SCHED_FIFO;。
printpolicy (policy);。
p.sched_priority = 50; //设置优先级为50。
if (sched_setscheduler (0, policy, &p))。
DEATH ("sched_setscheduler:"); printf ("p.sched_priority = %d\n", p.sched_priority); exit (0);。
输出结果:
[root@wang schedule]# ./get_schedule_policy policy = SCHED_OTHER = 0。
Trying sched_setscheduler...。
policy = SCHED_FIFO = 1。
p.sched_priority = 50。
可以看出进程的优先级已经被改变。
能是CPU风扇散热不好,温度过高了。
也可能是有木马了,建议从做下系统 ,你的系统装完之后都遇到待机,CPU使用率那么高,敢问你的物理内存使用率多少。
感觉是系统问题。
WinXP中CPU占用100%原因及解决方法 。
我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看“任务管理器”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在本文中笔者将从硬件,软件和病毒三个方面来讲解系统资源占用率为什么会达到100%。
经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: 。
CPU占用率高的九种可能 。
1、防杀毒软件造成故障
由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。
2、驱动没有经过认证,造成CPU资源占用100% 。
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。
3、病毒、木马造成
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和_blank">防火墙,加强防毒意识,掌握正确的防杀毒知识。
4、控制面板―管理工具―服务―RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。
5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。
6、查看“svchost”进程。
svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。
7、查看网络连接。主要是网卡。
8、查看网络连接
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。
要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出: 。
如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。
9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 。
前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事?
征兆:
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 。
任何文件的拷贝操作在那个时间将有可能停止相应 。
网络连接速度将显著性的降低 。
所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因: 。
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。
解决方法:
方法一:关闭“为菜单和工具提示使用过渡效果”
1、点击“开始”--“控制面板”
2、在“控制面板”里面双击“显示”
3、在“显示”属性里面点击“外观”标签页 。
4、在“外观”标签页里面点击“效果”
5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。
方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。
CPU占用100%解决办法 。
一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了。
当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者baidu搜。有时只结束是没用的,在xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。
一些常用的软件,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该.exe文件选兼容性。
svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:Windowssystem32(xp)或c:winntsystem32(2000)下的,那就可疑。升级杀毒软件杀毒吧。
右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以关闭杀毒软件的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。
一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。
CPU降温软件,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。
在处理较大的word文件时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。
单击avi视频文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。
CPU占用100%案例分析 。
1、dllhost进程造成CPU使用率占用100% 。
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
解决办法:
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,
启用”查找死锁模块”,设置: 。
--wblock=yes 。
监控的目录,请指定您的主机的文件所在目录: 。
--wblockdir=d: est 。
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm 。
停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。
过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。
找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。
2、svchost.exe造成CPU使用率占用100% 。
在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。
在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”下的Explorer 键值改为Explorer=“C:Windowsexpiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY-USERS****SoftwareMicrosoftWindowsCurrentVersionRun”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。
当感染一台服务器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,这就给捕捉带来了较大难度。
程序的文件名,再在整个注册表中搜索即可。
我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。
svchost.exe到底是做什幺用的呢? 。
首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢? 。
svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。
svchost.exe是病毒这种说法是任何产生的呢? 。
因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。
如何才能辨别哪些是正常的svchost.exe进程,而哪些是病毒进程呢? 。
svchost.exe的键值是在“HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。
微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:WindowsSystem32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。
还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。
上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。
3、Services.exe造成CPU使用率占用100% 。
症状
在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。
解决方案
Service Pack 信息 。
要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 。
260910 如何获取最新的 Windows 2000 Service Pack 。
修复程序信息
Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。
要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点: 。
注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。
下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。
4、正常软件造成CPU使用率占用100% 。
首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。
如果是使用电脑途中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。
5、病毒、木马、间谍软件造成CPU使用率占用100% 。
出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad―Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒的表现。
svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。
6、explorer.exe进程造成CPU使用率占用100% 。
在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”下的 。
Explorer 键值改为Explorer=“C:Windowsexpiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY-USERS****SoftwareMicrosoftWindowsCurrentVersionRun”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
7、超线程导致CPU使用率占用100% 。
这类故障的共同原因就是都使用了具有超线程功能的P4 CPU。我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天网_blank">防火墙有冲突,可以通过卸载天网并安装其它_blank">防火墙解决,也可以通过在BIOS中关闭超线程功能解决。
8、AVI视频文件造成CPU使用率占用100% 。
在Windows XP中,单击一个较大的AVI视频文件后,可能会出现系统假死现象,并且造成exploere.exe进程的使用率100%,这是因为系统要先扫描该文件,并检查文件所有部分,建立索引。如果文件较大就会需要较长时间并造成CPU占用率100%。解决方法:右键单击保存视频文件的文件夹,选择”属性―>常规―>高级“,去掉”为了快速搜索,允许索引服务编制该文件夹的索引“前面复选框的对钩即可。
9、杀毒软件CPU使用率占用100% 。
现在的杀毒软件一般都加入了,对网页、邮件、个人隐私的即时监空功能,这样无疑会加大系统的负担。比如:在玩游戏的时候,会非常缓慢。关闭该杀毒软件是解决得最直接办法。
10、处理较大的Word文件时CPU使用率过高 。
上述问题一般还会造成电脑假死,这些都是因为WORD的拼写和语法检查造成的,只要打开WORD的“工具―选项”,进入“拼写和语法”选项卡,将其中的“键入时检查拼写”和“键入时检查语法”两项前面的复选框中的钩去掉即可。
11、网络连接导致CPU使用率占用100% 。
当你的Windows2000/xp作为服务器时,收到来自端口445上的连接请求后,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。要解决这个问题可以通过修改注册表来解决,打开注册表,找到HKEY―LOCAL―MACHNESYSTEMCurrentControlSetServiceslanmanserver,在右面新建一个名为";maxworkitems";的DWORD值.然后双击该值,如果你的电脑有512以上内存,就设置为";1024";,如果小于512,就设置为256. 。
一些不完善的驱动程序也可以造成CPU使用率过高 。
经常使用待机功能,也会造成系统自动关闭硬盘DMA模式。这不仅会使系统性能大幅度下降,系统启动速度变慢,也会使是系统在运行一些大型软件和游戏时CPU使用率100%,产生停顿。
进程占用CPU 100%时可能中的病毒 。
system Idle Process 。
进程文件: [system process] or [system process] 。
进程名称: Windows内存处理系统进程 。
描 述: Windows页面内存管理进程,拥有0级优先。
介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。它的CPU占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。
Spoolsv.exe
进程文件: spoolsv or Spoolsv.exe 。
进程名称: Printer Spooler Service 。
描 述: Windows打印任务控制程序,用以打印机就绪。
介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
Spoolsv.exe→打印任务控制程序,一般会先加载以供列表机打印前的准备工作 。
Spoolsv.exe,如果常增高,有可能是病毒感染所致 。
目前常见的是:
Backdoor/Byshell(又叫隐形大盗、隐形杀手、西门庆病毒) 。
危害程度:中
受影响的系统: Windows 2000, Windows XP, Windows Server 2003 。
未受影响的系统: Windows 95, Windows 98, Windows Me, Windows NT, Windows 3.x, Macintosh, Unix, Linux,
病毒危害:
1. 生成病毒文件
2. 插入正常系统文件中 。
3. 修改系统注册表
4. 可被黑客远程控制
5. 躲避反病毒软件的查杀 。
简单的后门木马,发作会删除自身程序,但将自身程序套入可执行程序内(如:exe),并与计算机的通口(TCP端口138)挂钩,监控计算机的信息、密码,甚至是键盘操作,作为回传的信息,并不时驱动端口,以等候传进的命令,由于该木马不能判别何者是正确的端口,所以负责输出的列表机也是其驱动对象,以致Spoolsv.exe的使用异常频繁...... 。
Backdoor.Win32.Plutor 。
破坏方法:感染PE文件的后门程序 。
病毒采用VC编写。