计算机操作系统(文件管理章节)

文件管理

1、文件的逻辑结构

知识总览

在这里插入图片描述

  • 无结构文件:文件内部数据就是一些列二进制流或字符流组成。又称“流式文件”。如Windows中的 .txt 文件。
  • 有结构文件:由一组相似的记录组成,又称“记录式文件”,每条记录有若干个数据项组成。如数据库表文件。一般来说,每条记录有一个数据项可作为关键字。根据各条记录的长度(占用储存空间)是否相等,又可分为定长记录可变长记录在这里插入图片描述
    在这里插入图片描述

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


顺序文件

顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。在这里插入图片描述

根据记录是否按照关键字的顺序排列:
在这里插入图片描述


假设:已经知道了文件的起始地址( 也就是第一个记录存放的位置)
思考1:能否快速找到第i个记录对应的地址?(即能否实现随机存取)
思考2:能否快速找到某个关键字对应的记录存放的位置?
在这里插入图片描述


对于可变长记录文件,要找到第i个记录,必须先顺序第查找前i-1个记录,但是很多应用场景中又必须使用可变长记录。如何解决这个问题?

索引文件

在这里插入图片描述


思考索引文件的缺点:每个记录对应一个索引表项,因此索引表可能会很大。比如:文件的每个记录平均只占8B,而每个索引表项占32个字节,那么索引表都要比文件内容本身大4倍,这样对存储空间的利用率就太低了。

索引顺序文件

在这里插入图片描述

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

2、文件目录

知识总览

image-20221212133828193

文件控制块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Iu6gOUw-1671325514391)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TahjQqel-1671325514413)(null)]

单级目录结构

image-20221212135451821

两级目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lugkUUoe-1671325514458)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RXw1FoG7-1671325514424)(null)]

image-20221212140415600

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

无环图目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BzzU21FG-1671325514447)(null)]

索引结点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKvUisAs-1671325514437)(null)]

image-20221212141306046

3、文件的物理管理

知识总览

image-20221212141722744

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ILJSk3uM-1671327120512)(C:\Users\王东豪\AppData\Roaming\Typora\typora-user-images\image-20221212141848930.png)]

文件块、磁盘块

image-20221212142244690

连续分配

image-20221212145110864

image-20221212145415463

缺点:

image-20221212145546582

image-20221212162448744

优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快
缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片

链接分配

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

隐式链接

image-20221212162741862

image-20221212162927154

隐式链接–除文件的最后 一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指针。
优点:很方便文件拓展,不会有碎片问题,外存利用率高。
缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间。

显示链接

image-20221212164829611

显式链接- --把用于链接文件各物理块的指针显式地存放在一张表中,即文件分配表(FAT, FileAllocation Table)。一个磁盘只会建立一张文件分配表。开机时文件分配表放入内存,并常驻内存。

优点:很方便文件拓展,不会有碎片问题,外存利用率高,并且支持随机访问。相比于隐式链接来说,地址转换时不需要访问磁盘,因此文件的访问效率更高。
缺点:文件分配表的需要占用一定的存储空间。

考试题目中遇到未指明隐式/显式的“链接分配”,默认指的是隐式链接的链接分配

索引分配

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RhMPtUEc-1671327122406)(null)]

image-20221213083030326

若每个磁盘块1KB,一个索引表项4B,则一个磁盘块只能存放256个引项。如果一个文件的大小超过了256块,那么一个磁盘块是装不下文件的整张索引表的,如何解决这个问题?

  • 链接方案
  • 多层索引
  • 混合索引

链接方案

image-20221213083739837

多层索引

image-20221213084336197

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

假设1个文件只有1kb大小,如果在多层索引的系统中,就需要3次访问磁盘,如何解决这个问题?

混合索引

image-20221213085302955

索引分配总结:

①链接方案:如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放。缺点:若文件很大,索引表很长,就需要将很多个索引块链接起来。想要找到i号索引块,必须先依次读入0~i-1号索引块,这就导致磁盘I/O次数过多,查找效率低下。

②多层索引:建立多层索引(原理类似于多级页表)。使第一层索引块指向第二层的索引块。还可根据文件大小的要求再建立第三层、第四层索引块。采用K层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要K+ 1次读磁盘操作。缺点:即使是小文件,访问一个数据块依然需要K+1次读磁盘。

③混合索引:多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一-级间接索引(指向单层索引表)、还包含两级间接索引(指向两层索引表)。优点:对于小文件来说,访问一个数据块所需的读磁盘次数更少。

超级超级超级重要考点:①要会根据多层索引、混合索引的结构计算出文件的最大长度(Key: 各级索引表最大不能超过一一个块) ;②要能自己分析访问某个数据块所需要的读磁盘次数(Key: FCB中 会存有指向顶级索引块的指针,因此可以根据FCB读入顶级索引块。每次读入下一级的索引块都需要一次读磁盘操作。另外,要注意题目条件——顶级索引块是否已调入内存)

综合总结

image-20221213090005382

4、文件储存空间管理

知识总览

image-20221213090450646

image-20221213090551639

储存空间的划分与初始化

image-20221213091224845

空闲表法

image-20221213091438556

image-20221213091543988

空闲链表法

image-20221213091933989

位示图法

image-20221213092906080

image-20221213094357336

成组链接法

image-20221213094652855

image-20221213101741627

image-20221213101713232

image-20221213101954030

image-20221213102016611

5、文件的基本操作

知识总览

image-20221213135932603

创造文件

image-20221213144025317

删除文件

image-20221213144146888

打开文件

image-20221213145109983

image-20221213145419403

关闭文件

image-20221213145617126

读文件

image-20221213150823278

写文件

image-20221213151038723

6、文件共享

知识总览

image-20221213153808427

口令保护

image-20221213153745910

加密保护

image-20221213153722983

访问控制

image-20221213154331251

image-20221213155330340

8、文件系统层次结构

image-20221213155833838
image-20221213160811962

9、磁盘结构

磁盘、磁道、扇区

image-20221213161213171

如何在磁盘中读/写数据?

image-20221213161412744

盘面、柱面

image-20221213161838673

磁盘的物理地址

image-20221213161756962

磁盘的分类

image-20221213162022850

image-20221213162034340

知识汇总

image-20221213162058007

10、磁盘调度算法

知识总览

image-20221215152107166

磁盘调度算法会影响一次读/写磁盘所需要的时间

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

image-20221215152321410

image-20221215152901966

image-20221215152748056

image-20221215152935947

image-20221215153559862

延迟时间和传输时间都与磁盘转速相关,且为线性相关。而转速是硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间。但是操作系统的磁盘调度算法会直接影响寻道时间

先来先服务算法(FCFS)

image-20221215155116952

最短寻找时间算法(SSTF)

image-20221215155717437

扫描算法(SCAN)

image-20221215160220628

LOOK调度算法

image-20221215160430325

循环扫描算法(C-SCAN)

image-20221215160832254

C-LOOK调度算法

image-20221215160959272

11、减少磁盘延迟时间的方法

前景回顾

image-20221215161523371

交替编号

image-20221215162004221

若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。

磁盘地址结构的设计

思考:为什么磁盘的物理地址是(柱面号,盘面号,扇区号),而不是(盘面号,柱面号,扇区号)?

答:读取地址连续的磁盘块时,采用(柱面号,盘面号,扇区号)的地址结构可以减少磁头移动消耗的时间

image-20221216083946184

image-20221216084028597

错位命名法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZHBlrvTC-1671328194535)(null)]

image-20221216084658175

由于采用错位命名法,因此读取完磁盘块(000, 00, 111)之后,还有一段时 间处理,当(000, 01, 000)第一次划过1号盘面的磁头下方时,就可以直接读取数据。从而减少了延迟时间。

知识总结

image-20221216084803459

12、磁盘的管理

知识总览

image-20221216084948697

磁盘初始化

磁盘出厂前只完成了磁道的划分

image-20221216085137104

磁盘初始化:

Step 1:进行低级格式化(物理格式化),将磁盘的各个磁道划分为扇区。一个扇区通常可分为头、数据区域( 如512B大小)、尾三个部分组成。管理扇区所需要的各种数据结构一般存放在头、尾两个部分,包括扇区校验码( 如奇偶校验、CRC循环冗余校验码等,校验码用于校验扇区中的数据是否发生错误)。

image-20221216085253219

Step2:将磁盘分区,每个分区由若干柱面组成(即分为我们熟悉的C盘、D盘、E盘)。

image-20221216085538023

Step3:进行逻辑格式化,创建文件系统。包括创建文件系统的根目录、初始化存储空间管理所用的数据结构(如位示图、空闲分区表)。

引导快

计算机开机时需要进行一系列初始化的工作,这些初始化工作是通过执行初始化程序( 自举程序)完成的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHMfwVWK-1671328276999)(null)]

初始化程序程序(自举程序)放在ROM中存在什么问题?
万一需要更新自举程序,将会很不方便,因为ROM中的数据无法更改。如何解决呢?

image-20221216090239241

自举程序:复杂度高,不可能保证永远不会更新;

自举装入程序:很小,不复杂,几乎不用更新。

当自举程序需要更新时,只需要在磁盘固定的引导快中装入新的自举程序即可。

坏块管理

image-20221216091018737

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值