相关疑难解决方法(0)

重命名()原子?

我无法通过实验检查这一点,也无法从手册页中收集它.

假设我有两个进程,一个从directory1移动(重命名)file1到directory2.假设另一个并发运行的进程将directory1和directory2的内容复制到另一个位置.是否有可能以这样的方式发生复制:directory1和directory2都将显示file1 - 即在移动之前复制directory1,在第一个进程移动之后复制directory2.

基本上是rename()是一个原子系统调用?

谢谢

linux file-rename vfs atomicity

40
推荐指数
3
解决办法
2万
查看次数

比较和交换符合POSIX的文件系统对象

POSIX兼容的操作系统可以通过文件系统对象(文件和文件夹)以原子方式执行多项操作.这是一个可能的原子操作列表:

  • 重命名或移动文件或文件夹
  • 创建硬链接
  • 创建符号链接
  • 创建文件夹
  • 创建并打开一个空文件

是否可以构建比较和交换算法来根据这些操作来操作文件?

假设我们有几个进程在单个文件上执行并发读/写.文件的特点是其修订版.假设修订版已添加到文件名中,并且文件的符号链接可由进程用来读取它.这些进程不能(由于某些原因)与互斥锁,信号量等同步,但它们能够创建辅助文件和文件夹.他们是否能够对文件执行基于修订的比较和交换修改(创建新文件,创建和重命名符号链接),这意味着如果多个进程同时修改它,一个将成功,其余将成功失败了一些错误代码?

该算法必须能够抵抗任何算法步骤中任何过程的突然终止.

filesystems algorithm posix atomic compare-and-swap

6
推荐指数
1
解决办法
782
查看次数

linux上的强制文件锁

在Linux上我可以dd在硬盘上找到一个文件并在dautilus中删除它,而dd仍在继续.

Linux是否可以强制执行强制文件锁定来保护R/W?

linux protection locking

3
推荐指数
2
解决办法
7817
查看次数