4. 文件管理
4.1 文件系统基础(上)
4.1.1 文件的相关概念
前景回顾
文件的属性
文件内部的数据应该怎样组织起来?
操作系统应该向上提供哪些功能?
从上往下看,文件应如何存放在外存?
其他需要由操作系统实现的文件管理功能
文件共享:使多个用户可以共享使用一个文件
文件保护:如何保证不同的用户对文件有不同的操作权限
4.1.2 文件的逻辑结构
无结构文件
按文件是否有结构分类,可以分为无结构文件、有结构文件两种。
无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows 操作系统中的 .txt 文件。
有结构文件
有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一
个数据项可作为关键字(作为识别不同记录的ID)。
根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种
有结构文件的逻辑结构
顺序文件
顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存
储。
索引文件
索引顺序文件
索引顺序文件(检索效率分析)
多级索引顺序文件
4.2 文件系统基础(下)
4.2.1 文件目录
文件控制块
目录结构 —— 单级目录结构
目录结构 —— 两级目录结构
目录结构 —— 多级目录结构
又称树形目录结构
目录结构 —— 无环图目录结构
索引结点( FCB 的改进)
4.2.2 文件保护
口令保护
访问控制
4.2.3 文件共享
基于索引结点的共享方式(硬链接)
基于符号链的共享方式(软链接)
共享的文件不存在时
4.3 文件系统的实现
4.3.1 文件的物理结构
4.3.1.1 文件的物理结构—文件实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q6P031TB-1661265722533)(D:/LeStoreDownload/TyporaImages/image-20220823201403543.png)]
文件块、磁盘块
文件分配方式 —— 连续分配
连续分配(总结)
连续分配方式要求每个文件在磁盘上占有一组连续的块。
优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快
缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片
文件分配方式 —— 链接分配
链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显式链接两种。
链接分配 —— 隐式链接
链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显式链接两种。
隐式链接——除文件的最后一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指
针。
优点:很方便文件拓展,不会有碎片问题,外存利用率高。
缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间。
链接分配 —— 显式链接
链接分配(总结)
4.3.1.2 文件的物理结构—文件分配方式
文件分配方式 —— 索引分配
索引分配(总结)
易混难点:支持随机访问
4.3.2 逻辑结构和物理结构
逻辑结构(从用户视角看)
物理结构(从操作系统视角看)
例: C 语言创建顺序文件
懵逼点:顺序文件采用顺序存储 / 链式存储
链式存储的顺序文件采用连续分配 …
逻辑结构:索引文件
索引文件采用索引分配 …
总结
4.3.3 文件存储空间管理
存储空间的划分与初始化
存储空间管理 —— 空闲表法
存储空间管理 —— 位示图法
存储空间管理 —— 成组链接法
4.3.4 文件的基本操作
创建文件
删除文件
打开文件
关闭文件
读文件
写文件
4.3.5 文件系统的层次结构
文件系统的层次结构
总结
4.4 磁盘组织与管理
4.4.1 磁盘结构
磁盘、磁道、扇区
如何在磁盘中读/写数据
盘面、柱面
磁盘的分类
按磁头是否可移动分类
按盘片是否可更换分类
4.4.2 磁盘调度算法
4.4.2.1 一次磁盘读/写操作需要的时间
4.4.2.2 先来先服务(FCFS)
4.4.2.3 最短寻找时间优先算法(SSTF)
4.4.2.4 扫描算法(SCAN)
4.4.2.5 LOOK算法
4.4.2.6 循环扫描算法(S-SCAN)
4.4.2.7 C-LOOK算法
4.4.3 OS之减少磁盘延迟时间的方法
前情回顾
交替编号
磁盘地址结构的设计
错位命名
4.4.4 磁盘的管理
磁盘初始化
引导块
坏块的管理