文件管理
2021-04-04 14:16:35 0 举报
AI智能生成
计算机操作系统文件管理思维导图,适合期末考试、考研初试和复试使用,排版方便打印和背诵
作者其他创作
大纲/内容
文件
以计算机硬盘为载体的,存储在计算机上的信息的集合
是用户进行输入和输出的基本单位
数据项 -- 记录(数据元素) -- 文件(数据对象)
属性:标识符FCB中的FID、名称、类型、大小、保护、日期
基本操作:创建、删除、读、写、重定位、截断
打开文件
如果文件不在打开文件表中
将文件FCB从外存调入内存active inode区域中,并在open-file table中新增表目,表目(指向FCB指针,文件打开计数器)
在进程的打开文件表中新增表目指向系统打开文件表中对应的表项,文件打开计数器+1
如果文件已经在打开文件表中
在进程的打开文件表中新增表目指向系统打开文件表中对应的表项,文件打开计数器+1
文件系统
对文件的增删改查、保护、维护等功能
逻辑结构
无结构文件(流式文件)
源程序文件、可执行文件、库函数文件
以字节为单位
采用读写指针来指出下一个要访问的字符
结构文件(记录式文件)
采用row和column来指出下一个要访问的数据项的位置
以数据项为单位
记录长度
定长记录
边长记录
记录包含的数据项数目不同,不同的数据项长度不同
分类
顺序文件
excel table、csv
串结构
记录之间按照存入的先后顺序有序
顺序结构
记录之间按照关键字有序
索引文件
对于边长记录文件无法实现随机存取
建索引表(记录关键字,记录地址)
索引表本身是定长记录文件
用记录中的哪个字段建立索引表,就可以通过哪个字段快速检索
所选字段要能唯一标识记录
缺点:索引表的开销
索引顺序文件
平衡 检索速度 和 开销
将顺序文件分组,对每组第一条记录建立索引
例如 10000条记录,平均查找长度 5000,分为√10000=100组,每组100条,建立索引表,100个表项,平均查找长度50+50=100
多级索引
例如 10000条记录,100个三级索引表+10个二级索引表+1个一级索引表
直接文件或散列文件
关键字 通过 散列函数映射为地址
文件目录
目录项
FCB
FCB的有序集合称之为文件目录,一个FCB就是一个文件目录项
iNode
在目录中检索文件时,只用到了文件名,所以unix内核目录项为 (文件名,inode编号),而在inode中存放文件描述信息
inode+文件名 = FCB
目录结构
单级目录结构
不允许重名、查找速度慢
两级目录结构
用户自己的文件不允许重名,无法对用户自己的文件进行分类
多级目录结构
树形目录结构
树形目录结构
层次结构清晰,方便管理和保护,但是不便于共享
无环图目录结构
便于共享,但是不便于管理
在多级目录结构的基础上,添加一些有向边,实现共享
物理结构
文件目录实现
线性列表
顺序存储
便于查找,不便于增加和删除
链式存储
便于增加和删除,不便于查找
散列表
增加、删除、查找都很快
但是依赖散列函数、还要处理冲突
文件实现
连续分配
有外部碎片
链式分配
显式
隐式
FAT file allocation table 文件分配表
FCB中存放起始块号,FAT中存放下一块块号
方便文件动态扩展,外存利用率高,支持随机访问
空间开销大,一般开机之后FAT就要调入内存
无外部碎片
索引分配
FCB中存放索引块块号,索引块中存放数据块的块号
但是每个文件只有一个索引块,所以索引块的太大太小都不行
解决方案
链接
将多个索引块链接起来,索引块中存放下一块的块号
多层索引
一级索引块中存放二级索引块的块号,二级存三级,...
混合索引
直接索引+一级索引+二级索引+三级索引+...
文件存储空间管理
磁盘划分
盘 = 多个卷,卷=目录区+文件区,目录区存放FCB,文件区存放数据块和索引块
空闲块管理
空闲表
表项(首块号,块数)
分配也采用动态分区分配算法:fist fit、best fit、worst fit、next fit
保持有序!
空闲链表
空闲盘块链
空闲盘区链
盘区=若干个盘块
位视图
一个bit表示一个盘块是否空闲
成组链接
一些扇区用来存空闲扇区的地址,记为索引扇区,上述多个索引扇区的最后一个区域存放下一个索引扇区的地址,这样就构成了链表,然后索引扇区的其他空间都存放空闲扇区的地址
unix采用此方法
文件保护
文件访问类型
读、写、执行、添加、删除、列表清单
访问控制
为文件和目录增加一个访问控制表
可以实现复杂访问控制,但是会带来空间开销和管理开销
访问列表
所有人、所属组、其他人
分别设置读写执行权限
unix操作系统
口令
访问文件之前提供口令,如果和FCB中存的口令一致,可以访问
加密
对文件进行加密,用户提供密钥,才能将密文转换为明文
文件共享
硬链接
文件目录项为 (文件名 ,inode结点编号),让两个用户的某文件的inode编号相同实现共享
软连接
文件拥有者有inode结点编号,而共享方有该文件的全路径
磁盘
磁盘的结构
柱面、盘面、扇区
扇区==盘块 通常为512B
磁盘地址 (柱面号,盘面号,扇区号)
其中柱面号在盘面号之前,表示优先存一个柱面的各个磁道
分类
按照磁头分
固定头磁盘
每个盘面的所有磁道都有一个磁头
活动头磁盘
一个盘面一个磁头,通过磁头臂的伸缩来定位各个磁道
按照磁盘分
固定盘磁盘
可换盘磁盘
读写时间
寻道时间
将磁头移动到目标磁道的时间
延迟时间
定位到磁道的目标扇区的时间
通常为磁盘旋转一周时间的一半
传输时间
读出和写入数据的时间
由磁盘本身的性质决定的
无法通过一定的措施减少
启动时间
控制器的启动时间
一般可以忽略
调度算法
FCFS
绝对公平
SSTF
贪心算法
局部最优
可能出现”饥饿“甚至”饿死“现象
SCAN
扫描到边界,然后掉头扫描
不利于远离磁头的一端的请求
C-SCAN
扫描到边界,然后从头再扫描
公平
尽力减少寻道时间
也可以减少延迟时间
不同盘面交错命名
因为没读取完一个扇区之后需要一定的时间处理,才能继续读取下一个扇区
磁盘管理
初始化
低级格式化(物理分区)
将磁盘分为一个个扇区,在每个扇区采用特定的数据结构,头+数据区+尾
逻辑格式化
分盘、创建文件系统
引导块
存放自举程序
BIOS中只存储自举装入程序
在磁盘的启动区存放完整的自举程序
目的:方便修改自举程序
自举程序:将操作系统程序装入到内存中,然后转移到内存的初始地址开始执行,启动操作系统
坏块
FAT表中会将坏块标记出来
扇区备用
用备用的扇区代替坏块
0 条评论
下一页