本科生操作系统原理学习记录
学习记录全家桶
第十二章 磁盘管理
12.1 磁盘组成
盘片:存储数据的介质;正反两面都可以存储数据;本身是吕,上面涂上磁介质
磁头:读写数据,沿磁盘半径移动
主轴:马达驱动,是盘片旋转;固定速度旋转;7200 rpm 5400rpm
盘片的组成:
磁道:磁头在盘片表面划出的圆形;从盘面外缘 “0”开始编号
扇区:磁道被划分为若干个弧段
柱面:具有相同编号的磁道形成一个圆柱
12.2 磁盘控制器和接口
接口:ATA(串行接口)、SATA(串行接口)、USB、SCSI(并行接口)、SAS
磁盘控制器:
缓冲区:
12.3 地址映射关系
块号:LBA
磁盘地址(CHS):
Cylinder:柱面 磁道C
Head:磁头 面H
Sector:扇区S
SPT:每个磁道最大扇区数
HPC:最大磁头数
12.4 磁盘访问时间
磁盘旋转速度:60-250转/秒
RPM:每分钟旋转次数;如7200RPM
定位时间:
寻道时间:移动磁臂到所需磁道时间;平均寻道时间:1/3磁道移动 (1-4ms)
旋转延迟:等待扇区移动到磁头下时间;平均选1/2圈时间:1/(2*RPM/60)
传输时间:
传输率:传输总字节数 / 传输时间
12.5 磁盘管理
低级格式化(物理格式化)
将磁盘分成扇区,以便磁盘控制器读写
分区:将磁盘分成分区、主分区和扩展分区
高级格式化:逻辑格式化,创建文件系统
引导块:引导扇区
12.6 磁盘调度算法
磁盘调度:为了减少磁盘访问时间
访问时间:寻道时间:磁头移动到访问扇区所在磁道的时间
旋转延迟时间:将访问扇区转到磁头下的时间
传输时间:将数据从磁盘送到内存的时间
假定有一个请求序列(0-199道):98, 183, 37, 122, 14, 124, 65, 67
磁头当前位置在53
目标:磁头移动距离最小,寻道时间最短
先来先服务FCFS
按照请求提交时间访问
优点:简单、公平
缺点:寻道时间长
最短寻道时间优先算法SSTF
每次移动到离当前位置最近的磁道
优点:寻道距离短
缺点:存在饥饿,磁头频繁变换移动方向,增加寻道时间
扫描算法SCAN
磁头从磁盘一端向另一端移动,沿途响应服务请求
到达另一端时,磁头改变移动方向;磁头在磁盘上来回扫描
优点:同一方向扫描,寻道时间短
缺点:有的请求等待时间长
循环扫描算法C-SCAN
Circular Scan
单向处理请求
- 磁头从磁盘外道(0道)移到内道过程中处理请求
- 内道移动到外道的过程中不处理请求
优点:
更均匀的等待时间
循环Look算法C-LOOK
C-SCAN变形
磁头只移动到一个方向上最远请求为止,而不是继续到磁盘尽头
慕课单元作业
1、磁盘访问时间由哪几部分组成?每部分时间应如何计算?
由随机访问时间 + 传输时间 + 系统开销时间
随机访问时间由平均寻道时间和旋转延迟时间组成
平均寻道时间:1/3磁道移动 旋转延迟:平均旋转1/2圈时间 1/(2*RPM/60)
传输时间 = 传输总字节 / 传输率
2、若磁头的当前位置为100磁道(共200磁道),磁头正向磁道号增加方向移动。现有一磁盘读写请求队列:23、132、19、61、190、29、4、18、40。若采用先来先服务FCFS、最短寻道时间优先SSTF、扫描算法SCAN和C-SCAN,试计算出平均寻道长度各为多少?
先来先服务:
(100-23) + (132-23)+(132-19)+(61-19)+(190-61)+(190-29)+(29-4)+(18-4)+(40-18)= 692
692 / 9 = 77道
最短寻道时间优先:
132 - 100 + 190-132 + 190 - 61 + 61 - 40 + 40 - 29 + 29 - 23 + 23 -19 + 19-18 + 18 - 4 = 276
276 / 9 = 30.7道
扫描算法:
132 - 100 + 190-132 + 190 - 61 + 61 - 40 + 40 - 29 + 29 - 23 + 23 -19 + 19-18 + 18 - 4 = 276
276 / 9 = 30.7道
C-SCAN:
132 - 100 + 190-132 + 4 - 0 + 18 - 4 + 19 -18 + 23 - 19 + 29 - 23 + 40 - 29 + 61 - 40 = 151
151 / 9 = 16.8道
3、磁盘访问请求往往不是均衡分布在磁盘各处的。例如,在一个采用索引分配的文件系统中,索引表所在的柱面比仅包含文件内容的柱面的访问频率要高。假设知道50%的请求都是对一小部分固定数目柱面。那么,请问对这种情况,本章讨论的调度算法中哪种性能较好?为什么?
选用最短寻道时间优先算法性能更好。
因为50%的请求都是对一小部分固定柱面进行寻道,彼此之前距离不大,这样就可以让磁头一直在这个区域来回调动,对比FCFS和扫描算法的大幅度波动来说具有更少的寻道时间。
4、一个磁盘有8个盘片,每个盘片有200个磁道,每个磁道划分为128个扇区。请问:
1)这个磁盘的容量多大?
8 * 2 * 200 * 128 * 512B = 200MB
2)如果磁头移动一个磁道距离的时间是0.02ms,那么这个磁盘的平均寻道时间大约是多少?
平均寻道时间:200*0.02 / 3 = 1.33ms