请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

自选锁问题

老师好,自旋锁加锁和解锁执行的指令不是TSL就是XCHG,我理解您说的一直霸占着CPU,是不是当一个进程(线程)已经进入临界区了,其他线程想进入,它就会一直尝试执行TSL指令或是XCHG对临界区加锁,而这俩个指令操作是需要锁住总线的,这样控制内存传输线路都被锁上了那其他进程就啥也不能做了,所以导致自旋锁一直霸占CPU的情况(单核情况下)

正在回答 回答被采纳积分+3

1回答

咚咚呛 2022-08-14 23:39:50

点赞,同学对CPU指令都有所了解。

TSL指令是指"测试并上锁",XCHG指令是指"两个寄存器数据交换",对于CPU来说是原子的指令,在上层我们可以利用这些指令来实现一些无锁的数据结构;自旋锁本质上就是就这样的指令实现的一种锁机制,可以有不同的实现,但都是大同小异的。

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号