2009-11-19 66 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

相關問題