操作系统笔记10

文件系统

文件系统由两个不同的部分组成——文件和目录结构

文件属性

文件通常包含以下属性:

  • 名称(文件名)
  • 标识符
  • 类型
  • 位置(一个指针项)
  • 大小
  • 保护
  • 时间、日期、用户标识

名称和位置是最重要的两个。

文件操作

  • 创建文件
  • 写文件
  • 读文件
  • 删除文件
  • 文件内重定位
  • 截短文件

许多系统要求在首次使用文件时,需要使用系统调用**open()**语句。

open()语句会查找文件对应目录,将其从磁盘存入内存,建立CPU和文件的联系。注意这里并不会将文件内容写入内存,而是将文件的目录项存到内存中的打开文件表中。

文件访问方法

  1. 顺序访问

    最简单的访问方式,顺序介质如磁带就只能使用顺序访问。

  2. 直接访问

    文件由固定长度的逻辑记录组成,允许程序按任意顺序进行读写

目录结构

目录要:提高查找效率,避免命名冲突

目录的相关操作:

  • 搜索文件
  • 创建文件
  • 删除文件
  • 遍历目录
  • 重命名文件
  • 跟踪文件系统

单层结构目录(一级目录)

单层目录,即所有的文件都包含在同一目录中。

问题:

  1. 会出现命名冲突
  2. 访问效率低
  3. 不支持分组

双层结构目录(二级目录)

为每个用户创建独立的目录

命名冲突得到有效解决,查找效率提高

树型目录结构

路径命有两种形式:相对路径名和绝对路径名

创建文件时,在当前目录下创建文件

删除一个目录时,其子目录、文件也会被删除

无环图目录——文件共享

树型目录结构禁止共享文件和目录,无环图目录是树型目录结构的扩展

删除一个文件或目录时,如果该文件或目录是共享的,则会有空指针危险:

**解决方法:**采用共享计数:每次删除时,共享计数-1,如果共享计数==0,则删除。

通用图目录结构:可能出现环

存在环的时候,遍历时可能会出现死循环,所以必须保证无环。

利用环路检测算法,在共享前检测。

文件保护

文件一般有以下几种操作类型:

  1. 读
  2. 写
  3. 执行
  4. 添加
  5. 删除
  6. 列表清单

许多系统为每个文件采用了三种用户类型:

  • 拥有者
  • 组
  • 其他

每种用户类型的权限用三个二进制位即可表示(RWX),1表示有权限,0表示没有权限