操作系统-文件管理(下)

本文详细介绍了文件管理的存储空间划分与初始化,包括空闲表法、空闲链表法、位示图法和成组链接法。讨论了文件共享的硬链接和软链接方式,以及文件保护措施如口令和加密保护。此外,还阐述了磁盘结构,如磁道、扇区、磁盘物理地址和磁盘调度算法,为理解操作系统底层工作原理提供了深入见解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件存储空间管理

存储空间的划分与初始化

  • 存储空间的划分:将物理磁盘划分为一个个文件卷(逻辑卷、逻辑盘)

     例如:
     	安装Windows操作系统时,一个必经步骤是--
     	为磁盘分区(C:盘、D:盘、E:盘等)如下图
    

    在这里插入图片描述

    • 存储空间的初始化:将各个文件卷划分为目录区、文件区
      目录区主要存放文件目录信息(FCB)、用于磁盘存储空间管理的信息
      文件区用于存放文件数据
    • 有的系统支持超大型文件,可支持由多个物理磁盘组成一个文件卷

存储空间管理

空闲表法 - 适用于“连续分配方式”
  • 空闲盘块表
第一个空闲盘块号空闲盘块数
02
51
132
183
231

在这里插入图片描述

  • 如何分配磁盘块:与内存管理中动态分区分配类似,为一个文件分配连续的存储空间。同样可采用首次适应、最佳适应、最坏适应等算法来决定要为文件分配哪个区间。
  • 如何回收磁盘块:与内存管理中动态分区分配类似,当回收某个存储区时需要有四种情况——①回收区的前后都没有相邻空闲区;②回收区的前后都是空闲区;③回收区前面是空闲区;④回收区后面是空闲区。**总之,回收时需要注意表项的合并问题。
空闲链表法
  • 空闲盘块链:以盘块为单位组成一条空闲链

      操作系统保存着链头、链尾指针
    
      如何分配:若某文件申请K个磁盘块,则从链头开始依次摘下K个盘块分配,并修改空闲链的链头指针
      如何回收:回收的盘块依次挂到链尾,并修改空闲链的链尾指针
      	(与链表操作一致)
    
      适用于离散分配的物理结构。为文件分配多个盘块时可能要重复多次操作。
    

在这里插入图片描述

  • 空闲盘区链:以盘区为单位组成一条空闲链

      连续的空闲盘块组成一个空闲盘区
      空闲盘区中的第一个盘块内记录了盘区的长度、下一个盘区的指针
      
      如何分配:某文件申请K个盘块,则可以采用首次适应、最佳适应等算法,从链头开始检索,按照算法规则找到一个符合
      		   要求的空闲盘区, 分配给文件。若没有合适的连续空闲块,也可以将不同盘区的盘块同时分配给一个文件,
      	 	   注意分配后可能要修改相应的链指针、盘区大小等数据
      如何回收:若回收区和某个空闲盘区相邻,则需要将回收区合并到空闲盘区中。若回收区没有和任何空闲区相邻,将回收
      	 	   区作为单独的一个空闲盘区挂到链尾。
    

在这里插入图片描述

位示图法
  • 位示图——连续分配、离散分配都适用
    每个二进制对应一个盘块。本例中,“0”代表盘块空闲,“1”代表盘块已分配。
    位示图一般用连续的“字”来表示。如本例中一个字的字长为16位,字中的每一位对应一个盘块。因此可用(字号,位号)对应一个盘块号

    	盘块号与(字号,位号)相互转换的公式
    	本例中盘块号、字号、位号从0开始,若n表示字长,则
    	(字号,位号)=(i,j)的二进制位对应的盘块号b=ni+j
    		b号盘块对应的字号i=b/n,位号j=b%n
    

    在这里插入图片描述
    在这里插入图片描述

    如何分配:若文件需要K个块,
    		①顺序扫描位示图,找到K个相邻或不相邻的“0”;
    		②根据字号、位号算出对应的盘块号,将相应盘块分配给文件;
    		③将相应位设置为“1”。
    
成组链接法

文件共享

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

  • 索引结点,是一种文件目录瘦身策略。由于检索文件时只需要用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。
  • 索引结点中设置一个连接计数变量count,用于标识链接到本索引节点上的用户目录项数。
  • 若某个用户决定“删除”文件,则只是把用户目录中与改文件对应的目录项删除,且索引结点的count值减1。

基于符号链的共享方式(软链接)

  • 在一个Link型文件中记录共享文件的存放路径(类似于Windows中的快捷方式)
  • 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link型文件中的路径去查找共享文件会失败(找不到对应目录项)
  • 由于用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O

文件保护

口令保护

为文件设置一个“口令”(如:abc1123),用户请求访问改文件时必须提供“口令”
优点:保存口令的空闲开销不多,验证口令的时间开销也小
缺点:正确的口令存放在系统内部,不够安全

加密保护

使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密
Eg:一个最简单的加密算法——异或加密

优点:保密性强,不需要再系统中存储“密码”
缺点:编码/译码,或者说加密/解密需要花费一定时间

访问控制

在每个文件的(FCB)中增加一个访问控制列表(ACL),该表中记录了各个用户可以对该文件执行哪些操作
实现灵活,可以实现复杂的文件保护功能

文件系统的层次结构

在这里插入图片描述

磁盘结构

磁盘、磁道、扇区

  • 磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据
    在这里插入图片描述

  • 磁盘的盘面被划分为一个个磁道。一个“圈”就是一个磁道

  • 一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同。
    在这里插入图片描述

  • 最内侧的磁道上的扇区面积最小,因此数据密度最大

在磁盘中读/写数据

  1. 需要把“磁头”移动到想要读/写的扇区所在的磁道
  2. 磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作

盘面/柱面的概念

  • 磁盘有多个盘片“摞”起来,每个盘片有两个盘面
  • 所有盘面中相对位置自相同的磁道组成柱面

磁盘的物理地址

  • 可用**(柱面号,盘面号,扇区号)**来定位任意一个“磁盘块”。

磁盘的分类

根据磁头是否可移动
  • 活动头磁盘
    磁头可以移动的称为活动头磁盘,磁臂可以来回伸缩来带动磁头定位磁道
  • 固定头磁盘
    磁头不可移动的称为固定头磁盘。这种磁盘中每个磁道有一个磁头
根据盘片是否可更换
  • 固定盘磁盘
  • 可换盘磁盘

磁盘调度算法

一次磁盘读/写操作需要的时间

  • 寻找时间(寻道时间)Ts:在读/写数据之前,将磁头移动到指定磁道所花的时间
    移动磁头臂 是需要时间的。假设耗时为s;
    移动磁头也是需要时间的。假设磁头是匀速移动,每跨越一个磁道耗时为m,总共需要跨越n条磁道。则:
    寻道时间Ts=s+m*n
  • 延迟时间Tr:通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设磁盘转速为r(单位:转/秒,或转/分),则平均所需的延迟时间Tr=(1/2)*(1/r)=1/2r
  • 传输时间Tt:从磁盘读出或向磁盘写入数据所经历的时间,假设磁盘转速为r,此次读/写的字节数为b,每个磁道上的字节数为N。则:
    传输时间Tt=(1/r)*(b/N)=b/(rN)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值