第3节 操作系统关于磁盘

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

磁盘块号
第4单元 设备管理
第3节 磁盘——特别的外设!
磁盘的结构 磁盘的访问 磁盘访问的优化 举例
优化目标
磁盘访问的平均时间尽量少 磁盘访问次数尽量少
磁盘访问优化的目标:磁盘访问时间尽量少
磁盘访问时间 = 写入控制器时间 + 寻道时间 + 旋转时间 + 传输时间
IDE控制器
磁盘的使用整理
进程1 block
进程2 block请求队列 磁盘 驱动
sec,head ,cyl
磁 盘 控 制 器
cyl
sec
head
(1) 进程提出盘块请求 (2) I/O系统用电梯算法排队 (3) 驱动程序从队列中取出请求块 (4) 驱动程序算出cyl,head,sector (5)完成端口写,驱动设备工作
从CHS到扇区号
CHS得到的扇区号是? 扇区号=C(HeadsSectors) + HSectors + S
Heads:一个柱面上的磁头数 Sectors:一个磁道上的扇区数
从扇区号如何得到CHS?
C=扇区号/ (HeadsSectors) H=扇区号%(HeadsSectors)/ Sectors S=扇区号%(HeadsSectors)%Sectors
第4单元 设备管理
第3节 磁盘——特别的外设!
磁盘的结构 磁盘的访问 磁盘访问的优化 举例
认识一下磁盘
画一个示意图:
盘面
看看俯视图:
扇区 磁道
磁盘的读写单位是扇区 扇区大小:512字节
磁盘的物理地址(CHS)
柱面C ylinder 磁头Head(磁道号、盘面号) 扇区Sector
(6)磁盘工作完成,发中断信号,中断处理
第4单元 设备管理
第3节 磁盘——特别的外设!
磁盘的结构 磁盘的访问 磁盘访问的优化 举例
举例:磁盘块VS(柱面、磁道、扇区)
• 假设一个磁盘由128个柱面组成,每个柱面上有 16个磁道,每个磁道上有8个扇区,一个扇区大小 为512个字节,8个连续扇区组成一块,问这个磁 盘空间有多少个磁盘块?每块大小是多少?
扇区嫌小了?
组块!如8个扇区组成1块!
整个磁盘 块0 块1 … 块n
第4单元 设备管理
第3节 磁盘——特别的外设!
磁盘的结构 磁盘的访问 磁盘访问的优化 举例
如果直接通过设备管理提供的接口访问?
读磁盘:需要设备号、磁盘块号! 写磁盘:提供设备号,返回块号 文件名
文件系统
0 14 37 53 65 67 98 122 124 183 199
SCAN: 磁头共移动 236磁道,和SSTF一 样!
根据其特征,SCAN 也被称为电梯算法!
这些请求的等待时 间较长,只因所在 方向不够幸运!
SCAN导致延迟不均
C-SCAN
SCAN+直接移到另一端:两端请求都能很快处理
继续该实例: 磁头开始位置=53;
2
5 5 5 40
7
2 3 3 6
7
1 8 5 3
2
5 5 5 40
7
2 3 3 6
7
1 5 8 3
优化目标
磁盘访问的平均时间尽量少 磁盘访问次数尽量少 移臂调度、旋转调度
优化目标
磁盘访问的平均时间尽量少 磁盘访问次数尽量少
缓冲:延迟写、提前读 读写单位:CHS-扇区--磁盘块
作业
Leabharlann Baidu• 5-3 • 5-4
总结
• 操作系统自己用磁盘可以用磁盘块寻址 • 磁盘的访问是可以优化的
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
CSCAN: 磁头共移动 188+200磁道! 其中200会较快!
还可以考虑旋转时间:
旋转调度:调度扇区访问的顺序
柱面号 盘面号 扇区号
柱面号 盘面号 扇区号
寻道时间:手臂移到要访问的柱面的时间
旋转时间:磁盘旋转,直到要访问的扇区转到读写头下
如何减少平均寻道时间?
通过改变排队顺序影响寻道时间
磁臂
多个进程通过队列使用磁盘
block
进程1 进程2
block
请求队列
磁盘 驱动
chs
磁 盘 控 制 器
cyl head
sec
如果不改变排队
先到达的先访问
一个实例: 磁头开始位置=53;
请求队列=98, 183, 37, 122, 14, 124, 65, 67
0 14 37 53 65 67 98 122 124 183 199
SSTF: 磁头共移动236 磁道,要少很多!
SSTF存在饥饿问题
SCAN
沿着一个方向移动,遇到请求就处理
磁头开始位置=53,正往低地址方向移动;
请求队列=98, 183, 37, 122, 14, 124, 65, 67
磁盘的线性地址——将所有扇区统一编号!
整个磁盘 0柱面 柱面0 柱面1 … 柱面n 扇区0 一个柱面 磁头0 磁头1 … 磁头k 扇区1 …
扇区k*p-1
1柱面 扇区kp
扇区kp+1

扇区2k*p-1
一个磁道 扇区0 扇区1 … 扇区p
。。。。。。。。。。。
按照(C,H,S)将扇区形成一 维扇区编号
0 14 37 53 65 67 98
FCFS: 磁头共移 动640磁道!
请求队列=98, 183, 37, 122, 14, 124, 65, 67
122 124 183 199
磁头在长途奔袭!
SSTF(Shortest-seek-time First)
离当前磁头最近的优先访问
继续该实例: 磁头开始位置=53;
相关文档
最新文档