📜  文件共享的一致性语义

📅  最后修改于: 2021-08-25 16:52:08             🧑  作者: Mango

一致性语义是用户用来检查支持其系统中文件共享的文件系统的概念。基本上,规范是检查单个系统中多个用户如何同时访问同一文件。它们用于检查文件中的各种内容,例如某些用户何时对某些文件进行修改会引起其他用户的注意。

一致性语义是与名为过程同步算法的概念直接相关的概念。但是在文件I / O的情况下不使用进程同步算法,因为存在一些问题,例如延迟长,磁盘和网络的传输速度慢。

例子 :
当由用户执行到远程磁盘的原子事务时,它涉及网络通信,磁盘读和写或两者兼而有之。正在完成其具有全部功能的任务的系统的性能较差。在安德鲁文件系统中,发现了共享语义的成功实现。

通过用户进程访问同一文件始终包含在open()和close()操作之间。当对同一文件进行一系列访问时,它将构成一个文件会话。

1. UNIX语义:
UNIX中的文件系统使用以下一致性语义–

  • 当时正在共享该文件的所有用户都将看到要写入该用户的文件。
  • 它们是UNIX语义上共享文件的一种方式是通过当前位置的共享指针。但这会影响所有其他共享用户。

在这种情况下,共享的文件与作为独占资源访问的单个物理映像相关联。该单个图像导致用户过程中的延迟。

2.会话语义:
Andrew中的文件系统使用以下一致性语义。

  • 当时要共享该文件的所有用户都看不到要写入该文件的文件。
  • 关闭文件后,用户对文件所做的更改仅在以后开始的会话中可见。如果更改文件已经被其他用户打开,则该更改将对该用户不可见。

在这种情况下,共享的文件与多个图像相关联,因此没有延迟,因为它允许多个用户同时对其图像执行读取和写入访问。

3.不可变共享文件语义:
似乎有一种独特的方法来改变共享文件。在这种情况下,不允许用户修改被其创建者声明为共享的文件。
不可变文件具有两个属性,如下所示–

  • 其名称不得重复使用。
  • 其内容不得更改。

在该文件系统中,文件的内容是固定的。分布式系统中语义的实现很简单,因为共享是受约束的。