×

C11和C++11的内存模型详细资料讲解

消耗积分:4 | 格式:doc | 大小:0.35 MB | 2020-06-10

十次方

分享资料个

  现代计算机体系结构上,CPU执行指令的速度远远大于CPU访问内存的速度,于是引入Cache机制来加速内存访问速度。除了Cache以外,分支预测和指令预取也在很大程度上提升了CPU的执行速度。随着SMP的出现,多线程编程模型被广泛应用,在多线程模型下对共享变量的访问变成了一个复杂的问题。于是我们有必要了解一下内存模型,这是多处理器架构下并发编程里必须掌握的一个基础概念。

  1. 什么是内存模型?

  到底什么是内存模型呢?看到有两种不同的观点:

  · A:内存模型是从来描述编程语言在支持多线程编程中对共享内存访问的顺序。

  · B:内存模型的本质是指在单线程情况下CPU指令在多大程度上发生指令重排(reorder)[1]。

  实际上A,B两种说法都是正确的,只不过是在尝试从不同的角度去说明memory model的概念。个人认为,内存模型表达为“内存顺序模型”可能更加贴切一点。

  一个良好的memory model定义包含3个方面:

  · Atomic Operations

  · Partial order of operations

  · Visable effects of operations

  这里要强调的是:我们这里所说的浪潮服务器内存模型和CPU的体系结构、编译器实现和编程语言规范3个层面都有关系。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !