操作系统速记(基础)—文件与文件系统

文件

  • 文件:具有文件名的逻辑上具有完整意义的信息集合

  • 文件系统:对文件实行按名存取

  • 文件的逻辑结构

    概念:用户看到的文件组织形式,可以理解为数据结构中的二叉树的形式,但是二叉树在内存中的存储形式不一定就是树状结构

    逻辑结构分为两大类

    • 无结构文件:由无结构无特殊意义的一串字符组成(类似于数组)
    • 有结构文件:由若干个逻辑记录区域构成(类似于链表)
  • 文件的存储介质

    概念:用于记录信息的媒体,存储介质与存储设备的区别:存储介质装备在存储设备上

    块:存储介质上连续信息组成的区域,是主存与辅存进行信息交换的基本物理单位

  • 文件的存取方式

    存取方式

    • 顺序存取:按顺序存取,后一次存取总跟在前一次存取之后
    • 随机存取:在存取钱确认存取的起始位置,后一次存取不必一定跟在前一次存取之后
    • 按键存取:少用不总结
  • 文件的物理结构

    概念:文件在外存上存储时的组织结构

    物理结构通常划分为大小相等的物理块,是文件分配与传输的基本单位

    分类

    顺序结构:逻辑上连续的信息依次存储在相邻的物理块上(数组)

    链接结构:文件中的信息存放在若干不相邻的物理块上,各块之间通过指针链接(链表)

    索引结构:为每个文件建立一个索引表,指出逻辑记录的物理地址(分层检索,类似于目录表)

    直接文件:逻辑记录的关键字与存储的物理地址可通过hash函数一一对应(类似于hash表)

  • 一个块可以存储多个逻辑记录

  • 记录的成组:若干个逻辑记录合并为一组存入物理块的过程

  • 记录的分解:将一组逻辑记录分解为一个个逻辑记录,发生在读文件过程中


文件目录

  • 概念:用于检索文件

  • 目录结构

    一级目录:文件系统中只有一张目录表,所有文件都记录在该表中,每个文件占据其中一项

    二级目录:主文件目录下,每个用户对应一个用户文件目录

    多级目录:采用层级结构,也称为树形目录

    绝对路径:从根目录出发到目的文件所经过的所有子目录

    相对路径:从当前目录出发到指定文件的路径

    无环图目录:允许若干目录指向同一子目录或文件


辅存空间管理

  • 空闲块表法

    每个辅存一张空闲表,记录空闲块数

    空间分配:连续分配,采用最先适应算法

    空间回收:与主存的可变分区方式类似

  • 空间块链法

    所有的空闲块通过指针链接起来,分为空闲块链表和空闲区链表

    空闲块链表

    空间分配:分配链表头部的物理块,不够用在进一步分配

    空间回收:将空闲块链入链尾

    空闲区链表

    一个空闲区包含若干个物理块,空闲区之间通过链表的形式组织

    空间分配:修改该区中的起始地址和剩余空闲块数

    空间回收:

  • 位示图:磁盘用一张位示图来指示磁盘空间使用情况,该块被使用,则设置为1,否则为0

  • 成组链接法:所有的空闲块分为若干组,每组块数取值为N,不足的单独成组,每组第一个空闲块记录本组空闲块数以及下一组的地址

    空间分配

    判断空闲盘块栈是否上锁

    判断空闲盘块栈中空闲块的个数,即s_nfree

    s_nfree>0,分配

    s_nfree=0,且s_free[0]!=0,则加载下一个组,地址为s_free[0]

    s_nfree=0,且s_free[0]=0,表示无空闲块

    空间的去配

    检查s_nfree

    若s_nfree<N,则将回收块放入空闲盘块栈

    若s_nfree=N,将现有栈中的N个块组成一组,并将该组的组号作为空闲盘块栈的栈底


文件的使用

  • 建立文件

    • 检查文件名是否合法,查找用户文件目录表
    • 检查用户文件目录有无重复文件名
    • 分配空间
    • 填充文件控制块中的必要参数
    • 返回文件描述符
  • 打开文件

    树形文件目录结构下

    • 根据文件路径查找文件目录树
    • 根据打开方式、共享说明、用户身份检查访问合法性
    • 查看系统打开文件表,将该文件对应项的共享计数值+1
    • 填写用户打开文件表中该文件的打开方式,并指向系统打开文件表对应表项
  • 读文件

    • 根据文件名查找文件目录,确定文件控制块
    • 检查访问的合法性
    • 根据文件控制块中的参数确定文件存储块号和块数
    • 分一次或多次读入主存
  • 写文件

    查找目录,找到文件控制块,将主存数据区中的数据写入物理块

  • 关闭文件

    • 删除用户打开文件表中对应表项
    • 将系统打开文件表中对应表项的共享计数值-1,若为0,删除表项
    • 判断文件表项内容是否被更改过,例如读写控制等,若更改过,写回到对应文件控制块中
  • 删除文件

    • 根据路径名查找文件目录树,找到文件控制块
    • 根据文件控制块内容删除辅存空间
    • 删除文件控制块以及文件目录树中的目录项
  • 文件共享

    允许多个用户使用一个文件

    绕道法

    访问共享文件时,从当前目录出发,往文件目录树的上方走,走到共享文件所在路径的交叉点,在沿路径向下到达共享文件

    链接法

    • 目录链接:对欲共享的文件建立相同目录
    • 基于索引结点的链接:将共享文件的存储地址、长度等文件信息放在索引结点,目录项存放文件名以及指向索引结点的指针
    • 符号链接:文件中只包含了共享文件的路径名
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值