vms_iowait , vms_iowaitf 内核服务
用途
等待虚拟内存对象中的页面的所有页面调出操作完成。
语法
参数
| 项 | 描述 |
|---|---|
| 弗米德 | 标识要为其等待的虚拟内存对象。 |
| 标志 | 由用户传递的可选标志。 |
描述
vms_iowait 内核服务执行两项任务。 首先,它会确定 vmid 参数指定的虚拟内存对象当前计划的所有分页完成时的 I/O 级别。 然后,vms_iowait 服务会将当前进程置于等待状态,直到达到该 I/O 级别。
I/O 级别值是对每个虚拟内存对象保留的页面输出操作计数。
在所有先前请求完成之前, I/O 级别不会增加新页面输出请求的 I/O 级别,从而使 I/O 级别进行无序处理。 因此,在单个页面输出操作完成后,可以唤醒正在不同 I/O 级别上等待的进程。
如果调用者持有内核锁,vms_iowait 服务会在等待前释放内核锁,然后重新获取内核锁。
vms_iowait 函数是设置了 V_WAITERR 标记的 vms_iowaitf 函数的特例。
标志
| 姓名 | 用途 |
|---|---|
V_WAITERR |
除非发生错误,否则等待直至所有 I/O 完成。 |
V_WAITALL |
等待所有 I/O 完成,而不考虑发生的任何 I/O 错误。 |
执行环境
vms_iowait 和 vms_iowaitf 内核服务只能从 进程环境中调用。
只有文件段才能使用这些文件段。
返回值
| 项 | 描述 |
|---|---|
0 |
指示已完成页面出入操作。 |
EIO |
指示执行 I/O 时发生了错误。 |