阅读:1079回复:1
自旋锁的问题
关于自旋锁还存在着一个不太明显但很重要的事实:你仅能在低于或等于DISPATCH_LEVEL级上请求自旋锁,在你拥有自旋锁期间,内核将把你的代码提升到DISPATCH_LEVEL级上运行。在内部,内核能在高于DISPATCH_LEVEL的级上获取自旋锁,但你和我都做不到这一点。
――Walter Oney 上面的话是Walter Oney在《Programming the Microsoft windows driver model》中对自旋锁的一段描述,但是我的问题是,如果在中断服务程序里要访问被自旋锁保护的数据该怎么办??(是不是在中断服务程序里如果请求自旋锁就会把中断程序从DIRQL降到DISPATCH_LEVEL上去??) 问题是: 中断程序里怎么访问被自旋锁保护的数据? |
|
|
沙发#
发布于:2002-07-04 21:29
ISR有中断自旋锁,如果你自己需要,可以自己实现自旋锁,原理很简单,就是test-and-set.
|
|