高级进程管理技术详解
1. 错误码说明
在进程管理中,有一些常见的错误码,其含义如下:
| 错误码 | 含义 |
| ---- | ---- |
| EPERM | 匹配进程的有效用户 ID 与运行进程的有效用户 ID 不匹配,且运行进程不具备 CAP_SYS_NICE(仅针对 setpriority()) |
| ESRCH | 未找到符合 which 和 who 所提供标准的进程 |
2. I/O 优先级
Linux 除了调度优先级外,还允许进程指定 I/O 优先级,该值会影响进程 I/O 请求的相对优先级。内核的 I/O 调度器会优先处理 I/O 优先级高的进程的请求。
- 默认规则 :默认情况下,I/O 调度器使用进程的 nice 值来确定 I/O 优先级,因此设置 nice 值会自动改变 I/O 优先级。
- 系统调用 :Linux 内核提供了两个系统调用来独立于 nice 值显式设置和获取 I/O 优先级:
int ioprio_get (int which, int who);
int ioprio_set (int which, int who, int ioprio);
不过,内核尚未导出这些系统调用,glibc 也未提供用户空间访问。在没有 glibc 支持的情况下,使用起来很麻烦。在有支持之前,有两种可移植的方法来操作进程的 I/O 优先级:通过 nice 值,或使用如 ionice(属于 util - linu
超级会员免费看
订阅专栏 解锁全文
1275

被折叠的 条评论
为什么被折叠?



