代码之家  ›  专栏  ›  技术社区  ›  user82238

在SPARC上的Solaris上实现Atomic_cas_64()?

  •  1
  • user82238  · 技术社区  · 15 年前

    在SPARC上的64位Solaris上,原子的cas_64()函数调用是否使用加载链接/条件存储实现?

    如果没有,那么如果Solaris为使用ll/sc的用户模式C代码提供了任何API呢?

    2 回复  |  直到 12 年前
        1
  •  1
  •   user82238    15 年前

    在现代CPU中,SPARC64既不实现双宽CA,也不实现ll/sc。因此,实现无锁代码是有问题的。有一个解决方案,但它们是针对某个问题(ABA)的解决方案,因为它们支持CAS或LL/SC,所以其他平台上不存在该问题。此外,由于这一限制,一系列无锁算法无法在SPACE上实现。

        2
  •  0
  •   alanc    12 年前

    你可以看看 SPARC SPARCv9 实现以查看它们的具体操作…您应该看看membar_ux函数(在同一个文件中),看看您可以做些什么来获得更强的保证。