第六章、文件管理
1、前面的先跳过文件系统(这里题目大题没有涉及)
1、磁盘的结构
1、磁盘、磁道、扇区
1、磁盘表面有磁性物质,可以用来几率二进制数据
2、一个磁盘有很多磁道,一个圈就是一个磁道
3、一个磁道有被分为很多扇区,每个扇区就是一个磁盘块
4、内侧的磁道扇区面积最小,数据密度最大(磁性物质也相对很多嘛)
5、如图

2、如何在磁盘中读、写数据
1、就是需要利用“磁头”,移动到想要读/写的地方
2、然后磁盘转起来,让目标扇区从磁头下划过,就记录了数据
3、盘面、柱面
1、就是多个盘叠在一起就像1个柱子
2、其中的每个盘面可能有正反面
3、可以用(柱面号、盘面号、扇区号)来确定任意一块“磁盘号“也就是确定一个块号
4、根据柱面好移动磁盘,移动到指定柱面。激活指定盘面对应的磁头
5、磁盘旋转过程中就完成了对扇区的读和写
6、图示

4、磁盘的分类
1、按磁头是否可移动分类
1、磁头可左右活动
2、看图

2、按盘片是否可更换分类
1、盘片是否可更换
2、看图

2、磁盘调度算法(FCFS、SSTF、SCAN、LOOk、S-SCAN、C-LOOK)
1、一次磁盘读写操作需要的时间
1、寻找时间(寻道时间)Ts = 读写数据前,将磁头移动到指定磁道所花的时间
2、启动磁头臂s:启动磁头臂所耗的时间
3、移动磁头也是需要时间:总共需要跨n条磁道,每跨1个磁道所耗时间为m
4、延迟时间Tr = 通过旋转磁盘,磁头定位到目标扇区所需要的时间,设磁盘转速为r(转/秒,转/分),则平均所需的延迟时间Tr = (1/2)*(1/r) =1/2r
①其中(1/r):1/r就是转一圈所需要的时间。找到目标扇区平均需要转半圈,再乘以1/2
5、传输时间Tt = 从磁盘读出或向磁盘写入数据所经历的时间
①假设磁盘转速为r
②此次读/写的字节数为b
③每个磁道上的字节数为N
④所以传输时间Tt = (1/r)*(b/N) = b(rN)
⑤补充:每个磁道要啊存N字节的数据,因此b字节的数据需要b/N个磁道才能存储。而读/写一个磁道所需的时间刚好有是转一圈所需的时间1/r
6、总的平均存取时间Ta = Ts +1/2r +b/(rN)
2、先来先服务(FCFS)
1、思路
1、根据进程请求访问磁盘的先后顺序进行调度
2、优点
1、公平
2、如果请求的磁道比较集中,算法性能还行
3、缺点
1、如果大量进程竞争使用磁盘
2、请求访问的磁道很分散。则FCFS算法性能很差,寻道时间长。
4、例子

3、最短寻找时间优先算法(SSTF)
1、思路
1、就是优先处理的磁道是与当前磁头最近的磁道
2、优点
1、性能较好,平均寻道时间段
3、缺点
1、可能产生饥饿现象
4、例子

4、扫描算法(SCAN)
1、思路
1、磁头从当前位置出发,要么一直向左走,走到头,然后再向右移动
2、磁头从当前位置出发,要么一直向右走,走到头,然后再向左移
2、优点
1、性能好
2、平均寻道时间短,不会产生饥饿现象
3、缺点
1、响应频率不平均
4、例子

5、循环扫描算法(C-SCAN)
1、思路
1、说人话就是:要么一直向左,到头了,然后再回到最右边,然后向左,直到完成
2、要么就一直向右,到头了,然后再回到最左边,然后向右,直到完成
3、类似:Z字抖动
4、图示
2、优点
1、对SCAN算法进行优化了
2、让磁道响应频率更平均
3、缺点
1、平均寻道时间更长
4、例子
