第2讲磁盘管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程
盘 控
磁盘
请求队列 制 器
我们最关心的磁盘什么时候读/写完?
前两项可 以忽略!
磁盘访问延迟 = 队列时间 + 控制器时间 +
寻道时间 + 旋转时间 + 传输时间
12 ms to 8 ms
(半周): 8 ms to 4 ms
50M/秒 约0.25ms
关键所在: 最小化寻道时间和旋转延迟!
磁盘管理
认识计算机外设与计算机!
图形控制器
CPU-内存总线 总线控制器
PCI总线
IDE控制器
对我们来说,磁盘无疑是 最重要的设备,我们下载 的电影放在这里,我们写
的论文也放在这里…
认识一下磁盘
画一个示意图:
盘面
看看俯视图:
扇区
扇区是磁盘的寻址 单位、访问单位
磁盘的数据单位是扇区
扇区大小:512字节
磁道
扇区的大小是传输时间和
方向不够幸运!
SCAN导致延迟不均
C-SCAN磁盘调度
SCAN+直接移到另一端:两端请求都能很快处理
继续该实例: 磁头开始位置=53;
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67
98 122 124
183 199
CSCAN: 磁头共移动 188+200磁道! 其中200会较快!
磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间
缓冲写
磁盘
延迟发送
高速缓冲 高速缓冲
用户 数据区
用户进程
用户 数据区
用户进程
19 25
磁盘管理
减少访问磁盘的总时间
磁盘调度:移臂调度、旋转调度
减少访问磁盘的次数
缓冲 延迟写 提前读 读写单位:扇区、组块 虚拟盘
20
I/O过程是解开许多磁盘问题的
钥匙
分析磁盘扇区尺寸:
前两项可以忽略!
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67
98 122 124
183 199
在移动过 程中把经 过的请求 处理了!
磁头在长途奔 袭!
SSTF磁盘调度
Shortest-seek-time First:
继续该实例: 磁头开始位置=53;
整个磁盘
柱面1 0
柱面2
…
一个柱面
柱面n
磁臂
磁道1 kp
磁道2
…
一个磁道
扇区1 扇区2
…
(k+1)p (k+2)p …
磁道k 扇区p
体现了局部性!
扇区编号,按照(C,H,S)将 扇区形成一维扇区数组, 数组索引就是扇区编号
针对设备特性的调度策略 旋转调度
对磁盘访问的5个请求应作 如下调度
柱面号 盘面号 扇区号
LOOK和C-LOOK是比较合理的缺省算法 操作系统中所有的算法都要因地制宜!
磁盘管理
减少访问磁盘的总时间
磁盘调度:移臂调度、旋转调度
减少访问磁盘的次数
缓冲 延迟写 提前读 簇 虚拟盘
14
I/O过程是解开许多磁盘问题的
钥匙
柱面!
磁盘寻址:对于内存,我们
往往更关心存放内容的地址
磁臂
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67
98 122 124
183 199
如果在处理183之前 又来一些中间磁道
的请求,则…
SSTF: 磁头共移动 236(4+53+169)磁道,
要少很多!
SSTF存在饥饿问题
SCAN磁盘调度
SSTF+中途不回折:每个请求都有处理机会
继续该实例: 磁头开始位置=53;
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67
98 122 124
183 199
根据其特征, SCAN也被称为电
梯算法!
SCAN: 磁头共移动 53+183=236磁道,
和SSTF一样!
这些请求的等待时 间较长,只因所在
CSCAN中的C是环 的意思!
140(183199) 没有必要
C-LOOK磁盘调度
CSCAN+看一看:前面没有请求就回移
继续该实例: 磁头开始位置=53;
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67
98 122 124
183 199
安装文件系统
4
磁盘的I/O
分析磁盘I/O的重点
(2)
在于第2步!
总线控制器
(1)
(3)
让我们仔细想想磁盘如何
读/写1一个字节?
内存缓存
读出了一 个字节பைடு நூலகம்
IDE控制器
磁道
写(修改) 一个字节
磁盘I/O: 缓存队列控制器寻道旋转传输!
磁盘I/O的分析
可以整理磁盘I/O的过程: Head
磁道 扇区
磁
所以,磁盘被称为块设备! 碎片浪费的折衷
盘面9
盘面8 盘面7 盘面6 盘面5 盘面4 盘面3 盘面2 盘面1
盘面0
柱面C ylinder 磁道Head(磁头号、盘 面号) 扇区Sector
扇区
轴心
读写磁头 主杆
磁盘的结构和布局
磁道 磁道间隔 扇区间隔
3
磁盘的结构划分
❖ 低级格式化
划分磁道、扇区
❖ 高级格式化
2
7
7
5
2
1
5
3
8
5
3
5
40
6
3
柱面号 盘面号 扇区号
2
7
7
5
2
1
5
3
5
5
3
8
40
6
3
13
磁盘管理
减少访问磁盘的总时间
磁盘调度:移臂调度、旋转调度
减少访问磁盘的次数
缓冲 延迟写 提前读 读写单位:扇区、组块 虚拟盘
18
▪ UNIX缓冲管理算法 ➢ 缓冲读、写示意图
缓冲读
磁盘
预先缓存
实际上就是扇区怎么编址?
显然这个地址是(盘面?, 磁道?, 扇区?)
寻道和旋转费时多花最少时间访问最多扇区
的方案: 磁臂不动、磁盘旋转一周,访问磁头
遇到的所有扇区。
让这些扇区的编址邻近: 因为局部性!
扇区编址(1): CHS(Cylinder/Head/Sector)
扇区编址(2): 扇区编号
扇区编号—现代磁盘的常见寻址 方式
减少访问磁盘的总时间
磁盘调度:移臂调度、旋转调度
减少访问磁盘的次数
缓冲 延迟写 提前读 簇 虚拟盘
7
I/O过程是解开许多磁盘问题的
钥匙
磁盘调度:
前两项可以忽略!
磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间
12 ms to 8 ms
8 ms to 4 ms
约0.25ms
多个磁盘访问请求出现在请求队列怎么办? 调度 调度的目标是什么? 调度时主要考察什么?
目标当然是平均 寻道时间是主要
访问延迟小!
矛盾!
磁盘调度: 输入多个磁道请求,给出服务顺序!
FCFS磁盘调度
最直观、最公平的调度:
一个实例: 磁头开始位置=53;
FCFS: 磁头共移 动640磁道!