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条回答

    报告相同问题?

    悬赏问题

    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿