第四章part2

操作系统(四 part2)

磁盘的结构

磁盘、磁道、扇区:磁盘盘面被划分为一个个磁道(一个圈一个磁道),磁道被划分为一个个扇区,各扇区存放的数据量相同

如何在磁盘中读写:磁头的移动

盘面、柱面的概念

可以用(柱面号,盘面号,扇区号)的三元组定位任意一个磁盘块

对应某一圈、某一层、某一段圆弧

磁盘的物理地址

磁盘的分类

磁盘调度算法

一次磁盘读写需要的时间

寻找时间(寻道时间):启动磁头臂、移动磁头结构需要时间

延迟时间

设磁盘转速为 r   转 / 每 秒 r\space转/每秒 r 转/每秒,则转一圈所需时间为 1 / r 1/r 1/r

平均延迟时间 T R = 1 / 2 r T_R = 1/2r TR​=1/2r

传输时间

读写的字节数为 b b b,每磁道上的字节数为 N N N,则需要访问 b / N b / N b/N个扇区

传输时间 T t = b / r × N T_t = b/r\times N Tt​=b/r×N

磁盘调度算法:参考进程调度

先来先服务FCFS:根据进程请求的先后顺序进行访问

最短寻道时间优先SSTF:保证当前的寻道时间最短(访问距离当前位置最近的磁道。总时间最短。可能导致饥饿。(类似短进程优先)

扫描算法SCAN

电梯算法,磁头移动到最外侧磁道后才能向内移动,移动到最内侧磁道才能向外移动(每次都需要移过所有的柱面),不会产生饥饿现象

缺点:必须移动到最边上的磁道才调转方向,造成不必要的开销,对各位置磁道的响应频率不平均

LOOK调度算法:若移动方向上已经没有其他请求,立即改变移动方向(减少到边缘才转换方向的不必要开销)

循环扫描算法C-SCAN:只有磁头向特定方向移动时才处理磁道请求,返回时直接移动到起始端(解决响应时间不均的问题)

C-LOOK算法:不需要移动到最边缘、只向同一个方向进行扫描

减少磁盘延迟的方法

前情提要

寻道时间:启动磁头臂、移动磁头的时间

延迟时间:将目标扇区移动到磁头下需要的时间

传输时间:读写花费的时间

由于读入某块数据之后还需要进行一小段时间的数据处理,因此对于逻辑上和物理上都相邻扇区,访问的延迟时间较高

实现方法:

间隔编号:让逻辑上的相邻扇区物理上有一小段间隔,如0~3号实际编号为0、2、1、3

磁盘地址结构的设计:使用(柱面号,盘面号,扇区号)的三元组,在连续读写时不需要移动磁头臂,只需要激活不同盘面上的磁头即可(减少磁头移动消耗的时间)

错位命名:不同盘面相同扇区的编号相互错开

上一篇:多线程与高并发-part2


下一篇:第七章:网络优化与正则化(Part2)