操作系统 第四章 第一部分 文件管理(王道考研)
操作系统 第四章 第一部分 文件管理(王道考研)
初识文件管理
文件的属性
文件名:计算机里,完整的文件名应该包括主文件名和扩展文件名两部分。扩展文件名就是你说的“后缀”。针对你说的情况,文本文件名应该写为:1.txt。
标识符=文件的路径+文件名
文件内部数据的组织(文件的逻辑结构)
有结构文件 = 表文件
文件之间的组织形式(目录结构)
操作系统提供的功能
基本功能:文件的增删改查
文件怎么放在外存中?(文件的物理结构)
操作系统实现的文件管理功能
小结
文件的逻辑结构
无结构文件
有结构文件
记录的长度是否固定
实际生活中,最常用的是可变长记录
有结构文件的逻辑结构
顺序文件
结合链表和数组进行理解
链式存储:链表
顺序存储:数组
可变长记录就要去访问每条记录的长度
数组元素长度固定的数组
索引文件
索引表配置记录的指针,从而相当于定长记录的顺序文件。
索引顺序文件
二级页表的思想,表中有表
索引的索引
多级索引顺序文件
超级套娃,索引的索引的索引的。。
小结
文件目录
目录示例
文件控制块
对目录的操作
目录结构
单机目录结构
只有一层的文件夹
两级文件目录
有多个用户,但是用户对自己的文件不能进行进一步的管理
多级目录结构
树的结构
当前目录->相对路径(减少IO次数)
缺点
无环图目录结构
索引结点(FCB的改进)
只放一些有用的数据项
小结
文件的物理结构
文件块,磁盘块
文件分配方式
连续分配
优点
- 支持随机访问
- 速度最快
缺点
- 不方便拓展
- 存储空间利用率低,产生难以利用的磁盘碎片
链接分配
类似于链表
隐式链接
起始块号是0号块,链表的头和尾,每个节点包含指向下一个节点的指针。
优点
缺点
显示链接
FAT
优点
缺点
FAT(文件分配表)占用一定的存储空间。
小结
链接分配默认是隐式链接。
索引分配
索引块对应一个索引表,占用存储空间
优点
缺点
索引块占用一定的存储空间。
索引表太小了,怎么解决?
链接方案
类似:链表中每个元素都是数组
缺点:要找到最后一个逻辑块,必须所有的索引块都读入内存,效率低
多层索引
简单理解:目录的目录
磁盘IO次数多
混合索引
小结
文件分配方式的小结
文件存储空间管理
存储空间的划分和初始化
空闲表法
空闲链表法
空闲盘块链
单链表的增删改查(多次)
空闲盘区链
节点大小不定长的单链表的增删改查(有可能是多次或者是1次)
位示图法
二维数组
成组链接法
理解即可,树状结构,长度不用写死,每个节点有长度和数据,关键看是已经用到的目录还是代表空闲节点
这张图我得好好解释一下,首先来看左边绿色的空闲盘块号栈,这是第一组(唯一进入内存的一组,只有它会占据存储空间)。看到S.free = 100了没,这表示该组有100个空闲块数目,再往下看,第0号对应的是300,表示下一组物理空闲块的物理盘块号为300,你看它指向的是不是300号对应的磁盘块。再看黄色的块,这些块里保存的才是真正的可用的空闲块,也就是说每组中只有99个块可用。尽管如此,每组还是有100个块的。特别要注意的是,最后一组的下一组盘块号不是没有么,我们这里采用的是结束标记“0”,也就是最右边一个蓝色块的第二项为0。
小结
文件的基本操作
文件的增删改查
创建文件
删除文件
打开文件
内存中存放正在打开的文件,免得重新加载
打开文件是找到对应的文件的指针,不是全部加载文件。系统中只有一个包含文件所有信息的打开文件的记录总表(系统的打开文件表)
进程中有打开文件表。
关闭文件
打开计数器为0时,才能进行文件删除功能。
读文件
写文件
保存文件的功能
小结
文件描述符:指向文件的指针
文件共享
共享:系统中只有一份文件数据
硬链接
硬链接就是复制了一份的文件目录项,直接指向文件。
该目录项只包含文件名。索引结点指针。
不能对目录创建硬链接
软链接
(符号链接):删除链接文件对于原文件无影响
小结
文件保护
口令保护
密码
加密保护
通过“密码”加密和解密 ,加解密的密码是一致的。 异或加密
访问控制
用户的权限控制,对一个目录进行的设置,其下的所有目录和文件都是相同的设置
用户分组