操作系统:文件系统

一、文件概念

操作系统对存储设备的物理属性加以抽象,从而定义逻辑存储单位,即文件

从用户角度看,文件是逻辑外存的最小分配单元;也就是说数据只有通过文件才能写到外存。通常,文件表示程序和数据

根据文件类型的不同可以存储不同类型的信息,如源程序、文本数据、照片、音乐、视频等。文件根据其类型具有不同的结构

1.文件属性

文件的属性因操作系统而异,通常包括:

  • 名称
  • 标识:唯一标识(通常为数字)表示这个文件;它是文件的人类非可读的名称
  • 类型
  • 位置,指向设备与设备上文件位置的指针
  • 大小
  • 保护:访问控制信息,确定谁能进行读取、写入、执行等
  • 时间、日期和用户标识

2.文件操作

  • 创建文件
  • 写文件
  • 读文件
  • 重新定位文件
  • 删除文件
  • 截断文件

许多系统要求,首次使用文件之前进行系统调用open()。操作系统有一个打开文件表用于维护所有打开文件的信息,当请求文件操作时,可通过该表的索引指定文件,而不需要搜索。当文件不再使用,进程关闭它,操作系统从打开文件表中删除它的条目。

  1. 进程的打开文件表
    单个进程打开文件的信息表,每个条目内容包括文件指针,文件访问权限,记账信息等
  2. 系统的打开文件表
    整个系统内的打开文件信息表,每个条目内容包括文件在磁盘上的位置、访问日期、文件大小、文件打开次数等

两者是不相同的

在这里插入图片描述
单个进程的每个条目相应的指向这个系统的打开文件表系统表包含与进程无关的信息。一旦有进程打开一个文件,系统表就包含该文件的条目;当另一个进程执行调用open(),只要简单地在其进程打开表增加一个条目,并指向系统表的相应条目

每个打开文件具有如下关联信息:

  1. 文件指针
    • 文件最后读/写位置指针
    • 该指针对操作文件的每个进程是唯一的,因此必须与磁盘文件属性分开保存
  2. 文件打开计数器
    • 一个文件被打开的次数,当文件关闭时,操作系统必须重设打开文件表的条目
  3. 文件磁盘位置
    • 用于定位磁盘上文件位置信息保存在内存中
  4. 访问权限
    • 确定打开文件模式,以便操作系统允许或拒绝以后的I/O请求

操作系统可提供共享锁或独占锁文件加锁机制(共享锁:读;独占锁:写)
写操作系统可以提供强制或建议文件加锁机制。

  • 强制:一旦被加锁,其他进程就不能访问
  • 建议:根据程序员的设计需要确保适当的获取与释放锁

二、访问方法

1.顺序访问

文件信息按顺序,即一个记录接着一个记录的加以处理。

2.直接访问(相对访问)

文件由固定长度的逻辑记录组成,以允许程序按任意顺序进行快速读取和写入记录。

用户提供给操作系统的块号,通常为相对块号,它是相对于文件开始的索引
在这里插入图片描述

3.索引文件

对文件创建索引文件,索引包括各块的指针,为查找文件中的记录,首先搜索索引,再根据指针直接访
问文件

三、目录与磁盘的结构

磁盘的每个分区的都可以创建文件系统,包含文件系统的分区通常称为
每个卷必须包含其文件系统上文件的信息,这些信息保存在设备目录卷目录表
在这里插入图片描述

1.目录概述

目录也是文件
对目录的相关操作:

  1. 搜索、创建、删除目录
  2. 遍历目录
  3. 重命名文件
  4. 遍历文件系统(备份)

2.单级目录

所有文件在同一目录中。
问题:文件命名,文件名称必须是唯一的多用户之间的文件名称也不能冲突

3.两级目录

系统有主文件目录,每个用户都有自己的用户文件目录

  • 路径是由用户名和文件名定义
  • 不同的用户可以有相同的文件名
    在这里插入图片描述

4.树形目录

目录可以包含文件和子目录,当需要访问文件时,就搜索当前目录。
在这里插入图片描述
路径名可以有两种形式:

  1. 绝对路径:从根目录开始
  2. 相对路径:从当前目录开始

树状结构禁止共享文件和目录

5.无环图目录

无环图目录,无环图即没有循环的图,允许目录共享子目录和文件。同一文件和子目录可出现在两个不同目录中。无环图是树形目录方案的自然扩展
在这里插入图片描述
共享文件和目录的实现方法:

  1. 创建一个名为链接的新目录条目,链接实际上是另一个文件或子目录指针(符号链接
    问题:原文件的删除,链接的删除
  2. 共享目录中重复所有被共享文件的信息(非符号链接)
    问题:同步问题

6.通用图目录

当添加链接时,会破坏树结构,从而形成一个简单的图结构。
在这里插入图片描述
无环图主要优点是,有相对简单的算法以遍历图并确定何时没有更多的文件引用。需要避免重复遍历无环图的共享部分。

在允许有环的目录结构中,同样需要避免重复搜索,一种解决方案是限制搜索时访问目录的数量(引用计数);删除文件同样存在这类问题,删除文件需要确认引用计数,引用计数为0才能删除,但当环存在时,由于可能存在自我引用,引用计数可能不为0,这时,就需要使用垃圾收集方案

如何在创建新链接时避免环

  1. 只允许链接文件,不允许连接子目录
  2. 垃圾收集
  3. 利用某种检测算法检测是否形成环,然而这些算法极为费时,不常用。

四、文件系统安装

文件系统被系统上的进程使用之前必须安装。
安装过程很简单。
操作系统需要知道设备名称和安装点

五、共享文件

1.多用户

多用户系统比单用户系统需要更多文件和目录属性,即拥有者ID,组ID

  1. 拥有者是目录最高控制权的用户,可以改变属性和授权访问
  2. 组属性定义对文件拥有相同权限的用户子集

2.远程文件系统

故障模式,远程文件系统故障与本地文件系统故障不同:

  1. 增加了新的故障模式
  2. 增加了每个远程请求的状态信息,通过调用状态信息恢复故障

参考

《操作系统概念》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值