版權所有 © 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 值
讀取和同步(O_DIRECT、O_SYNC)寫入支援 I/O 優先順序。非同步寫入不支援 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
廣告