版权所有 © 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
广告