Skip to content

Atomic

What is atomic/atomicity?

直观理解

"atomic/atomicity","atomicity"即"原子性",它借用了物理学中"atom(原子)"的概念:

An atom is the smallest unit of ordinary matter that forms a chemical element.

意味着最小unit,是不可分割的。

在不同的层级都可以使用这个概念,提供atomic primitive/interface,比如:

1、instruction level: X86 cmpxchg

2、OS level: Linux openat

Formal definition

关于atomic的形式化定义,参见工程parallel-computing的相关章节。

Atomic primitive/interface

1、Instruction 层: instruction就是atomic的

2、OS level: Linux openat

3、Application层,也有atomic的概念,也可以实现atomic

cppreference Atomic operations library

Atomic and unit

一般最小unit是Atomic ,关于unit,参见文章《Unit》。

实现思路

Bottom-up analysis

从最最底层(nstruction 层)开始,自底向上进行分析,显然如果底层能够保证atomic,那么能够为高层实现atomic提供较好的支持,下面是一些level:

1、Instruction level

2、OS level

3、Application level

Assemble as atomic primitive

在系统层进行集成: 将多个操作在系统层/实现层进行集成,提供原子特性的接口,从而达到原子性的目的,下面是典型的例子:

1、instruction level: X86 cmpxchg

2、OS level: Linux openat

3、......

我们将这种思路称为: "assemble as atomic primitive"。