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