POSIX兼容的操作系统可以使用文件系统对象(文件和文件夹)进行原子操作。这里有一个这样presumably atomic operations的列表:POSIX兼容的文件系统对象的比较和交换
- 重命名或移动文件或文件夹
- 创建硬链接
- 创建符号链接
- 创建文件夹
- 创建和打开一个空文件
是否有可能构建比较和交换算法来处理基于这些操作的文件?
假设我们有几个进程正在一个文件上执行并发读/写操作。一个文件的特点是其修订。假设修订版被添加到文件名中,并且该文件有一个符号链接,进程可以使用它来读取它。进程不能(由于某些原因)与互斥体,信号量等同步,但他们能够创建辅助文件和文件夹。他们是否能够对文件进行基于修订版的Compare-and-Swap修改(创建一个新文件,创建和重命名符号链接),意思是说,如果多个进程要同时修改它,一个会成功,其余的会有一些错误代码失败?
该算法必须能够抵抗任何算法步骤中突然终止的任何过程。
在比较和交换的“比较”部分比较什么? – tmyklebu 2015-02-09 19:43:08
该文件可能有版本,“比较”部分可能会比较版本。 – 2015-02-09 19:54:19