Io 磁盘调度在哪里实现

Io 磁盘调度在哪里实现,io,operating-system,disk,Io,Operating System,Disk,我最近在学习操作系统的磁盘调度部分。我可以理解解决这个问题的各种算法,比如FCFS、LIFO、SSTF、SCAN等等。但我想知道这些算法是在哪里实现的 我认为操作系统不是答案,因为操作系统不知道I/O设备的细节。那么它们是在设备本身上实现的吗?谁能帮我澄清一下吗?任何相关文献或链接都将不胜感激。在实践中,(例如,重新排序待处理的磁盘读取以最小化旋转延迟),今天的重要性不如三十世纪 硬盘的使用可能会减少,有利于固态硬盘,而且它们的速度更慢,即快速RAM访问时间 内核看到的磁盘扇区已由自身重新组织

我最近在学习操作系统的磁盘调度部分。我可以理解解决这个问题的各种算法,比如FCFS、LIFO、SSTF、SCAN等等。但我想知道这些算法是在哪里实现的


我认为操作系统不是答案,因为操作系统不知道I/O设备的细节。那么它们是在设备本身上实现的吗?谁能帮我澄清一下吗?任何相关文献或链接都将不胜感激。

在实践中,(例如,重新排序待处理的磁盘读取以最小化旋转延迟),今天的重要性不如三十世纪

  • 硬盘的使用可能会减少,有利于固态硬盘,而且它们的速度更慢,即快速RAM访问时间

  • 内核看到的磁盘扇区已由自身重新组织,因此寻址(由看到)与几何现实不符

  • 现在的智能化程度更高,其内部控制器具有强大的内存和计算能力。协议有一些“更高级别”的请求(例如)。了解和了解

但是,应用程序代码可以向操作系统提供有关访问模式的提示。例如,查看以下示例


另请阅读

简单的答案是,如今,这一切都发生在驱动器控制器中

在过去,操作系统通常在两层实现磁盘I/O。顶部是一个独立于驱动器的逻辑层。这将驱动器视为块阵列。下面是一个物理层,它将磁盘视为盘片、磁道和扇区。由于不同驱动器的物理细节不同,因此物理层通常在特定于磁盘(或磁盘类)的设备驱动程序中实现

在这样的黑暗时期,您通常必须等待驱动器供应商创建新的设备驱动程序,然后才能升级操作系统

在20世纪80年代中期,磁盘驱动器开始普遍提供逻辑I/O接口。设备驱动程序不再看到磁盘/盘片/扇区。相反,它只看到一个逻辑块数组。驱动器负责物理位置和坏块的重定向(操作系统用来处理的任务)。这允许单个设备驱动程序管理多种类型的设备,共享相同的接口,并且只在逻辑块的数量上有所不同

现在,你很难找到一个不提供逻辑接口的磁盘驱动器

所有涉及物理位置的调度算法都必须在磁盘驱动器中进行


除非你在做磁盘驱动器工程,否则这种调度算法是毫无意义的。如果你正在学习硬盘工程,那么这种职业很快就会消失。

“操作系统无法了解I/O设备的细节”。。。那么这是一个非常无用的操作系统。。。