阅读:1547回复:8
关于驱动可重入性
驱动的可重入性
1.一般书上都说在多CPU的情况下,驱动程序的某一部份可能在多个CPU上同时运行,这时对共享内存区需要同步.但我的理解是,在单CPU的机器上,同样有可能同一个例程被先后执行,也就是说一个线程调用了A例程还没有完成时,另一个线程也调用A例程了,这时也需要对共享内存区进行同步.是不是这样? 2.SPIN_LOCK是用来处理同步的,它MUTEX,EVENT有什么区别? |
|
|
沙发#
发布于:2004-06-22 18:09
没有人回答吗
|
|
|
板凳#
发布于:2004-06-22 20:19
1、是
|
|
地板#
发布于:2004-06-23 08:39
SPIN_LOCK可以用于多CPU同步
|
|
|
地下室#
发布于:2004-06-23 09:18
是的,需要同步。
|
|
|
5楼#
发布于:2004-06-23 15:27
spinlock在单cpu和多cpu下的实现有什么不同吗?感觉最好不要
spinlock太久 |
|
6楼#
发布于:2004-06-24 08:23
spinlock在单cpu和多cpu下的实现有什么不同吗?感觉最好不要 spinlock在单cpu下只是简单的将IRQL提高 |
|
|
7楼#
发布于:2004-06-24 09:10
spinlock在单cpu下只是简单的将IRQL提高
那么在单cpu下用来处理同步不行了? |
|
|
8楼#
发布于:2004-06-24 09:14
spinlock在单cpu下只是简单的将IRQL提高 spinlock在单cpu下只是简单的将IRQL提高到DISPATCH_LEVEL,在DISPATCH_LEVEL下,线程调度停止,只有更高级别的线程,一般是中断服务例程,才可以中断它,所以也能达到同步的目的。 :) |
|
|