自旋锁

自旋锁 本来就只是一个很简单的同步机制 ,在SMP 之前根本就没这个东西,一切 都是Event 之类的同步机制,这类同步 机制都有一个共性就是 一旦资源被占用 都会产生任务切换, 任务切换涉及很多东西的(保存原来的上下文,按调度算法选择 新的任务,恢 新任务的上下文,还有就是要修改cr3寄存器会导致cache失效)这些都是需要大量时间的,因此用Event之类来同步一旦涉及到阻塞代价是十分昂贵的
比如 我用一个Event 来控制 2行代码的原子操作  这个时候一个CPU正在执行这个代码   另一个CPU也要进入  另一个CPU就会产生任务切换  为了短短的两行代码 就进行任务切换执行大量的代码   对系统性能不利 另一个CPU还不如 直接有条件的死循环 等待那个CPU把那两行代码执行完

这也就是为什么自旋锁 要调整运行级别  因为另一个CPU可能在死循环不干活  自己必须快点执行完  要快点执行完  就必须保证自己的原子性  因此提高权限关闭中断是必须的



自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在 进程上下文使用,而自旋锁适合于保持时间非常短的情况,它可以在任何上下文使用。如果被保护的共享资源只在进程上下文访问,使用信号量保护该共享资源非常合适,如果对共享资源的访问时间非常短,自旋锁也可以。但是如果被保护的共享资源需要在中断上下文访问(包括底半部即 中断处理句柄和顶半部即 软中断),就必须使用自旋锁。自旋锁保持期间是抢占失效的,而信号量和读写信号量保持期间是可以被抢占的。自旋锁只有在 内核可抢占或 SMP(多处理器)的情况下才真正需要,在单CPU且不可抢占的内核下,自旋锁的所有操作都是空操作。


作者:linxer。  『加壳与脱壳』 版主

2009-02-16 0.20版本: 1.支持windows 7(由于win7还处于beta阶段,我也不知道它的确切Build号,现在默认大于6900是win7,目前程序可以在Build:7000的系统上正常运行) 2.加入数字签名,进程部分右键菜单--->查找没有数字签名的模块,会扫描系统中所有进程的模块 3.线程部分也有点改动,加了线程入口所在模块 4.防了消息钩子模块对XueTr的注入(可能会导致一些美化的系统中,XueTr的界面变丑,暂时不想处理这个问题了),另目前无法防止App_Inits模块的注入,这个暂时不想加了(加这个需要大改动,以后有时间会考虑) 5.对抗伪进程Id 6.XueTr启动的时候,会检测是否有线程注入到XueTr,并给出提示 7.内核模块部分,对有对应服务的,显示的时候会显示出其服务名 8.还修改了几个Bug,不表 2009-02-05 0.19版本: 1.新支持对exFAT文件系统的解析 2.新增了结束进程时候删除进程文件 3.对一些有文件全路径的地方,增添了文件厂商属性 2009-02-02 0.18版本:(本版更新纯是为了解决系统挂机Bug而临时升级的一个版本) 1.增强了启动项检测 2.进程部分右键菜单增加了查找进程模块功能 3.解决了内核模块检测部分的误报可疑驱动对象Bug(感谢dl123100指出) 4.解决了程序非正常结束,下一次启动系统死掉Bug(感谢dl123100和angel13th指出) 2009-01-30 0.17版本: 1.增加了卸载消息钩子 2.增加了枚举窗口,和对窗口的操作 3.增加了禁止待机、注销、关机和重启功能 2009-01-26 0.16版本: 1.界面语言自适应(在中文操作系统上是中文,其它操作系统是英文) 2.注册表部分引入了Hive分析,默认是不开启,如果要使用可以用"使用Hive分析"菜单,选择了这个就不会用驱动获取注册表了 3.加了自我保护 4.增加禁止创建进程、线程、文件以及禁止加载模块和消息钩子模块注入功能 5.改了几个界面的小问题,我的界面写作能力很菜,不表了 6.还增强了下内核模块钩子检测(还有提升空间,不想搞了) 2009-01-17 0.15版本: 1.进程部分,加入了挂起、恢复进程(线程)功能 2.文件部分加入了NTFS、FAT32、FAT16文件磁盘解析,本功能默认开启,可以用"开启物理磁盘分析"菜单关闭 2009-01-06 0.14版本: 1.新增ObjectType Hook检测功能(这个功能的实现参考了sudami写的文章,感激) 2.修正无法列举移动存储介质(U盘等)里的文件bug(感谢annybaby指出) 3.修正File和Rigister显示界面,当多次最小化最大化后,树形控件宽度逐渐变窄bug(感谢li58指出) 2009-01-02 0.13版本: 1.调整界面 2.新增操作IE插件、SPI、启动项、服务、映像劫持、Host文件等功能 3.修正一处filter显示bug(感谢dl123100指出) 2008-12-22 0.12版本: 1.解决在装有微点机器下全是白板的问题 2008-12-11 0.11版本: 1.修正有些机器全是白板问题
Linxer大牛在XueTr源码基础上重新开发了PC Hunter,支持Win8和X64,本次更新新增了十几处检测。分为免费版和收费版。 于2013年1月24日发布1.0免费版本。 在其微博上表示是购买了微软数字签名证书,并不是之前传言的0day。 本工具目前初步实现如下功能: 1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能 2.内核驱动模块查看,支持内核驱动模块的内存拷贝 3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hook和inline hook 4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除 5.端口信息查看,暂时不支持2000系统 6.查看消息钩子 7.内核模块的iat、eat、inline hook、patches检测和恢复 8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除 9.注册表编辑 10.进程iat、eat、inline hook、patches检测和恢复 11.文件系统查看,支持基本的文件操作 12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME 13.ObjectType Hook检测和恢复 14.DPC定时器检测和删除 15.MBR Rootkit检测和修复 16.内核对象劫持检测 17.WorkerThread枚举 免费版更新列表: 1.基于XueTr源码重新开发而来,应该超越了XueTr。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值