《操作系统》文件管理

文件管理学什么?

注意点:文件管理是面向外存设计,外存的诞生是为了持久化(断电后依然可以进行读取)的存储文件,这一章我们可以参照我们电脑的随便打开一个文件夹进行理解。

  • 面向用户的存储,即用户可见(计算机内怎么存是计算机设置的)
  • 文件目录结构(计算机目录的发展)
  • 物理的存储
  • 用户可以做什么操作
  • 一种典型的存储器——磁盘的结构

文件系统的一些属性

逻辑结构:

目录:

功能:

外存如何存:

非连续存储和连续存储需要做的和解决的问题:

part1:文件的逻辑结构(用户看见的)

文件逻辑:

无结构文件就比如txt中的文件,一般只能看到字符和字母的流式文件

有结构文件,是对文件加了(关键字)限制,让文件看起来有逻辑条理一点。

有结构文件:分为可变长和定长的记录,

可变长记录:人物介绍等

定长:人物性别,学号等,长度固定。

顺序文件:

在逻辑上将文件一条一条有顺序的先后顺序排列(物理存储不归用户管理)

顺序文件的存储方式分为链式存储和顺序存储。

链式存储和不定长存储:都无法实现随机存取,定长可以。

索引文件:

本身是定长的顺序表,索引文件像书籍的目录,我们可以通过目录去找到对应的数据。索引文件通过对每一个数据项创建一个索引的表进行查询

索引顺序文件:

结合了索引和顺序文件的优点和用法。

索引本质上是通过空间换取时间,但索引内存大小有时会比内容都大,

顺序表又因为需要花费查询时间才能找到想要的内容,数据也多查询越慢。

结合两个方法:索引顺序文件诞生,

举例:就好像你要找《操作系统》文件管理的其中一块内容,索引会先带你到文件管理的那一页,剩下需要你看着一个一个找。

多级索引顺序文件:

和多级页表一样,通过时间换空间,更小的空间换更多的存储内容,牺牲了查询时间

part2:目录结构

文件控制块:

文件夹属性:

文件属性:

目录结构:

单级目录结构:

目录表无法创建文件夹:只能创建文件,故无法重名

二级目录:

通过user区分谁拥有这个文件,同用户不能重名。

多级目录结构:

树型结构,可以根据自己的需要进行创建,这一阶段,同一个文件夹之间不能同名,其他都可以同名。

无环图目录结构:

一个文件可以创建多个打开路径,删除文件需要把全部路径全删了。

索引结点:

通过创建一个索引表,去寻找文件

part2:文件的物理结构:

2.1文件分配

将文件分成一个一个块,一般和内存大小差不多,为了方便读取。

连续存储:

思想:为文件分配连续的存储地址,将文件连续的存入外存中,通过下半章磁盘管理我们知道我们查东西需要移动磁臂,这需要时间。连续存储则不会有这种问题。可以一直读。

优点:读写速度快。

缺点:当我们想继续分配的时候,可能后续的文件已经被分出去了。

链接分配:两种分配

显示链接和隐式链接:两种方法都是通过链接的方式去分散的存储文件。

隐式存储:通过上一个块号才能知道下一个块号在哪?不能随机访问。

显示链接:

在每个文件的开头,都会把存了东西的所有块号都按先后顺序表示出来。

方便顺序访问也方便随机存储。但读写速度没有顺序存储的快。

索引分配:

开始学的时候很懵,和上面的显示链接有什么区别。

这里,我们给一些特征,

第一、另外开一个空间做索引表,一个内存块存一个东西(现在的应用动不动就是十几g其实这种更利好,感觉……只是感觉)

第二、读写时分两次,第一次读索引表,通过cpu对索引表的查询再去外存找东西,查询速度更快。(上面的查询相当于给你任务你大海捞针,这里是cpu已经把目标的东西都拔下来了,你就按他说的做就行了)

当然也存在索引表比较大,一个内存块存不下的情况。

第一种解法:

在上一个索引表保存下一个索引表的地址。

第二种方案:

多层索引:为索引表做一个索引表。可以扩大内存,但又是典型的牺牲时间换空间。

第三种解法:

混合,有些不大的直接存在直接地址。内容多的分多个索引表存。

part3,文件管理

这一部分是我们如何显示内存块哪些被存储、哪些没有。

分盘:windows的c,d盘。

空闲表:

为每个空闲空间设置始址,然后显示后面多少个是空闲空间,最少为1(本身)

空闲链表法:

两种:都是通过链接的方式去把所有的空闲盘链接上。但区别在于

一个是全连了,一个是连了盘的始址,并标注有多少空间可以用。

位视图法:

为每个块号分配一位标注是否被分配了内存。(1表示存了,0表示没存)

成组链接法:

这里解释一下(有点抽象,我也理解了几分钟):

这个图要抽象成:

存储块。这些块就是存储东西(都是空的,除了最上面的块,最上面的块是存下一块的东西,他也可以被写数据,不过这个时候就表示这一个超级块已经被用完了,要把下一级的超级块拉上来了),最上面的表示下一个有多少空闲的。

part4:文件基本操作

比较简单,没多写

part5:文件共享(硬链接、软链接)

硬链接:相当于在用户的地址直接写了多个可以访问他的地址,能直接访问到文件。

软链接:

两次甚至多次间接的去访问到目标文件。

part6:文件保护

口令保护需要存密码

密码保护:不需要更安全。

访问控制:最常用的

通过下放权限而达到什么用户可以做什么事的作用。

文件系统层次:

part7:磁盘访问:

磁盘结构:

磁盘就是整个盘,

磁道是单独一个可以存储的区域

扇区:是一群磁道的总和的总称。

如何写数据?

磁盘看起来很薄其实他被分成了很多盘,你可以理解为一本本子,柱面号更像书页。

磁头可以分为可以可移动的和不可移动的

磁盘调度算法:减少寻道时间的

一次查询的总时间。

先来先服务算法(比较简单,寻道时间也长)

最短寻道时间

通过计算两边相距当前磁道有多少,选择最少的,

缺点:会产生饥饿,因为计算机的程序是源源不断的,如果偏向一边一直来程序,那另一端可能就无法被访问。

扫描算法:

扫描一端,遇到底就转向

缺陷:刚刚被访问的可能被访问第二遍,这样可能有的程序响应时间变长。

look算法:

只要移动方向没进程就转向

ps:不会产生饥饿

循环扫描算法:

对scan算法的优化,规定只有一方移动的时候才被允许访问。

clook算法:

和cscan的思想差不多

减少磁盘延迟的方法

交替编号

这是对同一个盘面上的。

因为读完一个块之后,他需要时间反应我要继续读吗?交替编号相当于给了这个思考的缓冲

错位命名:

这是对不同盘面的,

但我们需要去读其他盘面的时候,错开的命名就可以直接读取啦

磁盘的管理:

这一块是从最基础的分区,然后被如何分需要根据需求来

坏块管理:

ps:备用的顶上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值