说明
- 博客作为笔记备份,不定时更新
- 参考内容为王道考研《计算机操作系统考研复习指导2023》
- 简化版仅进行了知识点汇总,详细知识点没有记录,主要用来搭知识体系框架
- 思维导图为文字版导出的,可将文字内容粘贴到思维导图软件自动生成。如果是用obsidian并安装了mindmap插件的话,可在文件开头写上以下内容,生成导图:
---
mindmap-plugin : basic
---
思维导图版
文字版
文件管理
文件基本概念
- 组成(3部分)
- 文件存储的数据
- 分类和索引的信息
- 文件的访问权限
- 文件结构(组成)
- 数据项(最低级)
- 基本数据项(最小逻辑单位)
- 组合数据项
- 记录:一组相关数据项集合
- 文件
- 有结构文件
- 无结构文件
- 数据项(最低级)
- 文件属性(略)
- 文件控制块FCB
- 一个FCB就是一个目录项
- 索引结点
- 文件描述信息单独成为一个数据结构,称为索引结点
- 为何引入:检索文件时无需用到文件的其他描述信息,无需将其调入内存,因此采用将文件名和文件描述信息分开的方式(UNIX采用)
- 磁盘索引结点
- 存放在磁盘上的索引结点
- 每个文件对应唯一一个
- 内存索引结点
- 存放在内存中的索引结点
- 打开文件时从磁盘中复制到内存
- 文件的操作
- 创建
- 分配存储空间
- 创建目录项
- 读/写文件
- 重定位文件
- 删除文件
- 阶段文件
- 打开和关闭文件
- 打开:通过系统调用open打开文件
- 关闭:通过系统调用close关闭文件
- 打开文件表
- 每个进程表
- 整个系统表
- 创建
- 文件保护
- 针对他人
- 口令保护:口令位于系统内部
- 加密保护:用户知道密码
- 针对用户自己:访问控制
- 针对他人
文件逻辑结构和物理结构
- 文件逻辑结构
- 无结构文件
- 以字节为单位
- 有结构文件
- 顺序文件
- 串结构
- 记录之间顺序与关键字无关,通常按存入时间排序
- 顺序结构
- 记录关键字顺序排序
- 串结构
- 索引文件
- 索引表
- 主文件的每个记录字索引表中分别设置一个表项
- 索引表按关键字排序,是一个定长记录的顺序文件
- 索引表
- 索引顺序文件
- 关键字:组内可以无序,组间必须有序
- N条记录的索引顺序文件,平均需要检索 N \sqrt{N} N次
- 直接文件或散列文件
- 无顺序特性
- 有很高的存取速度
- 顺序文件
- 无结构文件
- 文件的物理结构(结合线性表的存储结构)
- 连续分配
- 逻辑上相邻的块,物理上也相邻
- 支持随机访问和顺序访问
- 链接分配
- 隐式链接
- 目录项仅包含文件第一块的指针和最后一块的指针
- 每个文件对应一个磁盘块的链表
- 显式链接
- 文件分配表(FAT表)
- 每个表项存放链接地址,即下一个盘快号
- FAT表记录了文件各块之间的链接关系,也标记了空闲盘块
- 一个磁盘仅设置一个FAT表,开机时将FAT读入内存,并常驻内存
- 文件分配表(FAT表)
- 隐式链接
- 索引分配
- 索引块(表):每个文件一个(与FAT表不同,FAT表每个磁盘一个),避免了FAT表常驻内存的问题
- 优点
- 支持随机访问
- 没有外部碎片问题
- 混合索引分配
- UNIX系统采用此种方式
- 直接间址
- 一次间址
- 多次间址
- 连续分配
目录
- 目录管理的要求
- 实现“按名存取:
- 提高对目录的检索速度
- 为方便文件共享,提供用于控制访问文件的信息
- 允许用户对不同文件采用相同的名字
- 目录的结构
- 单级目录
- 两级目录
- 主文件目录MFD
- 用户文件目录UFD
- 树形目录
- 绝对路径
- 相对路径
- 树形结构目录增加了访问磁盘的次数
- 无环图目录结构
- 便于文件共享
- 目录的操作(略)
- 目录实现(略)
- 文件共享
- 基于索引结点的共享方式(硬链接)
- 多个指针指向一个索引结点,只要还有一个指针指向索引结点,索引结点就不能删除
- 用符号链实现文件共享(软链接)
- 记录到达共享文件的路径,访问文件时,根据路径寻找文件
- 只有文件主才有指向其索引结点的指针,共享该文件的其他用户只有该文件的路径
- 硬链接的查找速度比软链接的快
- 基于索引结点的共享方式(硬链接)
文件系统
- 文件系统结构
- 从应用程序到硬件:
- 逻辑文件系统
- 管理目录结构
- 负责文件保护
- 文件组织模块
- 组织文件及其逻辑块和物理块
- 可以将逻辑地址转换为物理地址
- 基本文件系统
- 向对应的设备驱动程序发送通用命令,以读取和写入磁盘的物理块
- I/O控制
- 包括设备驱动程序和中断处理程序
- 在内存和磁盘系统之间传送信息
- 逻辑文件系统
- 从应用程序到硬件:
- 文件系统布局
- 文件系统在磁盘中的结构
- ![[Pasted image 20221011222050.png]]
- 主引导记录MBR
- 位于磁盘的0号扇区,用来引导计算机
- 计算机启动时,BIOS读入并执行MBR
- MBR做的第一件事是确定活动分区,并读入它的第一块,即引导块
- 引导块
- 超级块
- 空闲块信息
- 文件系统在内存中的结构
- 整个系统的打开文件表
- 每个进程的打开文件表
- 了解文件如何打开(系统调用open)
- 文件系统在磁盘中的结构
- 外存空闲空间管理(结合内存空闲区的管理)
- 空闲表法
- 空闲链表法
- 空闲盘块链
- 空闲盘区链
- 位示图法
- 成组链接法(UNIX系统采用)
- 虚拟文件系统VFS
- 特点
- VFS向上层用户提供统一标准的系统调用接口,屏蔽底层具体文件系统的差异
- VFS要求下层的文件系统必须实现某些规定的函数功能
- VFS每打开一个文件就在主存中新建一个vnode,用统一的数据结构来表示文件,无论该文件存储在哪个文件系统
- 注:vnode只存在主存中,inode既会调入主存中,又存在于外存中
- 文件系统挂载(mounting):即文件系统的安装/装载
- 如何将一个文件系统挂载到操作系统中?
-
- 在VFS中注册新挂载的文件系统。内存中的挂载表(mount table)包含每个文件系统的相关信息,包括文件系统类型、容量大小等
-
- 新挂载的文件系统要向VFS提供一个函数地址列表
-
- 将新文件系统加到挂载点(mount point),也就是将新文件系统挂载在某个父目录下
-
- 如何将一个文件系统挂载到操作系统中?
- 特点