第九讲+虚拟内存管理(一)ppt课件.ppt

第九讲+虚拟内存管理(一)ppt课件.ppt

ID:59014909

大小:473.00 KB

页数:44页

时间:2020-09-26

第九讲+虚拟内存管理(一)ppt课件.ppt_第1页
第九讲+虚拟内存管理(一)ppt课件.ppt_第2页
第九讲+虚拟内存管理(一)ppt课件.ppt_第3页
第九讲+虚拟内存管理(一)ppt课件.ppt_第4页
第九讲+虚拟内存管理(一)ppt课件.ppt_第5页
资源描述:

《第九讲+虚拟内存管理(一)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux内核源代码导读哈尔滨工业大学(威海)嵌入式系统实验室Spring2012Linux虚拟内存管理1描述物理内存2页表管理3进程地址空间1描述物理内存均质存储结构与非均质存储结构传统的计算机中,整个物理空间都是均匀一致的,CPU访问这个空间中任何一个地址所需时间都是相同的,所以称为“均质存储结构(UniformMemoryArchitecture)”,简称UMA2021/7/30假设一台的计算机中具有这样的结构:在这样的系统中,其物理存储空间虽然连续,“质地”却不一致,CPU访问各内存区域速度不一样,所以称为“非均质存储结构(Non-UniformMemoryArchite

2、cture)”,简称NUMA总线CPU内存CPU内存CPU内存CPU内存2021/7/30节点(Node)在NUMA结构的系统中,属于同一个CPU节点的存储器模块通常是匀质的,因此也被称为“存储节点” (MemoryNode)在Linux中,节点用一个名为pg_data_t的结构体来表示。所有的节点通过pg_data_t->node_next指针被链入一个叫做pgdat_list的单向链表UMA结构的计算机只有一个节点分配一个页面时,Linux采取node-localallocationpolicy从距离当前CPU最近的节点分配2021/7/30管理区(Zone)每个节点内的物理

3、内存又按照其地址被划分为几个管理区(zone)。使用一个叫做zone_t的结构体来代表每个管理区管理区的类型可以是ZONE_DMA,ZONE_NORMAL或ZONE_HIGHMEMZONE_DMA:用于DMAZONE_NORMAL:可以直接映射到内核的区域ZONE_HIGHMEM:高端内存,不能被直接映射到内核2021/7/30Withthex86thezonesare:ZONE_DMAFirst16MiBofmemoryZONE_NORMAL16MiB–896MiBZONE_HIGHMEM896MiB–End2021/7/30页面(page)系统的内存被划分为固定大小的块,称为

4、页框(pageframe)。每个物理页框由一个page(或mem_map_t)结构体表示内核在初始化时根据物理内存的大小建立起一个page结构体数组mem_map,作为物理页框的仓库每个page结构在这个数组内的下标就是该物理页框的序号mem_map数组通常放在ZONE_NORMAL的开始处2021/7/30Nodes,Zones和Pages关系图pagepagepagepagepagepagezone_mem_mapzone_mem_mapzone_mem_mapZONE_DMAZONE_NORMALZONE_HIGHMEMnode_zonespage_data_t2021/7

5、/30节点(Nodes)如前所述,一个节点用pg_data_t结构代表。在声明:typedefstructpglist_data{zone_tnode_zones[MAX_NR_ZONES];//节点包括的的管理区zonelist_tnode_zonelists[GFP_ZONEMASK+1];intnr_zones;//管理区数量structpage*node_mem_map;//该节点的第一个页面unsignedlong*valid_addr_bitmap;//描述节点内空洞的位图structbootmem_data*bdata;unsigne

6、dlongnode_start_paddr;//节点起始物理地址unsignedlongnode_start_mapnr;//在mem_map数组内的偏移unsignedlongnode_size;//节点大小,即总页面数intnode_id;//节点编号structpglist_data*node_next;//指向下一个节点的指针}pg_data_t;2021/7/30管理区(Zones)一个管理区用zone_t结构代表。在声明:typedefstructzone_struct{spinlock_tlock;//保护该结构的自旋锁unsigne

7、dlongfree_pages;//空闲页面总数unsignedlongpages_min,pages_low,pages_high;intneed_balance;//是否需要kswaped来平衡内存分配free_area_tfree_area[MAX_ORDER];//空闲区位图wait_queue_head_t*wait_table;//等待释放页面的进程哈希表unsignedlongwait_table_size;//上述哈希表大小unsignedlongwait_tab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。