文章目录
文件系统的层次结构
下面举个例子辅组记忆文件系统层次结构
假设某用户请求删除文件“D:/工作目录/学生信息xlsx”的最后100条记录。
- 1、用户需要通过操作系统提供的接口发出上述请求一一用户接口
- 2、由于用户提供的是文件的存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录项一一文件目录系统
- 3、不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限——存取控制模块(存取控制验证层)
- 4、验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址一一逻辑文件系统与文件信息缓冲区
- 5、知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址——物理文件系统
- 6、要删除这条记录,必定要对磁盘设备发出请求一一设备管理程序模块
- 7、删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收一一辅助分配模块
磁盘的结构
知识总览思维导图
磁盘、磁道、扇区的概念
- 磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据
如何在磁盘中读写数据
盘面、柱面 --> 磁盘物理地址
磁盘的分类
根据磁头是否可以移动
根据盘片是否可以更换
总结思维导图
磁盘调度算法
知识总览思维导图
一次磁盘读/写操作需要的时间
总的平均存取时间
T
a
=
T
s
+
1
/
2
r
+
b
/
(
r
N
)
T_a= T_s+1/2r+b/(rN)
Ta=Ts+1/2r+b/(rN)
- 延迟时间和传输时间都与磁盘转速相关,且为线性相关。而转速是硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间
- 但是操作系统的磁盘调度算法会直接影响寻道时间
先来先服务算法(FCFS)
- 根据进程请求访问磁盘的先后顺序进行调度。
- 优点:公平;如果请求访问的磁道比较集中的话,算法性能还算过的去
- 缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长。
最短寻找时间优先(SSTF)
- SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。(其实就是贪心算法的思想,只是选择眼前最优,但是总体未必最优)
- 优点:性能较好,平均寻道时间短
- 缺点:可能产生“饥饿”现象
Eg:本例中,如果在处理18号磁道的访问请求时又来了一个38号磁道的访问请求,处理38号磁道的访问请求时又来了一个18号磁道的访问请求。如果有源源不断的18号、38号磁道的访问请求到来的话,150、160、184号磁道的访问请求就永远得不到满足,从而产生“饥饿”现象。
- 产生饥饿的原因在于:磁头在一个小区域内来回来去地移动
扫描算法(SCAN)
- 优点:性能较好,平均寻道时间较短,不会产生饥饿现象
- 缺点:①只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了。
②SCAN算法对于各个位置磁道的响应频率不平均(如:假设此时磁头正在往右移动,且刚处理90号磁道,那么下次处理90号磁道的请求就需要等磁头移动很长一段距离;而响应了184号磁道的请求之后,很快又可以再次响应184号磁道的请求了)
LOCK 调度算法
这是第一个缺点的改进方法
- 扫描算法(SCAN)中,只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了。LOOK调度算法就是为了解决这个问题,如果在磁头移动方向上已经没有别的请求,就可以立即改变磁头移动方向。(边移动边观察,因此叫LOOK)
循环扫描算法C-SCAN 算法
-
这是第二个缺点的改进方法
-
优点:比起SCAN来,对于各个位置磁道的响应频率很平均。
-
缺点:只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了;并且,磁头返回时其实只需要返回到18号磁道即可,不需要返回到最边缘的磁道。另外,比起SCAN算法来,平均寻道时间更长。
C-LOOK算法
- C-SCAM算法的主要缺点是只有到达最边上的磁道时才能改变磁头移动方向,并且磁头返回时不一定需要返回到最边缘的磁道上。C-LOOK算法就是为了解决这个问题。如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回,并且磁头只需要返回到有磁道访问请求的位置即可。
- 优点:比起 C-SCAN算法来,不需要每次都移动到最外侧或最内侧才改变磁头方向,使寻道时间进一步缩短