请教一个有关自旋锁的问题
时间:2010-07-24
来源:互联网
所以说是不是这个内核线程所在的处理器就不会发生进程调度了?
还是说这个内核线程所在进程的时间片用光了,这个处理器上依然会发生进程的调度?
作者: superhappy1 发布时间: 2010-07-24
作者: linux初学三月 发布时间: 2010-07-24
持锁的间隔要短
否则对系统性能影响较大
作者: openspace 发布时间: 2010-07-24
另外,按照他的说法,我觉得即使是抢占式的单处理器系统也会永远自旋下去的,因为自旋锁在获取锁时首先会禁止抢占。
作者: superhappy1 发布时间: 2010-07-24
CPU0在申请spin锁的时候关闭了本CPU的中断,关闭了系统的进程抢占。
所以如果没有其他CPU没有释放锁,那么本CPU一直在自旋,即时时间片用完了,它也等在那里,只是它的状态被修改为需要调度的状态,所以当获得锁,执行锁中间的代码,释放锁后,他会立即被调度程序从CPU中卸下。因为释放锁的时候,已经开启了中断与调度。
作者: new_new_one 发布时间: 2010-07-24
superhappy1 发表于 2010-07-24 11:50
这里你要知道单CPU与多CPU的区别,单CPU就只能执行一条指令序列,也就是当前进程,而当期进程正在自旋等待其他进程释放锁,由于只有1个CPU,而且关闭了中断,关闭了调度,这个CPU不可能执行其他进程,所以其他进程不可能释放锁,于是改进程就一直等下去了。。。
作者: new_new_one 发布时间: 2010-07-24
作者: superhappy1 发布时间: 2010-07-24
preempt_disbale()这个函数,执行的时候即关了抢占,有关了调度。
作者: new_new_one 发布时间: 2010-07-24
作者: unbutun 发布时间: 2010-07-24
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28