文件管理/磁盘管理

在这里插入图片描述
文件定义: 可以由某个应用打开的磁盘上的信息集合体。 磁盘管理=文件管理。建立文件系统来管理磁盘
文件的属性?——FCB
不同的文件以怎样的结构组织在一起? —目录结构

目录层次组织:路径(文件所在目录)+文件表(最终真实的文件,FCB)+ 活动文件表(内存中缓存思想)
路径:在这里插入图片描述
目录表项:
在这里插入图片描述
最终的目录下,是一张表,每一项就是一个文件的FCB,存储着该文件的基本属性(名称,地址,类型,最后打开时间)

FCB(File Control Block): 文件的属性集合
FCB包括:
1.基本信息----文件名、文件的物理地址
2.存取控制信息----文件的存取权限(只读,只写)
3.使用信息类----文件类型(pdf,jpg),文件最后打开/创建时间、当前使用信息
在这里插入图片描述
路径—— 绝对路径/工作路径
绝对路径名: 完整的路径,从根目录到具体文件
相对路径名:
在这里插入图片描述
目录: 路径 + 文件表, 用来记录文件的逻辑位置,方便用户分类文件
根目录:最顶级的目录
目录也是一种文件, windows中建立文件夹,实际上是建立了一个目录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
活动文件表: 在内存中建立一张表,存储已经打开的文件的FCB
访问(打开)文件时, 通过一次文件名完整查找(路径 + 文件表项), 将该文件的目录项信息(FCB)导入活动文件表(内存)中, 进程就可以直接在内存中访问文件,而不用再依据绝对路径查找文件
用“关闭“操作切断用户进程和文件的关系, 移出活动文件表(内存)


文件的物理结构——磁盘管理 : 磁盘如何存储文件? 磁盘如何管理空闲空间?
管理核心思想:操作系统对各种实体的管理,说白了就是拿张表格分配资源,有资源信息的表格,也有使用者信息的表格。文件管理和磁盘空间管理,是一体两面。

磁盘上文件空间管理
1.连续文件结构:最简单的物理文件结构,它把一个在逻辑上连续的文件信息依次存放到物理块中。 磁带,光盘。
在这里插入图片描述
2.串联文件结构:串联文件结构用离散分配,即非连续的物理块来存放文件信息。这些非连续的物理块之间没有顺序关系,其中每一个物理块设有一个指针,指向其后续物理块,从而使得存放同一文件的物理块链接成一个串联队列
在这里插入图片描述
如图所示,文件说明信息表示存放文件第一个的物理块号为20,该文件拥有一个指向文件首块的指针,文件首块的数据区保存文件真正的数据,指针区则指向存放该文件的下一个物理块,以此类推,采用的是类似于链表的结构表示一个存放位置不连续的文件。

3.索引文件结构:——拿张表格分配资源(实用,核心管理方式),可实现文件大小动态扩充(如word,不需要创建文件时就指定文件大小)
索引文件要求系统为每个文件建立一张索引表,表中每一个栏目指出文件信息所在的逻辑块号和与之对应的物理块号。
在这里插入图片描述
如图所示,索引分配方式将每个文件的所有盘块号都集中存放在一个索引表(逻辑块与物理块的映射表)中,这是个磁盘块地址数组,根据逻辑块号找到对应的物理块号,根据物理块号到磁盘找具体的数据块即可。

磁盘空闲空间管理方法:
空闲磁盘管理: 视频链接
bilibili
1.空闲表法: 创建一个索引表,记录磁盘空闲区
2.空闲链表法: 用指针将空闲区串起来,形成一个链表。
3.位示图法:不常用
4.成组链接法(实际使用): 综合索引表和指针链的优点, 将几个空闲区(可以不连续)集成一个索引表,再用指针将索引表集成指针链
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.空闲表法
操作系统把各个盘区{连续的空闲块}记录下来。表格上的信息是:
| 序号 | 每个盘区第一个空闲块号 | 该盘区空闲盘块数 | //一般是按空闲块号递增
在分配空闲块时,操作系统会根据不同的策略{首次适应算法、循环首次适应算法等},找到符合要求的空闲盘区,分配出去,然后根据分配结果修改空闲表;
在回收空闲块时,操作系统会考虑回收块的相邻块是否空闲,如果空闲的话予以合并,否则就将回收块记录进空闲表。
2.空闲链表法
操作系统把空闲盘块或盘区{连续的盘块}连成一条链,也就是在空闲盘块或盘区内部的尾部加上指向下一个空闲盘块或盘区的指针。操作系统需要保存链头和链尾的指针。
若是空闲盘块链,在分配时,操作系统会把链头摘下空闲块分配给文件;在回收时,操作系统会把空闲块挂到链尾上;
若是空闲盘区链,在分配时,操作系统会找到首个适应大小的盘区摘下分配给文件,或者若没有足够大的盘区,就将若干个小盘区分配给文件,然后维护指针和盘区大小信息;在回收时,会考虑回收区相邻盘块是否空闲,如果空闲就进行合并,维护指针和盘区大小信息,否则就挂到链尾。
3.位示图法
操作系统用比特位标识盘块的空闲情况,一个比特位对应一个盘块,比特位排列成二维矩阵。
在分配空闲块时,操作系统会按顺序扫描位示图,从而找到空闲磁盘块,然后按照比特位的位置获得空闲磁盘块的块号,将其分配出去,最后对该比特位取反;
在回收空闲块时,操作系统会将盘块号转化成行列号,将对应比特位取反即可。
4.成组链接法
操作系统将空闲盘块(可以不相邻)分组,每组第一个盘块拥有一张索引栈,索引下一组的所有空闲块。
在分配空闲块时,操作系统会将第一组的第一个盘块装入内存(这时候它就叫超级块啦),在分配空闲块的时候,操作系统会按照要求将栈顶盘块分配给文件(即出栈操作),并维护索引栈的大小,如果栈空了,就把该盘块分配出去,然后装入下一个分组的第一个盘块;
在回收空闲块时,操作系统会将空闲块入栈,如果栈满了,就把回收来的块单独成组(大小为1),然后把回收满的组推后到第二组。

其他补充:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目录操作:在这里插入图片描述
流式文件:
文件的内容在读写时,输入输出的数据流的开始和结束仅受程序控制而不受物理符号(如回车换行符)控制。也就是说,在输出时不以回车换行符作为记录的间隔。我们把这种文件称为流式文件。 如程序代码文件

记录式文件: 可随意编辑记录— 如word,记事本,excel

记录式文件与数据库区别
文件系统不支持文件之间关联,每个文件都是独立的信息集。 数据库中的表可以通过join等方式关联查询。

扫描二维码关注公众号,回复: 10045151 查看本文章

目录结构的发展:
1.一级表: 直接用一张表记录所有文件 没法分用户,重名各种问题
2.二级表: 一个主表区分用户,再加子表记录文件 —— 仍旧不方便用户使用
3.层次组织: 文件路径(文件所在子目录) + 目录表项(子目录中的实际文件)

文件存取方法—基于文件的物理结构:
在这里插入图片描述
文件保护(文件操作权限)—— 用户操作文件时,指定操作方法, 核对文件的操作权限属性,从而实现文件保护
在这里插入图片描述
直观操作: 对于word文件
1.文件目录,文件表(见上)
2.文件操作
在这里插入图片描述
3.文件属性:
在这里插入图片描述

发布了54 篇原创文章 · 获赞 1 · 访问量 2738

猜你喜欢

转载自blog.csdn.net/weixin_44682507/article/details/103648974