1

根据webopedia,这是一个处理器同时读取和写入总线的时候......不包括其他处理器访问它。

根据维基百科,在数据库中,这意味着一组操作要么全部发生,要么不发生

在并发编程中,这意味着一组操作瞬间发生,如系统维基百科所见

但是我需要知道在文件系统的上下文中原子性指的是什么,特别是谷歌文件系统。

似乎是一个过度使用的词,人们使用它听起来很酷..但是关于文件系统是否有更学术的定义?

似乎原子是指不分解某些东西,即原子......在一般情况下。我不断听到用于 Google 文件系统的原子读取和原子写入术语。

我的猜测将意味着它完全发生或根本不发生,并且在一个“步骤”中。指时间(出现瞬间)和构图(所有部分都完成)的统一。

这听起来正确吗?

4

3 回答 3

2

这是正确的。它的基本属性是,即使某些操作可能包含一组较小的步骤,您也永远无法在其中一些但不是所有这些步骤已经发生的状态下观察它。

于 2011-10-17T04:31:51.557 回答
1

你的定义似乎很合理。这里有一个关于计算机软件和硬件的原子性的很棒的 MIT 演讲。我对你的定义的一个小抱怨是,你让它看起来好像是在一个步骤中发生了一些“原子”的事情。这既是对的,也是错的。

正如您将在演讲中看到的那样,原子性定义为:

Recoverable + Isolated = Atomic
A sequence of composite steps but whose invoker cannot discover is composite.

这里的主要思想是“原子”的东西可以在离散的步骤(在实现中)中分离,但调用者永远不会知道这一点。例如,即使是原子写入也有多个步骤。

于 2011-10-17T04:37:24.580 回答
0

来自Brewer 的猜想和Seth Gilbert 和 Nancy Lynch 编写的一致、可用、分区容忍 Web 服务的可行性:

原子的或线性化的一致性是当今大多数 Web 服务所期望的条件。3 在这种一致性保证下,所有操作必须存在一个总顺序,以使每个操作看起来好像是在一个瞬间完成的。这等效于要求分布式共享内存的请求就像它们在单个节点上执行一样,一次响应一个操作。原子读/写共享内存的一个重要特性是,在写操作完成后开始的任何读操作都必须返回该值,或稍后写操作的结果。

于 2011-10-17T04:36:12.360 回答