Linux内核虚拟内存的管理结构说明

 

  1 一块虚拟内存空间用该结构来表示,然后所有的虚拟地址空间块构成了一个链表。并且形成了一个AVL树。便于查找。
  2 
  3 
  4 Vm_area_struct 结构。
  5 
  6 Typedef struct  tag_vm_area_struct
  7 
  8 {
  9 
 10 Struct mm_struct* mm;
 11 
 12 
 13 //决定了一个虚拟地址空间的Start和End
 14 
 15      Unsigned long    vm_start;
 16 
 17  Unsigned long    vm_end;
 18 
 19 
 20 //该块空间的访问属性和其他属性
 21 
 22  Pgprot_t vm_page_prot;
 23 
 24  Unsigned long  vm_flags;
 25 
 26 
 27 //虚拟地址空间块的链表
 28 
 29 Struct vm_area_struct *  vm_next;
 30 
 31 
 32 //虚拟地址空间块的AVL树
 33 
 34 Short vm_avl_height;
 35 
 36 Struct vm_area_struct *  vm_avl_left;
 37 
 38 Struct vm_area_struct *  vm_avl_right;
 39 
 40 
 41 Struct vm_operational_struct * vm_ops;
 42 
 43 
 44 
 45 Struct vm_area_struct *  vm_next_share;
 46 
 47 Struct vm_area_struct *  vm_pprev_share;
 48 
 49 
 50 
 51 Unsigned long      vm_pgoff;
 52 
 53 
 54 Struct file *   vm_file;
 55 
 56 
 57 Unsigned long    vm_raend;
 58 
 59 
 60 Void * vm_private_data;
 61 
 62 
 63 }vm_area_struct;
 64 
 65 
 66 
 67 
 68 Mm_struct 结构
 69 
 70 
 71 是进程整个用户空间的抽象。
 72 
 73 
 74 Struct mm_struct 
 75 
 76 {
 77 
 78 Struct vm_area_struct *   mmap;   //vm区域的链表头
 79 
 80 Struct vm_area_struct *   mmap_avl;   //vm的avl树
 81 
 82 Struct vm_area_struct *   mmap_cache;   //vm区域缓冲cache
 83 
 84 
 85 Pgd_t  * pgd;       //页面目录表
 86 
 87 
 88 Atomic_t    mm_users; 
 89 
 90 Atomic_t    mm_count;
 91 
 92 
 93 
 94 //vm的个数
 95 
 96 Int          mapcount;
 97 
 98 
 99 Struct semaphore mmap_sem;
100 
101 
102 Spinlock_t    page_table_lock;
103 
104 
105 Stuct list_head    mmlist;
106 
107 
108 Unsigned long  start_code, end_code, start_data, end_data;
109 
110 
111 Unsigned long  start_brk, brk, start_stack;
112 
113 
114 Unsigned long   arg_start, arg_end, env_start, env_end;
115 
116 
117 Unsigned long   rss, total_vm, locked_vm;
118 
119 Unsigned long   def_flags;
120 
121 Unsigned long   cpu_vm_mask;
122 
123 Unsigned long   swap_cnt;
124 
125 Unsigned long   swap_address;
126 
127 Mm_context_t   context;
128 
129 };
130 

 

 

posted @ 2010-05-07 14:55  甜甜嘟嘟  阅读(460)  评论(0编辑  收藏  举报