ale*_*exp 5 x86 assembly operating-system
假设将32位值写入跨越2页的内存位置.为了论证,我们假设在第一页中有2个字节,在第二页中有2个字节.第一页是可写的,但第二页是未映射的.执行整个指令将触发页面错误,这很好.
我的问题是:将值的前2个字节之前或之后的页面错误触发器写入内存吗?换句话说,故障后代码运行(例如,故障处理程序)是否能够观察到部分写入?
让我们假设一个X86环境,因为我怀疑这种行为可能是架构,甚至可能是模型特定的.
Zan*_*Jie -3
来自英特尔架构手册第 3A 卷:
\n\n\n\n\nIntel Core 2\n Duo、Intel\xc2\xae Atom\xe2\x84\xa2、Intel Core Duo、Pentium M 不保证对跨缓存行和页边界分割的可缓存内存的访问是原子的Pentium 4、Intel Xeon、\n P6 系列、Pentium 和 Intel486 处理器。
\n
IMO 不是原子的意味着您所描述的场景可能会发生。写入前 2 个字节后可生成中断。
\n| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |