1. 多用户
对于多用户的操作系统,文件共享、文件命名和文件保护等问题变得特别突出。为了实现文件共享,现在大多数操作系统都采用了文件的所有者和组的概念。所有者是指对文件拥有最高权限控制,包含了对文件的所有操作;组中用户和其他用户对文件的操作取决于所有者所赋予的权限。例如在linux中:对于一个rwx rwx rwx …文件名 这种文件,第一个rwx是所有者的权限,第二个rwx是所有者所在组中其余用户的权限,第三个rwx是剩余用户的权限。所有者可以通过chmod更改所在组的用户和其他用户对文件的访问权限。
给定文件的所有者id和组id,和文件的其余属性一起保存在FCB中。当用户去请求操作该文件的时候,操作系统可以根据用户的id和用户的组id来确定该用户对这个文件的访问权限。
2. 远程文件系统
常见的远程文件系统有:
- 基于ftp程序在机器之间手动传送文件
- 分布式文件系统
- 万维网
3.一致性语义
一致性语义是用来评估文件系统的一个重要准则。它规定了系统的多个用户如何访问共享文件,规定了一个用户修改的文件另一个用户何时可见。
一致性语义和进程的同步算法直接相关。但是进程同步算法不适用于一致性语义,是由于磁盘和网络的巨大延迟和很慢的传输速率(ps:对远程磁盘执行一个原子性事务,可能涉及到多次网络传输或者磁盘读写)。
下面我们就看看几种常见文件系统,对一致性语义的规定。
3.1 unix语义
unix语义的一致性为:
- 一个用户对已打开的文件的写入,其余打开该文件的用户立即可见。
- 一种共享模式允许用户共享文件的当前位置指针。当一个用户向前移动文件指针,就会影响其他用户。这里,一个文件与单个图像相关联,允许不同的用户单独访问。(ps:这里的文件和单个图像我们可以类比成类和实例。文件类比类,图像可以类比成实例。)
3.2 会话语义
在Andrew文件系统采用的语义:
- 一个用户对以打开文件的写入,对于打开同一文件的其他用户,不是立即可见的。
- 一旦文件关闭,对其所做的更改只能被后来打开的会话可见。以打开文件的实例并不能反映这些变化。
根据这类语义,一个文件在同一时间可以临时关联多个图像。
3.3 不可变共享语义文件
该语义是指一旦一个文件由创建者声明为共享,它就不能被修改。
这里的不可变文件有两个关键属性:
- 它的名称不可以重用。
- 它的内容不可以改变。