思维导图

在这里插入图片描述

在这里插入图片描述

文件的属性

一个文件有哪些属性?
文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。
标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。
类型:指明文件的类型
位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
大小:指明文件大小
创建时间、上次修改时间
文件所有者信息
保护信息:对文件进行保护的访问控制信息

文件内部的数据如何组织起来?

在这里插入图片描述

在这里插入图片描述

文件之间应该如何组织起来

在这里插入图片描述

操作系统应该向上提供哪些功能

在这里插入图片描述

image-20230608192146583

从上往下看,文件应该如何存放在外存?

在这里插入图片描述

在这里插入图片描述

文件的逻辑结构

在这里插入图片描述

无结构文件:就是由一系列二进制或者字符流组成,又称流式文件

有结构文件:由一组相似的记录组成,又称记录式文件,每条记录由若干数据项组成,一般来说,每条记录有一个数据项作为关键字,根据各条记录的长度是否相等,又可以分为定长记录可变记录两种

定长记录

在这里插入图片描述

不定长记录

在这里插入图片描述

有结构文件的逻辑结构

在这里插入图片描述

顺序文件

在这里插入图片描述

在这里插入图片描述

索引文件

在这里插入图片描述

索引顺序文件

核心是分组索引!

在这里插入图片描述

在这里插入图片描述

多级索引顺序文件

在这里插入图片描述

小结

image-20230608200154683

文件目录

思维导图

在这里插入图片描述

在这里插入图片描述

文件控制块

用一个目录表来表示这个目录,目录文件中一条记录就是一个文件控制块FCB

在这里插入图片描述

在这里插入图片描述

对文件目录的操作

在这里插入图片描述

单级目录结构

在这里插入图片描述

两级目录结构

在这里插入图片描述

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

在这里插入图片描述

当前目录:

一个”当前日录”。例如,此时已经打开了”照片”的目录文件,也就是说,这张目录表己调入内存,那么可以把它设置为”当前日录”。当用户想要访问某
个文件时,可以使用从当前目录出发的”相对路径”。
在Linux巾,”.”表示当前日录,因此如果”照片”是当前日录,则”自拍jpg”的相对路径为:
“/2015-08/自拍.jpg”.

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

无环图目录结构

在这里插入图片描述

只有共享计数器的减为0的时候才会删除结点。

注意:共享文件不同于赋值文件,再共享文件中由于各个用户指向同一个文件,因此只要其中一个用户修改了文件数据,所有用户就可以看到文件数据的变化

索引结点FCB改进

在这里插入图片描述

当找到文件名对应的目录项时,才需要将索引结点调入内存,索引结点中记录了文件的各种信息,包括文件在外存中的存放位置,根据“存放位置”即可找到文件。
存放在外存中的索引结点称为“磁盘索引结点”,当索引结点放入内存后称为内存索引结点
相比之下内存索引结点中需要增加一些信息,比如:文件是否被修改、此时有几个进程正在访间该文件等。

文件的物理结构

思维导图

在这里插入图片描述

在这里插入图片描述

文件块和磁盘块

物理地址:

在这里插入图片描述

逻辑地址:

在这里插入图片描述

连续分配方式

在这里插入图片描述

物理块号=起始块号+逻辑块号,则逻辑块号是2起始块号是4,物理块号是6

顺序访问:要访问逻辑块号2,必须从1开始

直接访问:可以直接访问逻辑块号2

在这里插入图片描述

对于黄色的块,由于是连续分配的,顺序读写速度最快

对于紫色的块,由于不是顺序分配的,读写速度要慢

连续分配方式缺点

在这里插入图片描述

在这里插入图片描述

由于无法分配足够的内存空间,这些绿色的块都表示为磁盘碎片

img

文件分配方式-链接分配

隐式链接方式:

在这里插入图片描述

用户给出要访问的逻辑块号i,操作系统找到该文件对应的目录项(FCB)
从目录项中找到起始块号(即0号块),将0号逻辑块读入内存,由此知道1号逻辑块存
放的物理块号,于是读入1号逻辑块,再找到2号逻辑块的存放位置…以此类推。
因此,读入i号逻辑块,总共需要i+1次磁盘。
结论

缺点:采用链式分配(隐式链接)方式的文件,只支持顺序访问,不支持随机访问,查找效率低。另外,指向下一个盘块的指针也需要耗费少量的存储空间。

优点:采用隐式链接的链接分配方式,很方便文件拓展。另外,所有的空闲磁盘块都可以被利用,不会有碎片问题,外存利用率高。

显示链接方式:

在这里插入图片描述

如何实现文件逻辑块号到物理快号的转变?

用户给出要访问的逻辑块号,操作系统找到该文件对应的目录项(FCB)…
从目录项中找到起始块号,若i>0,则查询内存中的文件分配表FAT,
往后找到i号逻辑块对应的物理块号。逻辑块号转换成物理块号的过程不需要读磁盘操作。

总结

在这里插入图片描述

索引分配

在这里插入图片描述

在这里插入图片描述

数据太大怎么办,索引表装不下了

在这里插入图片描述

三种解决方案:链接方案,多层索引,混合索引

链接方案

在这里插入图片描述

多层索引

在这里插入图片描述

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

混合索引

在这里插入图片描述

索引总结

在这里插入图片描述

在这里插入图片描述