版權所有 © 2014 tutorialspoint
int ioprio_get(int which, int who); int ioprio_set(int which, int who, int ioprio);
which 和 who 引數標識系統呼叫操作的程序。which 引數確定如何解釋 who,並具有以下值之一
傳遞給 ioprio_set() 的 ioprio 引數是一個位掩碼,它指定要分配給目標程序的排程類和優先順序。以下宏用於組裝和分解 ioprio 值
I/O 優先順序支援讀取和同步 (O_DIRECT、O_SYNC) 寫入。I/O 優先順序不支援非同步寫入,因為它們是在使記憶體變髒的程式上下文之外發出的,因此特定於程式的優先順序不適用。
成功時,ioprio_set() 返回 0。發生錯誤時,返回 -1,並且 errno 設定為指示錯誤。
僅當與支援 I/O 優先順序的 I/O 排程程式結合使用時,這些系統呼叫才有效。截至核心 2.6.17,唯一的此類排程程式是完全公平佇列 (CFQ) I/O 排程程式。
可以透過 /sys 檔案系統檢視當前的 I/O 排程程式。例如,以下命令顯示核心中當前載入的所有排程程式的列表
$ cat /sys/block/hda/queue/scheduler noop anticipatory deadline [cfq]
括號中的排程程式是裝置(示例中的 hda)實際使用的排程程式。透過將新排程程式的名稱寫入此檔案來設定另一個排程程式。例如,以下命令將 hda 裝置的排程程式設定為 cfq
$ su Password: # echo cfq > /sys/block/hda/queue/scheduler
廣告