TI中文支持网
TI专业的中文技术问题搜集分享网站

关于AM57xx自旋锁的问题

之所以需要自旋锁,是为了保证“原子操作”,请问,在AM57xx中,32位的系统,对于一个 Int32 数据的读、写,其本身是否就已经是“原子操作”? 若多核对同一 Int32 (仅一个)变量访问,是否不需要自旋锁?

yongqing wang:

应该不可能默认即使原子操作,这样效率就会降低吧,共享资源读写的时候类似互斥锁还是有必要的

user5849257:

原子操作的意思是整个过程不可分割,要么全部完成,要么全部失败,换句话说就是执行过程不能被打断,整个执行过程占有CPU资源。至于你说的对一个int32位数来说,它本身就是共享资源,谁都可以操作。如果你去读写这个数,另外一个进程也是可以操作这个数的。比如这个进程的优先级更高,它就会被CPU调度过来运行了,也就是抢占,之前的那个进程就被cpu调度出去了,也就是挂起睡眠了。所以,访问一个int32变量,如果存在资源竞争,就需要自旋锁

赞(0)
未经允许不得转载:TI中文支持网 » 关于AM57xx自旋锁的问题
分享到: 更多 (0)