王道计算机考研 操作系统学习笔记 + 完整思维导图篇章四: 文件管理

目录

文件管理

文件的逻辑结构

无结构文件

有结构文件

顺序文件

索引文件

索引顺序文件 

文件目录

文件控制块(FCB)

目录结构分类

单级目录结构

 两级目录结构

多级目录结构 (树形目录结构)

无环图目录结构

索引节点

文件的物理结构(文件分配方式)

文件块、磁盘块

文件分配方式 

连续分配

链接分配 

索引分配

文件存储空间管理

存储空间的划分与初始化

存储空间管理 

空闲表法

 空闲链表法

位示图法 

成组链接法

文件的基本操作 

创建文件 

删除文件

打开文件 

关闭文件

读取文件 

写文件 

文件共享

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

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

文件保护 

口令保护 

加密保护

​编辑访问控制

文件系统的层次结构 

文件系统的全局结构

物理格式化

逻辑格式化

文件系统在内存中的结构

文件管理

初识文件管理

 

 文件的逻辑结构

但实际上, 可变长记录文件才是我们日常生活中使用的比较的多的。不然你写个word,写到一半突然没有空间了咋办。

有结构文件根据有结构文件中的各条记录在逻辑上如何组织,可以分为三类:1. 顺序文件 2. 索引文件 3. 索引顺序文件

顺序文件

这也就是为啥说MySQL中的字符串字段在可以确定定长时尽量采用char,而不是varchar这种变长的类型 

索引文件

索引顺序文件 

        为了进一步提高检索效率,可以为顺序文件建立多级索引表。例如,对于一个含 106个记录的文件,可先为该文件建立一张低级索引表,每 100 个记录为一组,故低级索引表中共有 10000个表项(即10000个定长记录),再把这 10000 个定长记录分组,每组100个,为其建立顶级索引表,故顶级索引表中共有 100 个表项。


文件目录

文件控制块(FCB)

        一个FCB就是一个文件目录项

        FCB 的有序集合称为"文件目录"FCB 中包含了文件的基本信息 (文件名、物理地址、逻辑结构、物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)。

FCB 实现了文件名和文件之间的映射。使可用户(用户程序)以实现“按名存取"

目录结构分类

单级目录结构

        早期操作系统并不支持多级目录,整个系统中只建立一张目录表,每个文件占一个目录项

 两级目录结构

        早期的多用户操作系统,采用两级目录结构。分为主文件目录 (MFD,Master File Directory) 和用户文件目录(UFD,User Flie Directory)

多级目录结构 (树形目录结构)

树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了“无环图目录结构”


无环图目录结构


索引节点(FCB的改进)


文件的物理结构(文件分配方式)

文件块、磁盘块

类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。很多操作系统中,磁盘块的大小与内存块、页面的大小相同.

内存与磁盘之间的数据交换 (即读/写操作、磁盘I/0) 都是以“块”为单位进行的。即每次读入一块,或每次写出一块

文件分配方式 

连续分配

优点: 

读取某个磁盘块时,需要移动磁头。访问的两个磁盘块相隔越远,移动磁头所需时间就越长
结论:连续分配的文件在顺序读/写时速度最快

缺点: 

结论:物理上采用连续分配的文件不方便拓展 


链接分配 

链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接显式链接两种

隐式链接


显示链接


索引分配

 链接方案:如果索引表太大,一个磁盘块装不下,那么可以将多个索引块链接起来存放。

 


多层索引:建立多层索引(原理类似于多级页表)。使第一层索引块指向第二层的索引块。还可根据文件大小的要求再建立第三层、第四层索引块。

采用 K 层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要 K + 1 次读磁盘操作 


混合索引:多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一级间接索引(指向单层索引表)、还包含两级间接索引(指向两层索引表) 。 


文件存储空间管理

存储空间的划分与初始化

存储空间管理 

空闲表法

 空闲链表法

位示图法 


成组链接法

空闲表法、空闲链表法不适用于大型文件系统,因为空闲表或空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理

超级块中存储了当前的部分空闲盘块号,但要注意的是,第一个空闲盘块中存储了下一部分的空闲盘块的数据,为了避免这个空闲块被文件内容占用覆盖,所以会把这些记录数据写到超级块中进行保存(这时候超级块中是没有数据了的,因为你都要用第一个空闲块了,说明你超级块中所记录的那些空闲块都被占用了)

 


文件的基本操作 

创建文件 

删除文件

打开文件 

关闭文件

读取文件 

写文件 


文件共享

注意:

        多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。

        如果是多个用户都"复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。

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

        知识回顾:索引结点,是一种文件目录瘦身策略。由于检索文件时只需用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。

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


文件保护 

口令保护 

加密保护

访问控制


文件系统的层次结构 


文件系统的全局结构

物理格式化

物理格式化,即低级格式化——划分扇区,检测坏扇区,并用备用扇区替换坏扇区

逻辑格式化

逻辑格式化后,磁盘分区(分卷 Volume),完成各分区的文件系统初始化注:逻辑格式化后,灰色部分就有实际数据了,白色部分还没有数据 

文件系统在内存中的结构

注:近期访问过的目录文件会缓存在内存中,不用每次都从磁盘读入,这样可以加快目录检索速度

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学徒630

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值