網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

vma是什麼

欄目: IT科技 / 發佈於: / 人氣:2.76W

VMA全稱爲virtual memory area,指虛擬內存空間,又稱作線性區,表示一個線性區間。

vma是什麼

從user process角度來說明的話,VMA是user process 裏一段 virtual address space區塊。virtual address space是連續的記憶體空間,當然VMA也會是連續的空間。VMA對Linux的主要好處是,可以使記憶體的使用更有效率,並且更容易管理user process address space。每個線性區描述符表示一個線性區間。進程所擁有的線性區從來不重疊,並且內核盡力把新分配的線性區與相鄰的現有線性區進行合併。如果兩個相鄰線性區的訪問權限匹配,就把它們合併在一起。爲了存放進程的線性區,Linux既使用了鏈表(查找鏈表的時間複雜度是O(n)),也使用了紅黑樹(查找紅黑樹的時間複雜度是O(logn))。這兩種數據結構包含指向同一線性區描述符的指針,當插入或刪除一個線性區描述符時,內核透過紅黑樹搜尋前後元素,並用搜尋結果快速更新鏈表而不用掃描鏈表。

Tags:vma