【问题标题】:how does xv6 use interrupts to schedule I/O requests to diskxv6 如何使用中断将 I/O 请求调度到磁盘
【发布时间】:2019-04-05 16:03:36
【问题描述】:

所以基本上刚刚开始研究 xv6 以及它是如何工作的。目前,我特别关注中断和 ide.c。

我知道 xv6 源代码在 ide.c 中包含一个工作的 IDE 驱动程序。此外,IDE 磁盘为磁盘系统提供了一个简单的接口,由四种类型的寄存器组成:控制、命令块、状态和错误。这些寄存器可通过使用 in 和 out I/O 指令读取或写入特定 I/O 地址来获得。

我很难理解的是 xv6 操作系统如何使用中断来安排对磁盘的 I/O 请求?

【问题讨论】:

    标签: io interrupt xv6


    【解决方案1】:

    xv6 不使用中断来安排 I/O 请求,而是使用中断从磁盘 IDE 获取“工作完成”事件。 内核收到中断后会检查操作是否成功并更新相关的struct buf。

    xv6 内核使用 in 和 out 汇编命令来向磁盘 IDE 发出新指令,并在 IDE 通过中断调用 CPU 时通知它准备好时接收数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-18
      • 2019-12-07
      • 2014-05-20
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 2019-11-12
      相关资源
      最近更新 更多