xzqy8181 2014-08-17 16:25
浏览 1015

关于CPU分配任务时的一些问题

我们都知道 CPU里是有时序的 任何一个程序说白了扔到CPU里时都是按照一个序列进行操作
例:
写X=0
读取X
写X=1
读取X

那现在如果出现了多核的CPU就可能出现这么个问题
假设这个多核CPU是双核 也就是A1 和A2 2个核
那么 假设每步CPU操作都需要1秒的时间 开始时间是0
A1 A2
第0秒 写X=0 不操作
第1秒 写X=1 读X 将X的值放入Y1
第2秒 写X=2 读X 将X的值放入Y2

我想问的是
最后 Y1 和Y2的值是多少?

PS:
其实问题就是
在单核CPU时 每步的操作是可以看成一个确定的前后顺序的队列的
但在多核CPU时 可能就不是一个确定的前后顺序的队列了

那么在多核CPU时就可能是一个不稳定 不确定的队列 那么在这种情况下(假设多核的确是不确定的队列) 在第2秒的时候 A2读取X时 A1的操作是不是先锁定X的值 当修改成X=2后 才解锁? 还是A1会直接修改 而不锁定?

说白了 多核CPU分配数据时 是否会自动的锁数据?如果不锁数据 那么当A1修改X=2时 修改的这步操作肯定是需要时间的 如果在A1修改时A2来读数据了 会怎么样?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!