IT常识

vma是什么

2023-01-29 8972人阅读
威客牛网
科技信息综合服务平台

VMA全称为virtual memory area,指虚拟内存空间,又称作线性区,表示一个线性区间。

  从user process角度来说明的话,VMA是user process 里一段 virtual address space区块。virtual address space是连续的记忆体空间,当然VMA也会是连续的空间。VMA对Linux的主要好处是,可以使记忆体的使用更有效率,并且更容易管理user process address space。每个线性区描述符表示一个线性区间。进程所拥有的线性区从来不重叠,并且内核尽力把新分配的线性区与相邻的现有线性区进行合并。如果两个相邻线性区的访问权限匹配,就把它们合并在一起。为了存放进程的线性区,Linux既使用了链表(查找链表的时间复杂度是O(n)),也使用了红黑树(查找红黑树的时间复杂度是O(logn))。这两种数据结构包含指向同一线性区描述符的指针,当插入或删除一个线性区描述符时,内核通过红黑树搜索前后元素,并用搜索结果快速更新链表而不用扫描链表。

热门推荐
发布项目联系我们
分享至 取消