目录
认识文件管理
文件——就是一组有意义的信息/数据集合。
文件有哪些属性
文件内部数据的组织形式
文件之间通过树形结构组织起来
操作系统应向上提供哪些功能
文件是如何放在外存中的
其他文件功能
文件的逻辑结构
一个文件在逻辑上是如何存储在外存中的?
主要的研究对象是有结构文件
根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。
定长记录的有结构文件
可变长记录的有结构文件
有结构文件,根据各条记录在逻辑上如何组织,可以分为三类
顺序文件
顺序文件中,根据是否根据关键字来排序,又可分为两种
可见,有多种文件形式的组合,考虑以下几个问题
根据以上内容可知,定长记录的文件如果采用顺序文件的方式来存储,效果较好。
那么,对于不定长记录呢?
索引文件
索引顺序文件
索引顺序文件,是将记录进行分组,然后每组对应一个索引表项。
类似于,将全校的学生分成不同的年级,然后一个年级对应一个表项,然后年级内部采用顺序存储,这样,索引表的大小就会大大地减小。
是将顺序文件建立一个索引,所以叫做索引顺序文件。
加入全校有5000名学生,如果直接从5000个项的索引表中查找,效率不高,而且,索引表本身就很大。如果分成5个年级,那么每个年级就只有1000个学生,每个年级对应一个索引项,这样,索引表项就只有5个,然后内部使用顺序文件的方式来定位。
多级索引顺序文件
进一步分组,类似于,全校分年级,每个年级再分班,这样根据哪个年级哪个班来定位,效率就会大大提升了。
文件目录
文件目录就是我们平时使用电脑时操作的各种文件和文件夹
文件控制块
文件名很重要
对目录的一些常见操作
单级目录结构
两级目录结构
多级目录结构(树形目录结构,主流)
要理解绝对路径和相对路径
无环图目录结构
注意区分文件的共享和复制。
索引节点
文件的物理结构
总览
文件块、磁盘块
连续分配
链接分配-隐式链接
链接分配-显式链接
注意一个缩写FAT,主流的文件分配方式。
索引分配
根据文件名找到索引块,访问索引块找到索引表,根据索引表找到文件的存放地址。
注意区分文件的逻辑结构和物理结构,逻辑结构是指文件在逻辑上是如何组织的,物理结构指的是文件是如何实际地存放在外存中的。
文件存储空间管理
这一小节主要探讨对空闲磁盘块的管理。
总览
存储空间的划分与初始化
接下来看看几种空闲空间的管理方法
空闲表法
![]()
空闲链表法
![]()
![]()
位示图法
![]()
![]()
成组链接法(了解)
![]()
![]()
文件的基本操作
几种基本操作
用户在进行这些操作时,系统做了什么呢?
创建文件
删除文件
![]()
打开文件
![]()
![]()
关闭文件
![]()
读文件
![]()
写文件
小结
![]()
注意:文件描述符是一个非负整数,内核可以通过这个文件描述符访问文件。
注意:打开文件时,不会将文件数据从外存读入内存,只有打开文件后再读文件才可以。
文件共享
注意文件共享和复制的区别
硬链接
软链接
![]()
参考windows下的快捷方式。
![]()
删除目标文件时,快捷方式会失效
小结
文件保护
口令保护
![]()
加密保护
![]()
访问控制
![]()
![]()
文件系统的全局结构
原始磁盘
接着物理格式化(低级格式化)
再接着逻辑格式化(高级格式化)
![]()
文件系统在内存中的结构
![]()
比如open系统调用打开文件的背后过程
![]()
虚拟文件系统
普通文件系统
虚拟文件系统
要解决的三个问题
![]()
![]()
![]()
![]()
文件系统的挂载