vma是什么 沥青混合料vma是什么


vma是什么 沥青混合料vma是什么

文章插图
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)) 。这两种数据结构包含指向同一线性区描述符的指针 , 当插入或删除一个线性区描述符时 , 内核通过红黑树搜索前后元素 , 并用搜索结果快速更新链表而不用扫描链表 。
【vma是什么 沥青混合料vma是什么】