软考中级 软件设计师 第二章 第六节 磁盘管理

目录

1、磁盘读取时间

2、移臂调度算法

3、关于缓冲区和时间

3.1、单缓冲区

3.2、双缓冲区

4、I/O管理软件


1、磁盘读取时间

每一个磁盘都是由磁道和扇区组成,最外一层被称为0磁道。

想要寻找到某个数据,就要从磁道开始寻找,扇区会自己旋转,这样一定能找到自己要找的数据,只是需要进行等待,因此,存取时间的计算公式为:

存取时间=寻道时间+等待时间

寻道时间:磁头移动到磁道所需的时间。

等待时间:等待读写的扇区转到磁头下方所用的时间。

因此,读取磁盘数据的时间应当包含一下三个部分:

  1. 寻找磁道的时间。
  2. 寻找块(扇区)的时间,即旋转延迟时间
  3. 传输时间

磁盘读取时间=块数×(间隔磁道数×寻找磁道的时间+旋转延迟时间+传输时间)

这只是最简单的时间算法。

2、移臂调度算法

移臂调度算法是节省时间的另外一种方式。

  1. 先来先服务(FCFS)
  2. 最短寻道时间优先(SSTF)
  3. 扫描算法(SCAN)又叫电梯算法,是双向扫描,即从最内到最外,再从最外到最内
  4. 循环扫描(CSCAN)算法,单向扫描

3、关于缓冲区和时间

在传输过程中有缓冲区参与的时候,情况可能会有些不同。

3.1、单缓冲区

每一个缓冲区都是阻塞的,这意味着单缓冲区会导致资源无法被同时获取,换言之,就是在进入缓冲区之前和进入缓冲区之后的相邻步骤中,时间是固定消耗的,cpu无法同时处理。但除此之外的步骤却可以同时进行。

举个例子:

假设磁盘和缓冲区大小相等,每个盘快读入缓冲区的时间为15us,由缓冲区送至用户去的时间是5us,在用户去内系统对每块数据的处理时间为1us,若用户需要将10个磁盘块的doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么单缓冲区情况下,需要花费多少时间?

在这个例子中,每一个块经过缓冲区时,必然会消耗的时间是15+5,送过去后,系统可以在读取数据的同时继续向缓冲区发送数据,所以这读取的1us时间其实是被包含在所有的传输时间内的,只有最后一次传输是需要单独消耗一部分时间,这就是一个流水线的计算。

因此,最后的计算结果是(15+5+1)+(15+5)×(10-1)

3.2、双缓冲区

双缓冲区并不意味着两个缓冲区可以同时使用,但相对应的,缓冲区A在输入时,缓冲区B就可以进行输出,这样整个缓冲区读取数据的时间就被压缩了。

举个例子:

假设磁盘和缓冲区大小相等,每个盘快读入缓冲区的时间为15us,由缓冲区送至用户去的时间是5us,在用户去内系统对每块数据的处理时间为1us,若用户需要将10个磁盘块的doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么双缓冲区情况下,需要花费多少时间?

正如单缓冲区的时间被划分成15+5和1两块,双缓冲区的时间被划分为了15,5和1三块,三块时间在做流水线时间计算时,就是(1+5+15)+15×(10-1)

4、I/O管理软件

只需要记住层次即可

用户进程
设备无关程序
设备驱动程序
中断处理程序
硬件

你可能感兴趣的:(笔记)