操作系统第四章:文件管理

初识文件管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目录是一种特殊的有结构文件

在这里插入图片描述
外存也是分为一个个物理块

文件的逻辑结构

1.无结构文件

文件内部就是字符流

2.有结构文件(还有个哈希)

在这里插入图片描述

在这里插入图片描述
按照有结构文件中的各条记录在逻辑上如何组织,又分为三类

①顺序文件

在这里插入图片描述
串结构:顺序与关键字无关
顺序结构:记录按关键字顺序排列(如学生的学号)

在这里插入图片描述
顺序存储的定长记录:可以实现随机存取,因为只要计算一下记录的位置就行了。而很明显变长是没法这样计算的

如果顺序存储还按照顺序结构(关键字排列),那么可以很轻松的找到某个关键字的记录。

顺序文件增删一个记录很困难,涉及很多记录的移动。

一般来说提及顺序文件指的是顺序存储的情况

②索引文件

在这里插入图片描述
索引表是一个顺序文件,找到索引表里对应的指针就可以找到相应的文件。

缺点:索引表由于是连续存放的,有可能会占很大空间

在这里插入图片描述
一个组对应一个索引项,记住都是乱排的,要找某个项得从开头找(这样方便修改)
在这里插入图片描述

在这里插入图片描述
想再减少查找次数就建立多级索引,为了方便修改,也是随便排的(没有像图里那样按顺序排列,都是打乱了排的)

小结

在这里插入图片描述

在这里插入图片描述
索引文件支持随机存取:可以直接取出第n个索引项的数据

但是索引表里的那些记录是没有按顺序排列的,还是要一个一个去找(只有索引表是按关键字顺序排列才能实现快速检索,但是这样就会使增删记录耗费更多的代价)

文件目录

1.文件控制块(FCB)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以说一个目录下不能有重名的文件,因为操作系统是根据名字在目录表中找到相应的FCB(目录表里的一条记录)

2.目录结构
①单级目录结构

在这里插入图片描述

②两级目录结构

在这里插入图片描述

③多级目录结构

在这里插入图片描述
在这里插入图片描述
绝对路径:从根目录出发
相对路径:从当前目录出发

④无环图目录结构

在这里插入图片描述
有计数器count,用户删除只是删除自己的FCB并使count-1,只有count=0的时候才会真正把文件删除

3.索引结点

在这里插入图片描述
使目录表瘦身,这样让每个块装更多的目录项,减少磁盘I/O次数,提升文件检索速度(每次磁盘I/O读入一块)

只在目录项里放文件名和索引结点指针,找到文件名才根据指针找到对应的索引结点,各种信息都放在索引结点里(除了文件名)

小结

在这里插入图片描述

文件的物理结构

1.连续分配

在这里插入图片描述
通过文件名在文件目录中找到起始块号,再通过逻辑块号算出物理地址(用长度检查是否越界)

优点:连续分配的文件在顺序读写时速度最快

缺点:不方便拓展(需要连续的空间),存储空间利用率低,会产生外部碎片

2.链接分配

为文件分配离散的磁盘块

① 隐式链接

在这里插入图片描述
文件目录中存放起始块号和结束块号,只能一个一个挨着访问(只支持顺序访问)。在每个磁盘块中保存指向下一个磁盘块的指针。

优点:方便拓展回收(修改FCB和磁盘块的指针就行),不会产生碎片,外存利用率高(所有块都可以用到)

缺点:只支持顺序访问,不支持随机访问,查找效率低,要耗费块中一定空间存放指针

②显式链接

在这里插入图片描述
在这里插入图片描述
块是最后一个的时候,下一块设为-1(标志)

每个磁盘一个 FAT(文件分配表),常驻系统内存

显式链接是支持随机访问的
在这里插入图片描述

3.索引分配

在这里插入图片描述
目录中存放文件的索引块在哪,每个文件对应一个索引,每个索引也存在磁盘上,再在索引块里用逻辑块号找到对应的物理块号,访问想要的数据。

索引分配支持随机访问,拓展很容易,但是索引表需要占用一定空间。

如果索引项太多了,一个磁盘块装不下,就需要几个解决方法

①链接方案

在这里插入图片描述

一个不够就用几个链接,每个索引块存储一个指针指向下一个索引块,所以这种要一个一个顺序访问才能找到后面的。

②多层索引

在这里插入图片描述
缺点:就算是小文件也要慢慢查

③混合索引

在这里插入图片描述

小结

在这里插入图片描述

小结

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

文件存储空间管理

在这里插入图片描述

1.空闲表法

在这里插入图片描述

2.空闲链表法

在这里插入图片描述

①空闲盘块链

在这里插入图片描述

②空闲盘区链

在这里插入图片描述
先找有没有连续的满足要求的盘区,没有的话跨盘区分配出来也可以,这就既能满足连续分配也能满足离散分配。

修改之后要记得改指针和盘区大小等数据

3.位示图法

在这里插入图片描述
在这里插入图片描述
注意字号、位号是从0还是1开始

连续分配、离散分配都适用(找连续的0就是连续分配)

4.成组链接法

这个理解就行了,比较复杂
在这里插入图片描述
超级块看成一个起始的块就行了,只有一个

①记录的方法

在这里插入图片描述
第一个记录空闲盘块数(不占位置,严格说是和记录300的放在一起的),下一个300 表示下一组物理空闲块的物理盘块号为300(它不是空闲块,里面放着下一组的块号数据,分配的时候想用它就要把这些数据先复制到超级块中才能把300这个块分出去),然后接下来的99个块才保存真正的可用的空闲块,也就是说每个组只有99块可用(就是啥都没有的空闲块,可以直接使用),但是,每组还是有100块!!!(就是上面记录的是100,记录的是别的话也要会推)

然后最后一个组,数量记的是99,很简单,因为再后面没有组了,就把第一个号记为-1(标记),而这个是没啥意义的,所以最后记成99个可用的。

②分配

在这里插入图片描述
以分配100个为例:第一个分组里有100个,是足够的,不过要注意一个点:100个里有1个是放了下一组的数据的,所以我们要把下一组的数据复制到超级块中,然后就可以把这个块分配出去啦。

③回收

在这里插入图片描述
回收的时候如果超出了一个块能装的大小(假如100个),那就把超级块里的内容复制到其中某块中,然后超级块再把多出来的块号写下来就行了,第一个块号记录的就是超级块之前内容复制到的块号。

小结

在这里插入图片描述

文件共享

1.基于索引结点(硬链接)

在这里插入图片描述

2.基于符号链(软链接)

在这里插入图片描述
软链接像快捷方式

如果文件1被删了,文件2依旧会存在,只不过它无法访问文件1了

小结

在这里插入图片描述

文件保护

1.口令保护

在这里插入图片描述
系统里保存了一个口令,输口令,对了就可以访问

容易被破解

2.加密保护

和输密码完全不同,加密是直接通过某种方式把文件搞成很奇怪的样子,这样如果没有解密的方法读出来的东西是非常怪的(一堆乱码),只有正确的解密才能得到真正的文件

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

3.访问控制

在这里插入图片描述
在这里插入图片描述
操作系统可以通过访问控制实现比较复杂的保护

小结

在这里插入图片描述

文件系统的层次结构

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

磁盘的结构

在这里插入图片描述
需要把“磁头”移动到想要读/写的扇区所在的磁道。磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。

在这里插入图片描述
活动头磁盘:每个盘面一个磁头,磁头在磁道间移动

固定头磁盘:磁头不可移动,每个磁道一个磁头,每个盘面很多很多磁头

可换盘磁盘:盘片可以换
固定盘磁盘:盘片不能换

在这里插入图片描述

磁盘调度算法

在这里插入图片描述
1/r是转一圈所需时间

b/N是需要转的圈数,所以时间是(1/r)*(b/N)=b/(rN)

操作系统没法优化转速,只能从寻找时间上优化(这就是磁盘调度算法)

1.先来先服务算法(FCFS)

在这里插入图片描述

2.最短寻找时间优先(SSTF)

在这里插入图片描述
有可能导致饥饿

3.扫描算法(SCAN)、LOOK算法

在这里插入图片描述
一般来说做题时说到扫描算法默认是LOOK算法,SCAN说的就是要到尽头才调头。

优点:不会产生饥饿
缺点:各个磁道响应频率不平均,最边上的响应完回来又响应,而中间的等的时间就要久一些

4.循环扫描(C-SCAN)、C-LOOK

在这里插入图片描述
循环顾名思义,过去了之后直接回来,不处理中间的,从最左边再过去一次

优点:使各个磁道的响应频率均匀
缺点:移动长度肯定变长了,慢一些

本质上来说SCAN和LOOK差不多,只是SCAN要到头才能掉头,而LOOK只需要到有请求的最后一个磁道或者第一个磁道(回去的时候)就可以了。一般来说在题里面没有特殊说明的话都是默认为LOOK和C-LOOK

小结

在这里插入图片描述

减少延迟时间的方法

磁头读入一个扇区数据后需要一小段时间处理,如果逻辑上相邻的扇区在物理上也相邻,则读入几个连续的逻辑扇区,可能需要很长的“延迟时间”(处理的时候没法读入,所以如果相邻的话得再等一圈才开始读入)

1.交替编号

在这里插入图片描述
差不多处理完了就到下一个扇区了,刚好接着开始

2.错位命名

在这里插入图片描述
所有盘面是一起连轴转动的,所以如果0号盘面最后一块读完了该读1号盘面第一块的时候,由于命名相同,直接轮到它,就无法读入(还要一点时间处理),所以采取错位命名,上下对应的不一样,这样处理完了就差不多刚好开始读入

3.磁盘地址结构的设计

在这里插入图片描述
如果是(柱面号,盘面号,扇区号)就只需激活下一个盘面的磁头就行,减少了移动磁头的次数(另一种物理地址结构要移动太多次磁头,每个盘面都要移动几次磁头)

小结

在这里插入图片描述

磁盘的管理

1.磁盘的初始化

在这里插入图片描述

2.引导块

在这里插入图片描述

在这里插入图片描述

3.坏块的管理

在这里插入图片描述
备用扇区的处理方法对操作系统透明,操作系统还是当各个扇区是好的,管理备用扇区和替换坏块的操作由磁盘控制器处理。

小结

在这里插入图片描述

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于一切,历史,数学,科学和有趣的事实的随机事实,与原始的高品质的背景图像! 随机和有趣的事实无处不在!在每一个新的选项卡上,你会得到一个有关历史上一天的随机事件,或一个数字的魔法,或一个事件发生在一个特定的一年,所有这些都完全惊人,高品质的背景图像,同时保持你最访问网页上的网址和热门社交图标,优雅而有用。现在用“随机事实”打开一个新标签会更有趣! 点击此窗口右上角的“添加到Chrome”按钮。然后谷歌浏览器将自动添加和激活随机数据扩展。该扩展程序将需要您获得关于扩展功能的许可,并说“随机事实要与您的网页进行交互”,这与扩展的用途完全无关。该权限仅用于从远程服务器获取背景图像。 在您批准权限后,立即激活扩展程序,您将从现在开始在每个新选项卡上看到随机事实,并带有令人惊叹的图像! 现场演示:https://karakanb.github.io/random-facts-extension/ v.2.1.0 - 超过600%的性能。 - 更好的本地请求结构。 - 通过更可靠的解决方案改进了指数显示。 - 文件大小减少了3倍。 - 扩展现在是开源的:https://goo.gl/wWm0dP ----- v.2.0.1 - 附加的字符串解析器 - 更好地呈现指数数字 - 增加了页面加载性能 ----- v.2.0.0 - 顶部的社交图标! - 底部访问量最大的页面! - 升级的背景图像质量 - 更快的页面加载 - 视网膜显示器的全高清SVG图标 - 所有图标的原始品牌颜色 - 升级可爱的消息丢失的连接 - 错误修复更快的使用 ----- 如果您有任何问题或功能要求,或错误报告,请与我联系! 支持语言:English
提供维基媒体项目的链接,并跟踪您的监视列表上的新项目。 灵活的扩展程序,提供指向多个Wikimedia项目的链接,可以跟踪监视列表中的新项目,并允许您从多功能栏中搜索Wiki。 该扩展程序可以链接到Wiki项目主页,您的监视列表,随机页面或WikiHub。 该页面可以在新选项卡或当前选项卡中打开。 可以在omni-bar上搜索Wiki项目,方法是键入“ wiki”,后跟空格和您的搜索。 您可以选择任何Wikimedia支持的语言来链接到该扩展。 您还可以在扩展程序中自定义监视列表设置,以便每次您通过扩展程序访问监视列表时都进行设置。 该扩展程序还可以跟踪监视列表中的新项目,并显示自上次通过插件访问以来添加到监视列表中的项目数。 您可以关闭此功能,并设置检查频率以节省按MB支付数据的费用。 最新更新1.7.0-添加了可选的上下文菜单-修复了选项页面1.6.1中的几个JS异常-修复了WikiData搜索的错误。 -删除了监视WikiData监视列表的选项。 1.6.0-修复了连接错误错误-移至MediaWiki API以提高稳定性-向搜索栏添加了建议1.5.4-修复了选项1.5.3中的语言问题-修复了WikiData上的权限问题-添加了对Wikivoyage 1.5的支持 2-修复了新的未登录问题1.5.1-修复了未登录的问题-添加了对Wikidata 1.5.0的支持-添加了链接到WikiHub的选项-来自TezSoft的新Wikimedia mashup-已更新为清单2,以确保将来与Chrome兼容并提高安全性-不再支持锁定的语言-如果找不到完全匹配的内容,Omnibar搜索现在可以返回搜索结果 支持语言:English (UK)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值