操作系统复习(十六)——文件管理

文件和文件系统

文件属性包括:文件类型,文件长度,文件的物理位置与建立时间。
数据项有基本数据项与组合数据项。
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
文件名与扩展名,文件名是文件的名称,扩展名又称后缀名,用于指示文件的类型。

文件类型按不同方式分类:

  1. 按用途:系统文件,用户文件,库文件。
  2. 按文件中数据形式:源文件,目标文件,可执行文件。
  3. 按存取控制属性:只执行文件,只读文件,读写文件。
  4. 按组织形式和处理方式:普通文件,目录文件,特殊文件。

文件系统分层(一般把与文件相关的软件分为四个层次):

  1. I/O控制层
  2. 基本文件系统层
  3. 基本I/O管理程序
  4. 逻辑文件系统

文件系统接口包含命令接口与程序接口。
文件操作有:创建、删除、读、写、设置文件的读写位置、打开、关闭等操作。

文件的逻辑结构

按文件组织方式:顺序文件,索引文件,索引顺序文件,还有直接文件与哈希文件。

顺序结构:

  • 优点:对文件中的记录进行批量存取使,所有的逻辑文件中顺序文件的存取效率是最高的。
  • 缺点:交互应用场合,用户要求查找或修改单个记录时,系统需要在文件的记录中逐个查找,效率很差。如果想增加或删除一个记录也比较困难。

索引文件: 按照关键字建立索引,可进行折半查找。

  • 优点:将需要顺序查找的文件改造成一个可随机查找的文件,极大提高了对文件的查找速度。

索引顺序文件: 引入了文建索引表,通过该表可以实现对索引顺序文件的随机访问。又引入了溢出文件,用它记录新增加的、删除的和修改的记录。

直接文件: 直接文件,则根据给定的记录键值,直接获得指定记录的物理地址,换言之,记录键值本身就决定了记录的物理地址,这种由记录键值到记录物理地址的转换被称为键值转换。

哈希文件: 利用Hash函数可将记录键值转换为相应记录的地址,为了能实现文件存储空间的动态分配,通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针,该表目的内容指向相应记录所在的物理块。

文件目录

为了能够对文件实施有效的管理,必须对它们加以妥善组织,这主要是通过文件目录实现的,文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用,对目录的管理要求如下:
  ① 实现按名存取,即用户只须向系统提供所需访问的文件的名字,便能够快速准确地找到指定文件在外存上的存储位置,这是目录管理中最基本的功能。
  ② 提高对目录检索速度,通过合理地组织目录结构的方法,可加快对目录的检索速度,从而提高对文件的存取速度。
  ③ 文件共享,在多用户系统中,应该允许用户共享一个文件。
  ④ 允许文件重名,系统应允许不同用户对不同文件采用相同的名字,以便用户按照自己的习惯给文件命名和使用文件。

1.文件控制块
为了能对文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为文件控制块FCB,文件管理程序可借助于文件控制块中的信息,对文件施加各种操作,文件与文件控制块一一对应,而人们把文件控制块的有序集合称为文件目录,一个文件控制块就是一个文件目录项。通常,一个文件目录也可被看成是一个文件,称为目录文件。

文件控制块包含基本信息、存取控制信息、使用信息。
  ① 基本信息,包括文件名(标识一个文件的符号名,在每个系统中,每个文件都有唯一的名字,用户利用该名字进行存取);文件物理位置(指文件在外存上的存储位置,包括存放文件的设备名、文件在外村上的起始盘块号、指示文件所占用的盘块数或字节数的文件长度);文件逻辑结构(指示文件是流式文件还是记录式文件、记录数,文件是定长还是变长记录);文件物理结构(指示文件是顺序文件、链式文件还是索引文件)
  ② 存取控制信息,包括文件主的存取权限、核准用户的存取权限及一般用户的存取权限。
  ③ 使用信息,包括文件的建立日期和时间、文件上一次修改的日期和时间及当前使用信息(这项信息包括当前已打开该文件的进程数、是否被其他进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上)

2.文件目录的组织:
一级文件目录,只能实现最基本的按名存取功能、
二级文件目录,基本上能满足对文件目录的四方面要求。提高了检索目录的速度(如果在主目录中有n个子目录,每个用户目录最多为m个目录项,则为查找一指定的目录项,最多只需要检索n+m个目录项)。在不同的用户目录中,可以使用相同的文件名(只要在用户自己的UFD中,每个文件名都是唯一的,不同用户可以有文件名相同的文件)。不同用户还可使用不同的文件名来访问系统中同一个共享文件。但在多个用户需要合作完成一个大任务时,不便于用户之间共享文件。

树形结构目录,最通用且实用的文件目录结构,主目录被称为根目录,把数据文件称为树叶,其他的目录均作为树的结点。

3.目录查询技术:
  当用户要访问一个已存在的文件时,系统首先利用用户提供的文件名对目录进行查询,找出该文件的文件控制块或对应索引结点,然后,根据FCB或索引结点中所记录的文件物理地址(盘块号),换算出文件在磁盘上的物理位置,最后,再通过磁盘驱动程序,将所需文件读入内存。目前常用的方式有线性检索法和Hash方法。
① 线性检索法,其又称为顺序检索法,在树形目录中,用户提供的文件名是由多个文件分量名组成的路径名,此时须对多级目录进行查找,假定用户给定的文件路径名为/usr/ast/mbox,则查找过程如下。

  1. 读入第一个文件分量名usr,用它与根目录文件(或当前目录文件)中各目录项中的文件名顺序地进行比较
  2. 得到匹配项的索引结点号是6
  3. 从6号索引结点中得到usr目录文件放在132号盘块中,将该盘块内容读入内存
  4. 再将路径名中的第二个分量名ast读入,用它与放在132号盘块中的第二级目录文件中各目录项的文件名顺序进行比较
  5. 依次类推

② Hash方法,系统利用用户提供的文件名并将它转换为文件目录的索引值,再利用该索引值到目录中去查找,这将提高检索速度。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值