操作系统--04文件管理

4.1文件如何存放

文件分配表即可用于文件存放又可用于空闲块管理

4.1.1文件如何放

1.连续分配

要求每个文件在磁盘上占有一组连续的块。

优点:
文件目录中记录存放的物理起始块号和长度,可完成由逻辑地址到物理地址的转换。

缺点:
文件扩展很不方便。
会产生难以利用的磁盘碎片。可以采用紧凑来处理碎片,但是需要耗费很到的时间代价。
链接分配:

2.隐式链接

文件目录中记录存放的物理起始块号和结束块号,除文件的最后一个磁盘块外,每个磁盘块中都会保存指向下一个磁盘块的指针,这些指针对用户是透明的。

缺点:
读入i号逻辑块,需要进行i+1次I/O操作
只支持顺序访问,不支持随机访问

优点:
很方便文件扩展,不会有碎片问题,外存利用率高。

3.显示链接

把用于链接文件各个物理块的指针显式地存放在一张表中,即文件分配表(FAT)。文件目录中只需记录文件的起始块号。一个磁盘设置一张FAT。开机时,将FAT读入内存,并常驻内存。

优点:
支持顺序访问,也支持随机访问
逻辑块号转换成物理块号的过程不需要读磁盘操作。
不会产生磁盘碎片

缺点:
文件分配表需要占用一定的存储空间

4.索引分配

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块。

支持随机访问
文件扩展也很容易实现

缺点:索引表会占用一定的存储空间
如果一个文件的索引表太大,一个磁盘块即索引块装不下,有以下集中解决方案:

链接方案:将多个索引块链接起来存放。文件目录中只需要记录第一个索引块号。因此,如果想要访问最后一个逻辑块,就必须找到最后一个索引块,必须先访问前面所有的索引块,查找效率低下。
多层索引
混合索引:多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引,即直接指向数据块,又包含一级间接索引(指向单层索引表),还包含两级简洁索引(指向两层索引表)。

4.1.2存储空间的划分与初始化

物理格式化:
对磁盘进行分区,确定磁盘扇区校验码所占的位数

逻辑格式化:
建立文件系统的根目录
对保存空闲磁盘块信息的数据结构进行初始化

4.2空闲块如何管理

4.2.1存储空间管理方法:

1.空闲表法

空闲表:第一个空闲盘块号+空闲盘块数

分配磁盘块和回收磁盘块和内存管理方法类似。

2.空闲链表法:

空闲盘块链:以盘块为单位组成一条空闲链
操作系统保存着链头和链尾指针。

如何分配:从链头开始分配,并修改链头指针;
如何回收:回收的磁盘块一次挂到链尾,并修改链尾指针。

适用于离散分配。

空闲盘区链:以盘区为单位组成一条空闲链
操作系统保存着链头和链尾指针。

既适用于连续分配,也适用于离散分配。

3.位示图法:

每个二进制位对应一个盘块。例如:0表示盘块空闲,1表示盘块已分配。

连续分配、离散分配都适用。

4.成组链接法:

空闲表和空闲链表不适用于大型文件系统,因为空闲表或者空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。

文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将超级块读入内存。并且要保持内存与外存中的“超级块”数据一致。

4.2.2 寻道算法

先来先服务算法(FCFS):
根据进程请求访问磁盘的先后顺序进行调度

最短寻找时间优先(SSTF)

优先处理的磁道是离当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。贪心算法的思想。
性能较好,平均寻道时间短
可能产生“饥饿”现象

扫描算法(SCAN)
解决SSTF的问题,规定:只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外侧移动。也称为电梯算法。
性能较好,不会产生饥饿现象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值