社区
Linux_Kernel
帖子详情
单条汇编语句是否可能因线程切换而被打断?
nekeyu606
2006-08-24 05:47:45
...
mov 0x1,%eax
mov 0x0,%ebx
...
线程是否可能在汇编语句执行中被切换出去?
好像一个mov需要4个时钟周期,线程是否可能在这4个时钟周期中给切换走?
linux切换点是怎么选取的?
...全文
514
7
打赏
收藏
单条汇编语句是否可能因线程切换而被打断?
... mov 0x1,%eax mov 0x0,%ebx ... 线程是否可能在汇编语句执行中被切换出去? 好像一个mov需要4个时钟周期,线程是否可能在这4个时钟周期中给切换走? linux切换点是怎么选取的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superwiles
2006-09-14
打赏
举报
回复
看你怎么赋值了,简单的直接赋值是有可能被打断的,所以必须使用
(*(unsigned long *)&jiffiers)++,
SMP下 一个汇编指令并不一定就是原子的。
tkit
2006-09-12
打赏
举报
回复
非对齐的内存访问也有问题,除非显示的加LOCK前缀,否则中断可以发生
slone
2006-09-04
打赏
举报
回复
mov 0x1,%eax
mov 0x0,%ebx 如果只是对register 操作是不用担心的啦,但如果对内存操作就要注意了,smp 系统可能会存在的
nekeyu606
2006-09-04
打赏
举报
回复
其实这个问题的来源是:
对一个int32的赋值需要加锁保护么?
我们资深主管说不行...可是最终的赋值仅仅只是一条mov语句啊..
默默努力的小熊
2006-08-24
打赏
举报
回复
在cpu执行指令的过程中,不会出现一条机器指令被中断执行的情况。但是如果有若干条指令的话,就无法保证这些指令的执行是原子性的,除非你使用临界区。
单条汇编语句是否可能因线程切换而被打断? 一般情况下,一条汇编语句算一个CPU指令,就不会出现被中断。这里说是一般情况下是因为有些汇编语句是由几条汇编组成的,比如enter/leave,我不清楚在CPU在执行类似这样的指令的时候是否保持他们的原子性。
linux下由原子操作来保证,原子类型的定义和原子操作API都放在内核源码树的include/asm/atomic.h文件中,大部分使用汇编语言实现,因为c语言并不能实现这样的操作。
daemeon
2006-08-24
打赏
举报
回复
1
不会, 中断不会打断单条指令的执行。
When CPU completes executing the current instruction. it determins whether an interrupt i active by checking (1)instruction executions, (2) single-setup, (3) NMI, (4) coprocessor segment overrrun, (5) INTR, (6) INT instrution.
i++
线程
安全问题
理由:如果是局部变量,那么i++是
线程
安全:局部变量其他
线程
访问不到,所以根本不存在
是否
安全这个问题。 如果是全局变量,那么i++不是
线程
安全的:当它是全局变量时,所有
线程
都可以访问,那么,当有1000个
线程
...
并发编程(三)原子性(1)
多个
线程
同时拿到了变量,同时++,然后...–>
线程
同步(
线程
执行的顺序安排好),monitor (管程) —> 锁critical section -> 临界区如果临界区执行时间长,
语句
多,叫做 锁的粒度比较粗,反之,就是锁的粒度比较细。
为什么要学习
汇编
?学习
汇编
有哪些好处?
本文详细讲述一个从
汇编
代码的角度去理解多
线程
编程问题实例,并详细介绍熟悉
汇编
代码都有哪些用处。
并发编程面试题(2020最新版)
文章目录基础知识并发编程的优缺点为什么要使用并发编程...进程与
线程
的区别什么是上下文
切换
?守护
线程
和用户
线程
有什么区别呢?如何在 Windows 和 Linux 上查找哪个
线程
cpu利用率最高?什么是
线程
死锁形成死锁的...
同步与互斥——占位贴
Windows内核原理与实现,感谢潘老师,书上内容很丰富,是太丰富了,另外感觉书上哪里有点不妥,感觉,得多读几遍...容易出问题的地方:高级程序设计语言在换成
汇编
(机器语言)一条
语句
可能
是多条
汇编
语句
,
可能
被
线程
Linux_Kernel
4,438
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章