日期:2014-05-16 浏览次数:20962 次
struct mm_struct
{
    struct vm_area_struct *mmap;     //list of VMA
    rb_root_t mm_rb;                     //指向vma段红黑树的指针
    struct vm_area_struct *mmap_cache;   //last find_vma result  存储上一次查询的操作的结果
    pgd_t *pgd;                            //进程页目录的起始地址
    atomic_t mm_users;                    //how many users with user space
    atomic_t mm_count;                    //how many reference to "struct mm_struct"
    int map_count;                        //Number of VMA
    struct rw_semaphore mmap_sem;        //对mmap操作的互赤信号量
    spinlock_t page_table_lock;            //Protects task page tables and mm->rss
    struct list_head mmlist;            //list of all active mm's. These are globally together off init_mm.mmlist,and are protected by mmlist_lock
    unsigned long start_code,end_code,start_data,end_data;
    unsigned long start_brk,brk,start_stack;
    unsigned long arg_start,arg_end,env_start,env_end;
    unsigned long rss,total_vm,locked_vm;     //rss进程内容驻留在物理内存的页面地址
    unsigned long def_flags;
    unsigned long cpu_vm_mask;
    unsigned long swap_address;     //页面换出过程用到交换空间地址
    un