xv6如何使用中断来调度对磁盘的I / O请求

时间:2019-04-05 16:03:37

标签: io interrupt xv6

因此,基本上刚刚开始研究xv6及其工作原理。在momenet上,我非常关注中断和ide.c。

我知道xv6源代码在ide.c中包含一个可用的IDE驱动程序。而且,IDE磁盘为磁盘系统提供了一个简单的界面,由四种类型的寄存器组成:控制,命令块,状态和错误。通过使用输入和输出I / O指令读取或写入特定的I / O地址,可以使用这些寄存器。

我努力了解的是xv6操作系统如何使用中断来调度对磁盘的I / O请求?

1 个答案:

答案 0 :(得分:0)

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

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