该教程适用
VMA全称为virtual memory area,指虚拟内存空间,又称作线性区,表示一个线性区间。
工具:
型号:
系统:
软件:
操作步骤/方法
方法教程
1 VMA全称为virtualmemoryarea,指虚拟内存空间,又称作线性区,表示一个线性区间。 2 从userprocess角度来说明的话,VMA是userprocess里一段virtualaddressspace区块。virtualaddressspace是连续的记忆体空间,当然VMA也会是连续的空间。VMA对Linux的主要好处是,可以使记忆体的使用更有效率,并且更容易管理userprocessaddressspace。每个线性区描述符表示一个线性区间。进程所拥有的线性区从来不重叠,并且内核尽力把新分配的线性区与相邻的现有线性区进行合并。如果两个相邻线性区的访问权限匹配,就把它们合并在一起。为了存放进程的线性区,Linux既使用了链表(查找链表的时间复杂度是O(n)),也使用了红黑树(查找红黑树的时间复杂度是O(logn))。这两种数据结构包含指向同一线性区描述符的指针,当插入或删除一个线性区描述符时,内核通过红黑树搜索前后元素,并用搜索结果快速更新链表而不用扫描链表。