2009-11-19 34 views

回答

1

是的。但在Linux中使用“time”命令时,它会显示为“系统”时间。

基本上,您进行系统调用,告诉操作系统要读取哪些数据以及将其放到哪里,然后操作系统(这里是CPU周期)设置缓冲区并告诉DMA将数据放在哪里。你的进程被阻塞了,操作系统选择了一个新的进程来运行,但这并不能真正抵抗你的fread调用。最终,读数完成,并且DMA系统向处理器发出中断(更多CPU周期出现),此时操作系统看到数据准备就绪,返回到您的程序(并将您的线程置于就绪队列 - 结束CPU时间)。

1

无论是使用DMA还是使用nt都独立于您从文件中读取哪个C库调用。如果没有管理员权限,通常你不能影响它。

编辑:

无论系统采用DMA访问的设备并不取决于是否使用scanf函数,FREAD,读取或任何其他文件访问功能。这取决于设备驱动程序设置,普通用户无法更改。只要花费在与设备通信上的时间,几乎所有的时间都会被你的进程的系统计时器计数(如上面的答案),而一小部分根本不会被计算在内。

+0

我不明白你的意思。你能详细解释一下吗? – SunnyShah 2009-11-19 19:47:37

相关问题