alphapiao
驱动小牛
驱动小牛
  • 注册日期2002-06-21
  • 最后登录2011-05-04
  • 粉丝0
  • 关注0
  • 积分1004分
  • 威望155点
  • 贡献值0点
  • 好评度109点
  • 原创分1分
  • 专家分0分
阅读:1547回复:8

关于驱动可重入性

楼主#
更多 发布于:2004-06-18 14:36
驱动的可重入性
1.一般书上都说在多CPU的情况下,驱动程序的某一部份可能在多个CPU上同时运行,这时对共享内存区需要同步.但我的理解是,在单CPU的机器上,同样有可能同一个例程被先后执行,也就是说一个线程调用了A例程还没有完成时,另一个线程也调用A例程了,这时也需要对共享内存区进行同步.是不是这样?
2.SPIN_LOCK是用来处理同步的,它MUTEX,EVENT有什么区别?
我的博客:xpddk.bokee.com
alphapiao
驱动小牛
驱动小牛
  • 注册日期2002-06-21
  • 最后登录2011-05-04
  • 粉丝0
  • 关注0
  • 积分1004分
  • 威望155点
  • 贡献值0点
  • 好评度109点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-06-22 18:09
没有人回答吗
附件名称/大小 下载次数 最后更新
2004-06-22_TcpReceiver.rar (69KB)  11
我的博客:xpddk.bokee.com
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-06-22 20:19
1、是
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
地板#
发布于:2004-06-23 08:39
SPIN_LOCK可以用于多CPU同步
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-23 09:18
是的,需要同步。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
ananda2002
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-23 15:27
spinlock在单cpu和多cpu下的实现有什么不同吗?感觉最好不要
spinlock太久
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
6楼#
发布于:2004-06-24 08:23
spinlock在单cpu和多cpu下的实现有什么不同吗?感觉最好不要
spinlock太久


spinlock在单cpu下只是简单的将IRQL提高
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
alphapiao
驱动小牛
驱动小牛
  • 注册日期2002-06-21
  • 最后登录2011-05-04
  • 粉丝0
  • 关注0
  • 积分1004分
  • 威望155点
  • 贡献值0点
  • 好评度109点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2004-06-24 09:10
spinlock在单cpu下只是简单的将IRQL提高

那么在单cpu下用来处理同步不行了?


我的博客:xpddk.bokee.com
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
8楼#
发布于:2004-06-24 09:14
spinlock在单cpu下只是简单的将IRQL提高

那么在单cpu下用来处理同步不行了?


 

spinlock在单cpu下只是简单的将IRQL提高到DISPATCH_LEVEL,在DISPATCH_LEVEL下,线程调度停止,只有更高级别的线程,一般是中断服务例程,才可以中断它,所以也能达到同步的目的。 :)
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
游客

返回顶部