I/O 请求被放入队列并被处理逐个。

I/O 请求被放入队列并被处理逐个。

一个读写头是否可以同时在不同的轨道上进行复制和粘贴?这是如何实现的?

答案1

I/O 请求被放入队列并被处理逐个

有各种磁盘调度算法,选择最佳的一个可以缩短处理队列中所有请求所需的时间。磁盘调度算法通常会对这个队列进行排序,以更有效地处理请求,从而减少磁头移动,FIFO 又名 FCFS 算法是一个例外,因为它只读取队列...

鉴于寻道时间如果磁头移动速度较慢,则到达某个位置所需的时间会较小,使用正确的磁盘调度算法可以相当快地处理多个请求。这就是为什么如果读写速度非常快,看起来但无论如何不是同时的... :)

我将列出最流行的磁盘调度算法,更多内容可以在 Wikipedia 上找到

笔记:文件通常是碎片化的,因此为了读取一个文件,多个请求会被放入队列中。

笔记2:如果你的意思是“为什么将一个大文件从同一卷上的一个目录移动到另一个目录比将其移动到不同的分区快得多?”那么答案是因为只有文件表中的文件条目被更改,而不是物理移动文件。—评论经过惊讶

FIFO 又名 FCFS:先进先出又名先来先服务

所有请求均从队列的开头获取,无需重新排序。

SSTF:最短寻道时间优先。

从队列中取出头部移动次数最少的请求。

请注意头部移动得较少,前三张图像中头部保持静止。

扫描:就像电梯一样。

这总是带走最远的地方,然后处理沿途经过的东西。

在这张图片中,它从轨道 2 开始并计划前往轨道 4;因此,它尝试了轨道 2 上的所有操作,然后是轨道 3(无操作),然后是轨道 4,之后它转到最远的请求,即轨道 1;因此,它返回并尝试轨道 4、轨道 3(无操作)、轨道 2(无操作)然后是轨道 1。

图片: 威斯康星大学麦迪逊分校 - CS 537 - 磁盘调度(原本可能是一本书)

答案2

一个读写头如何能够同时在不同的轨道上进行复制和粘贴?

这是不可能的。

首先,读写头不执行“复制”或“粘贴”操作。这些是适用于文件管理应用程序(例如 Windows 资源管理器)的高级概念。

应用程序和操作系统逐渐将复制和粘贴操作分解为多个越来越小的操作。最终,磁盘控制器要求磁盘读取某些扇区。然后,它要求磁盘将一些数据写入某些其他扇区。在这些操作期间和之间,实际的磁盘头可能还会执行许多其他不相关的操作,并在物理列或轨道之间来回搜索。在此过程中,会在多个级别进行优化,以最大限度地提高磁盘每微秒可以执行的有用工作量,并最大限度地增加可以根据既定优先级进行 IO 操作的进程数量。

答案3

一步一步来。

  1. 设置k为 0。
  2. 从 读出x+k
  3. 写给y+k
  4. 增加k1。
  5. 若尚未完成,转至2。

相关内容