【記憶體管理】重要資料結構

來源:互聯網
上載者:User
結構體:init_mm  位置:mm/Init-mm.c1  struct mm_struct init_mm = {2  .mm_rb     =RB_ROOT,        /*紅/黑樹狀結構根節點*/3  .pgd       =swapper_pg_dir,    /*核心頁全域目錄位址*/4  .mm_users  =ATOMIC_INIT(2),    /*使用者空間使用者數*/5  .mm_count  =ATOMIC_INIT(1),    /*引用數*/6  .mmap_sem  =__RWSEM_INITIALIZER(init_mm.mmap_sem),                    /*訊號量*/7 .page_table_lock=__SPIN_LOCK_UNLOCKED(init_mm.page_table_lock),     /*保護鎖*/8   .mmlist       = LIST_HEAD_INIT(init_mm.mmlist),      /*所活動mm的鏈表*/    9   INIT_MM_CONTEXT(init_mm)    /*處理器相關上下文*/};結構體:memblock_region  位置:arch/arm/mm/mmu.c:11701  struct memblock_region {2  phys_addr_tbase; /*基地址*/3  phys_addr_tsize; /*大小*/4  #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP5  int nid; /*noid id*/6  #endif7  };結構體:memblock_type  位置:include/linux/memblock.h1  struct memblock_type {2  unsignedlong cnt;   /* regions 個數 */3  unsignedlong max;   /* 已指派數組大小 */4  phys_addr_t total_size;  /* 所有regions總大小 */5  structmemblock_region *regions;6  };結構體:    memblock 位置:linux/include/asm/setup.h1  struct memblock {2  phys_addr_t current_limit; /*記憶體限制 */3  structmemblock_type memory;    /*可用記憶體*/4  structmemblock_type reserved;  /*保留記憶體*/5  }; 結構體:map_desc  位置:arch/arm/mm/mmu.c:11761  structmap_desc {2  unsignedlong virtual;  /*要映射到的虛擬位址*/3  unsignedlong pfn;       /*要映射的物理頁幀號*/4  unsignedlong length;       /*映射長度*/5  unsignedint type;       /*映射記憶體類型*/6  }; 結構體:mem_type  位置:arch/arm/mm/mmu.c:7161  struct mem_type {2      pteval_t prot_pte;       /*二層頁式flags */3      pmdval_t prot_l1;        /*二層頁式flags*/4      pmdval_t prot_sect;      /*單層段式flags*/5      unsigned int domain;     /*記憶體所屬域*/6  };結構體:    membank 位置:linux/include/asm/setup.h1  struct membank {2  phys_addr_t start;   /*Bank起始地址*/3  unsignedlong size;  /*Bank大小*/4  unsignedint highmem;    /*高端記憶體標記*/5  };結構體:    meminfo 位置:linux/include/asm/setup.h1  struct meminfo {2  intnr_banks;        /*Bank的數量*/3  structmembank bank[NR_BANKS];     /*Bank數組*/4  };1  typedefstruct{ pteval_t pte; } pte_t;     /*頁表項結構*/2  typedefstruct{ pmdval_t pmd; } pmd_t;    /*頁中間目錄結構*/3  typedefstruct{ pmdval_t pgd[2]; } pgd_t; /*頁全域目錄結構*/4  typedefstruct{ pteval_t pgprot; } pgprot_t;/*頁保護目錄結構*/  結構體: pg_data_t 位置:include/linux/Mmzone.h2  typedef struct pglist_data{3  struct zonenode_zones[MAX_NR_ZONES];     /*zone節點數組*/4  struct zonelistnode_zonelists[MAX_ZONELISTS];   /*zonelist數組*/5  int nr_zones;        /*zone個數*/6  spinlock_tnode_size_lock;  /*鎖*/7  unsigned long node_start_pfn;   /*節點開始頁幀號*/8   unsigned long node_present_pages; /* 物理頁總數 */9  unsigned long node_spanned_pages; /* 包含洞在內的所有頁幀數*/10 int node_id;  /*node編號*/11 } pg_data_t;結構體:    bootmem_data位置:include/linux/Mmzone.h1  typedefstructbootmem_data {2  unsignedlong node_min_pfn;     /*存放bootmem位元影像的第一個頁面 */3  unsignedlong node_low_pfn;     /*低端實體記憶體頂點,最大896MB*/4  void*node_bootmem_map;         /*指向bootmem位元影像*/5   unsigned long last_end_off       /*用來存放在前一次分配中所分配的最後一個位元組相對於hint_idx的位移量*/6   unsigned long hint_idx;     /*前一次分配的最後一個頁面的頁面號 */7   struct list_headlist;          /*鏈表結構*/} bootmem_data_t;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.