首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
1
0
[讨论]关于自旋锁的问题
发表于: 2014-6-6 08:57
3819
[讨论]关于自旋锁的问题
xddhy
2014-6-6 08:57
3819
看自旋锁有些疑问
1、在单cpu上,是不是raise irql到dispatch 就可以实现自旋锁的效果了?
2、在多cpu上,才有自旋等待的概念?
3、自旋锁的实质就是电脑只做一件事(先不考虑硬件中断)?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
收藏
・
1
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
5
)
layerfsd
雪 币:
8188
活跃值:
(2857)
能力值:
( LV9,RANK:180 )
在线值:
发帖
14
回帖
284
粉丝
6
关注
私信
layerfsd
4
2
楼
mj说,别人都不和你旋,你自己旋个头啊。。
2014-6-6 09:05
0
AntiPsycho
雪 币:
0
活跃值:
(756)
能力值:
( LV3,RANK:20 )
在线值:
发帖
11
回帖
75
粉丝
0
关注
私信
AntiPsycho
3
楼
请楼主问问题之前先baidu、google、bing一下
1-2:来自百度百科(自旋锁)
自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,即在标志寄存器中关闭/打开中断标志位,不需要自旋锁)。
3:
锁 首先是为了抢夺资源、抢到某锁等于抢到使用资源
抢不到锁的时候就要等待、等待也有不同的方式:
比如像等待分发对象、就是让等待者被动的接收完成通知
自旋锁则是不断地主动的去询问完成状态。
具体你自己看看《Windows内核情景分析》 和 WRK源码就好了
2014-6-6 09:50
0
sidyhe
雪 币:
2161
活跃值:
(750)
能力值:
( LV7,RANK:100 )
在线值:
发帖
16
回帖
339
粉丝
9
关注
私信
sidyhe
1
4
楼
1.是
2.是
3.是
首先,自旋锁会提高IRQL,防止被中断(包括线程切换),即一直占有CPU
然后访问锁,如果锁已经被锁定(即其他CPU在占用锁),则一直等待,直到锁被释放
---
概括来说自旋锁的出现是为了解决多核CPU(多线程)访问临界区的一种手段,保证操作的原子性。
2014-6-6 10:10
0
xddhy
雪 币:
42
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
7
回帖
47
粉丝
0
关注
私信
xddhy
5
楼
谢谢大家,我在网上查了不少,但很多说法含糊不清,甚至错误,所以让我有点迷惑,才来问的。
关键是这一点,我明白了:其他同步控制,是等待那个同步对象的线程才阻塞,而自旋锁是其他的线程全部停来下了,本cpu的其他线程不会运行,其他cpu的线程不断自旋中。
2014-6-6 11:14
0
fatecaster
雪 币:
135
活跃值:
(63)
能力值:
( LV5,RANK:60 )
在线值:
发帖
39
回帖
314
粉丝
0
关注
私信
fatecaster
1
6
楼
自旋锁提升到DpcLevel,可以中断吧,最后只是不会线程调度。
2014-6-6 11:26
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
xddhy
7
发帖
47
回帖
10
RANK
关注
私信
他的文章
[求助]apc执行的问题
2627
[求助]关于驱动的一个问题
3307
[求助]关于dipatch level
3832
[讨论]关于startio的问题
2540
[讨论]还是关于自旋锁的问题
2575
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部