首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x86代表指令,锁前缀,原子和实时

x86代表指令,锁前缀,原子和实时
EN

Stack Overflow用户
提问于 2022-09-21 23:06:41
回答 1查看 83关注 0票数 0

考虑以下情况:

  • 线程A(我不控制的邪恶代码):在任意长时间的锁代表stosq .

中重复一些字符串操作

  • 线程2(我的代码,应该具有无锁行为):一些简单的原子操作,涉及由重复指令锁cmpxchg .

处理的数据开头的lock前缀#。

我是否可以假设rep持有的锁是针对每个单独的元素,而不是整个指令的执行?否则,不意味着每一个应该具有实时语义的代码(没有循环、没有系统、总函数、每个操作都在有限时间内终止,等等)仍然可以通过在另一个线程中执行这样的事情而中断一些“邪恶”代码,这会使另一个线程上的cmpxchg被阻塞很长时间吗?

我担心的威胁模型是对实时操作系统上其他“用户”(包括内核IRQ处理程序)的拒绝服务攻击,其中的“服务”保证包括非常低的延迟中断处理。

如果不是lock rep stos,还有什么值得我担心的吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-28 03:15:29

lock rep stosq (和lock rep movsdlock rep cmpsd,.)不是法律规定。

如果它们是合法的,它们将更像rep (lock stosq),锁定单个stosq

,如果没有锁代表商店,还有什么值得我担心的吗?

您可能会担心非常老的CPU。具体来说,最初的奔腾CPU有一个名为"F00F bug“的缺陷(参见https://en.wikipedia.org/wiki/Pentium_F00F_bug ),旧的Cryix有一个名为”昏迷bug“的缺陷(参见https://en.wikipedia.org/wiki/Cyrix_coma_bug )。对于这两种情况(如果操作系统不能提供可行的解决方案),非特权软件就能够使CPU“永远锁定”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73807761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档