虚拟内存对象

姓名

vm_object - 虚拟内存容器

摘要

虚拟内存对象 (VMO) 表示可以映射到多个地址空间的虚拟内存的连续区域。

说明

VMO 在内核和用户空间中用于表示分页内存和物理内存。它们是在进程之间以及内核和用户空间之间共享内存的标准方法。

VMO 是使用 zx_vmo_create() 创建的,您可以使用 zx_vmo_read()zx_vmo_write() 对它们执行基本的 I/O。可以使用 zx_vmo_set_size() 设置 VMO 的大小。相反,zx_vmo_get_size() 会检索 VMO 的当前大小。

VMO 的大小将向上舍入为内核的下一个页面大小边界。

系统会通过 zx_vmo_read()zx_vmo_write() 或者写入到使用 zx_vmar_map() 创建的 VMO 的映射,按需为 VMO 提交(分配)页面。您可以通过使用 ZX_VMO_OP_COMMITZX_VMO_OP_DECOMMIT 操作调用 zx_vmo_op_range() 来手动提交和从 VMO 提交页面,但此操作应被视为低级别操作。zx_vmo_op_range() 还可用于对 VMO 所保全的页面执行缓存和锁定操作。

如果进程具有涉及缓存政策的特殊用例,可以使用 zx_vmo_set_cache_policy() 更改给定 VMO 的政策。此用例通常适用于设备驱动程序。

系统调用