操作系统学习笔记高度浓缩版之文件管理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40167046/article/details/100576442

目录

文件基本概念

文件逻辑结构

文件目录结构

文件物理结构

文件存储空间管理

文件的基本操作

文件共享和文件保护


文件基本概念

1.文件的定义:一组有意义的信息的集合。

2.文件的属性:文件名、标识符、类型、位置大小、创建时间、修改时间、保护信息.....

文件逻辑结构

3.文件的逻辑结构:无结构文件(二进制流或字符流组成,流式文件)和有结构文件(已占据相似的记录组成,记录式文件)

补充:每条记录由关键字和若干数据项组成,根据长度可分为定长记录和不定长记录两种。

有结构文件:顺序文件、索引文件、索引顺序文件

顺序文件:链式存储 或 顺序存储(串结构 或 顺序结构)

串结构:记录顺序与关键字无关;  顺序结构:记录按关键字顺序排列。

索引文件:建立一张索引表,每个记录对应一个表项,支持随机存取

补充:索引表本省计算定长记录的顺序文件,一个索引表项就是一条定长记录。

文件目录结构

4.文件目录结构:单级目录结构(不允许文件重名)--->两级目录结构(不能对文件分类)---->多级(树形)目录结构(不方便文件共享)---->有向无环图目录结构(设置一个共享计数器)

补充:文件控制块(FCB)是目录文件中的一条记录,一个文件对应一个FCB,一个FCB就是一个目录项,多个FCB组成文件目录。FCB包含文件的基本信息(文件名、物理地址、逻辑地址,物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)。

由于多级目录结构的出现导致绝对路径(从根目录出发)和相对路径(从当前目录出发),减少磁盘I/0次数。

索引结点:除了文件名之外的所有信息都放到索引结点中,每个文件对应一个索引结点,由于目录项中只包含文件名和索引结点指针,故而每个目录项的长度减少,每个磁盘块可以存放更多目录项,减少检索文件时磁盘I/0次数。

文件物理结构

5.文件的物理结构文件分配方式(非空闲磁盘块的管理):连续分配,链接分配,索引分配

连续分配(FCB记录起始块号和文件长度)

优点:支持顺序访问和直接访问(即随机访问),连续分配的文件在顺序访问时速度最快

缺点:不方便文件拓展,存储空间利用率低,会产生磁盘碎片

链接分配--隐式链接(FCB记录起始块号和结束块号)

除文件的最后一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指针。

优点:很方便文件拓展,不会有碎片问题,外存利用率高

缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间

链接分配--显式链接(FCB记录起始块号)

补充:文件分配表(FAT),用于显式存放链接文件各物理块的指针。一个磁盘只会建立一张FAT,开机时FAT常驻内存

优点:很方便文件拓展,不会有碎片问题,外存利用率高,并且支持随机访问,地址转换时不需要访问磁盘

缺点:FAT会占用一定的存储空间

索引分配(链接方案记录的是第一个索引块的块号,多层/混合索引记录的是顶级索引块的块号)

允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块。

补充:索引表存放的磁盘块称为索引块, 文件数据存放的磁盘称为数据块。

优点:支持随机访问,便于文件拓展

缺点:索引表需要占用一定的存储空间

当索引表太大,一个索引块装不下,解决策略:链接方案多层索引混合索引

链接方案:将多个索引块链接起来,若索引表很长,需链接多个索引块,想要找到第i号索引块必须先依次读入前面的索引块

多层索引:k层索引结构,在顶级索引表未调入内存时访问一个数据块只需要k+1次磁盘操作,但小文件也需要这么多次

混合索引:顶级索引表中包含直接地址索引(指向数据块),一级间接索引(指向单层索引表)、两级间接索引(指向两层索引表)

文件存储空间管理

6.文件存储空间管理(空闲磁盘块)

存储空间的划分:将物理磁盘块划分为一个个文件卷(逻辑卷、逻辑盘)

存储空间的初始化:将各个文件卷划分为目录区(主要存放FCB和管理信息)和文件区(存放文件数据)

存储空间管理-----空闲表法

分配连续的存储空间,采用首次适应、最佳适应、最坏适应算法来决定为文件分配哪个区间,并且回收时还需注意表项的合并问题。

存储空间管理-----空闲链表法(空闲盘块链和空闲盘区链)

补充:连续的几个空闲盘块组成一个空闲盘区

回收时直接链接在表尾。

存储空间管理-----位示图法

位示图:每个二进制位代表一个盘块。(行号,列号)----> (字号,位号)对应一个盘块号。

存储空间管理-----成组链接法

补充:超级块:文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将其读入内存,包括:下一组空闲盘数+若干个下一组空闲块号。

分配:超级块充当链头作用;

回收:将超级块中的数据复制到新回收的块中,并修改超级块的内容,让新回收的块成为第一个分组。

文件的基本操作

7.文件的基本操作:创建、写、读、删除、打开与关闭

创建文件:分配外存空间(存储空间管理不同策略做不同处理的分配),创建目录项

删除文件:回收外存空间(存储空间管理不同策略做不同处理的回收),删除目录项

文件的打开与关闭:操作open根据文件名搜索目录,并将目录条目复制到打开文件表,成功后返回一个指向打开文件表中的一个条目的指针,通过该文件指针(而非文件名)进行所有I/O操作,同时使用文件打开计数器以记录多少进程打开了该文件,每个close操作使得计数器减1,当为0时进行资源回收释放。

文件共享和文件保护

8.文件共享

基于索引结点的共享方式---硬链接(只有一个文件)

各个用户的目录项指向同一个结点,索引结点中需要有链接计数count,某用户删除文件时,只是删除该用户的目录项并且count--,当count==0时才能真正删除文件数据和索引结点。

基于符号链的共享方式---软链接(创建link文件,另外改成一个文件名)

在一个link型文件中记录文件存放路径(windows快捷方式),操作系统根据路径一层层查找目录,最终找到共享文件,软链接方式需要查询多级目录,因此访问速度会比硬链接慢。

9.文件保护

口令保护

为文件设置“口令”,开销小,“口令”一般存放在FCB或索引结点中(系统中)

加密保护

用“密码”对文件加密,安全性高但加密/解密需要耗费一定时间

访问控制

利用访问控制表(ACL)记录各个用户(或各组用户)对文件的访问权限,实现灵活,包括读写各种方式类型的控制

猜你喜欢

转载自blog.csdn.net/qq_40167046/article/details/100576442