Calendar
Placard
Category
Latest Entries
Latest Comments
Last Messages
User Login
Links
Information
Search
Other


Welcome to my blog!
  Linux MMU summary(2)
 
2. 非连续内存分配
  vmalloc()是内核可以用来分配连续虚存,但非连续物理内存的方法。
  对于内核,可以用来分配的虚存介于VMALLOC_START和VMALLOC_END之间。VMALLOC_START的起始位置取决于可用的物理l内存总量。因为是给不连续物理内存分配,所以每块物理单元都是用:vm_struct来描述。此结构很简单,包括单元块使用标志,起始地址,长度,及至向next的指针。
  一个有意思的地方是,每一个离散的被分配的块之间至少会有一页的间隔,以此来避免overrun。
 
  1. 分配/释放非连续区域
    首先找到可以满足分配的足够大的一块区,再分配PGD条目,PMD条目,PTE条目,最后才分配页。释放的顺序正好相反,先释放PGD条目,PMD条目,PTE条目,最后是页。
 
Reference: <<Understanding the Linux Virtual Memory Manager>>
 
 
[ 阅读全文 | 回复(0) | 引用通告 | 编辑

  Post  by  Moreframe 发表于 2006-10-11 18:01:00
  • 标签:Linux MMU 
  • 发表评论:
    Powered by Oblog.