文件

文件

一组有意义的信息集合


文件的属性:

  • 文件名
  • 标识符
  • 类型
  • 位置
  • 大小
  • 保护信息

文件结构

  • 有结构文件/流式文件:由一组相似的记录组成

    根据记录长度分为定长记录变长记录

    • 顺序文件:

      • 顺序存储:

        • 定长记录:可实现随机存取

          • 串结构:记录之间的顺序与关键字无关(通常按照时间顺序 ,无法快速找到某关键字对应的记录)

          • 顺序结构:记录之间的顺序按照关键字顺序排列

            (可以快速找到某关键字对应的记录)

        • 可变长记录 :无法实现随机存取

      • 链式存储:无法实现随机存取

    • 索引文件:每条记录对应一个索引表项;索引文件有很快的检索速度 ;因此主要用于对信息处理的及时性要求比较高的场合

      (索引表本身是定长记录的顺序文件)

    • 索引顺序文件:一组记录对应一个索引表项

      (索引表是本身是定长记录的串结构文件)

  • 无结构文件/记录式文件:由一些二进制或字符流组成


文件目录

用户在编程时可以轻松实现“按名存取”用文件路径找到一个文件

目录本身是一种有结构文件 ,由一条条记录组成,每条记录对应一个在该目录下的文件


目录文件中的一条记录就是一个FCB(文件内控制块)

FCB实现了文件名和文件之间的映射,使用户可以按名存取


目录结构

  • 单级目录:早起操作系统不支持多级目录,整个系统只建立一张目录表,每个文件占一个目录项

    (实现了按名存取,但不允许文件重名

  • 二级目录:

    • 主文件目录:记录用户名+相应用户文件目录存放位置

    • 用户文件目录:由该用户的文件FCB组成

    (允许不同用户的文件重名,也可以在目录结构上实现访问限制;但用户不能对自己的文件进行分类)

  • 多级目录结构/树形目录结构:

    • 绝对路径:从根目录出发

    • 相对路径:从当前目录出发

    不便实现文件的共享 ,但在树形目录基础上,增加一些指向同一节点的有向边,使整个目录成为一个有向无环图 ,可以更方便实现多个用户间的文件共享;当用户删除结点时,必须使该结点的共享计数器减为0才能删除结点)


FCB改进:(索引结点机制)

除文件名之外的文件描述信息都放进索引结点:大大提升了文件检索速度


文件分配

大部分操作系统中,磁盘块的大小与内存块、页面大小相同

内存与磁盘之间的数据交换(读写操作、磁盘I/O)都是以块为单位进行的

操作系统为文件分配存储空间都是以块为单位

文件的逻辑地址:逻辑块号+块内地址;物理块号=起始块号+逻辑块号

  • 连续分配:每个文件在磁盘上占有一组连续的块;支持顺序访问和随机访问

    • 优:顺序读写时速度最快

    • 缺: 不便扩展 ;存储空间利用率低,会产生难以利用的磁盘碎片


  • 链接分配:

    • 隐式链接(默认)

      • 优:方便文件扩展,没有碎片问题,外存利用率高

      • 缺:

        • 只支持顺序访问,不支持随机访问

        • 查找效率低

    • 显式链接:把用于链接各物理块的指针显示存放在一张表中(FAT文件分配表)

      一个磁盘仅设置一张FAT,开机时将FAT读入内存,并常驻内存

      • 优:

        • 逻辑块号到物理块号的转化不需要读磁盘操作 ,比隐式链接快得多

        • 支持随机访问

        • 不会产生外部碎片

        • 方便扩展

      • 缺:FAT需要占用一定存储空间

  • 索引分配:一个文件对应一张索引表

    • 优:

      • 支持随机访问

      • 文件方便扩展

    • 缺:索引表需要占用一定的存储空间

    • 若索引表太大,一个索引块装不下:

      • 链接方案:将多个索引块链接起来存放(查找效率低)

      • 多层索引:建立多层索引,第一层索引块指向第二层索引块(访问目标数据块,需要3次磁盘I/O;K层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要K+1次读磁盘操作)

      • 混合索引:多种索引分配方式的结合,如一个文件的顶级索引表中,既包含了直接地址索引,又包含了一级间接索引,还包含二级间接索引

文件存储空间管理

  • 空闲表法:适用于连续分配方式

  • 空闲链表法:

    连续的盘块组成一个盘区

    • 空闲盘块链 :适用于离散分配的物理结构

    • 空闲盘区链:离散分配、连续分配都适用;为一个文件分配多个盘块时效率更高

  • 位示图法:连续分配、离散分配都适用

    例:

    image

    image

    • 盘块号b=ni+j

    • 字号i=b/n

    • 位号j=b%n

文件的基本操作

操作系统向上提供的最基本功能:(系统调用)

  • 创建文件

  • 删除文件

  • 读文件

  • 写文件

  • 打开文件:将目录项中的信息复制到内存中的打开文件表中,并将打开文件表的索引号(文件描述符)返回用户

  • 关闭文件

文件管理功能

文件共享

  • 基于索引结点的共享方式(硬链接)

  • 基于符号链的共享方式(软连接):访问速度比硬链接慢,如快捷方式

文件保护

  • 口令保护:

    • 优:保存口令的空间开销不多;验证口令的时间开销也很小

    • 缺:正确的口令存放在系统内部,不够安全

  • 加密保护:访问文件时需要提供正确的密码才能对文件进行正确的解密

    • 优:保密性强,不需要在系统中存储密码

    • 缺:编码/译码,或者说加密/解密要花费一定时间

  • 访问控制:在每个文件FCB中增加一个访问控制列表(ALC),该表中记录了各个用户可以对该文件执行哪些操作

    (精简的访问控制表:以组为单位,标记各组用户可以对文件执行的操作)


posted @ 2023-02-21 19:09  原语  阅读(239)  评论(0编辑  收藏  举报