ch4-4.6-x86存储机制-4.7Linux虚存.ppt_第1页
ch4-4.6-x86存储机制-4.7Linux虚存.ppt_第2页
ch4-4.6-x86存储机制-4.7Linux虚存.ppt_第3页
ch4-4.6-x86存储机制-4.7Linux虚存.ppt_第4页
ch4-4.6-x86存储机制-4.7Linux虚存.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.6英特尔x86系列CPU是英特尔x86段和分页存储结构,包括物理地址模式、保护模式、虚拟8086模式英特尔x86的虚拟存储管理核心表:LDT和GDT段寄存器,以及虚拟地址、虚拟地址大小和虚拟地址空间,共16K个存储段。其中,GDT映射的一半(8192个)全局虚拟地址、LDT映射的另一半(8192个)本地虚拟地址,以及在发生进程切换时使用正在运行的进程的LDT更新LDT,GDT保持不变。每个段的偏移为32位,即4GB,因此整个虚拟地址=16K4GB=64TB。分段页面地址转换过程,4.7 Linux虚拟存储管理,4.7.1 Linux虚拟存储管理概述在Linux上,该过程可以访问4GB虚拟地

2、址空间。其中0-3 GB是用户进程独占的,可以直接访问。3GB到4GB是所有核心状态进程共享并存储系统代码和数据的内核空间。流程有一个页面大小的页面目录,页面目录中的起始地址存储在流程mm_struct结构中,工作时会牙齿加载寄存器CR3。页面目录项目以4个位元组储存页面表格的起始位址,总计为1024个项目。每个页面表格也存储为一页。每个项目为4个位元组,共1024个项目,储存页面方块基本位址。分页表项的格式,0位表示页面不是主页/无;如果位置为1,则可以读取页面;否则为只读。2位是选择用户级访问许可证/内核级访问许可证。3位表示位置使用“直接写入”。否则,这是回写缓存。如果4位是位置,则禁用

3、缓存。位置5表示页面最近访问过。6位表示自上次清除页面以来页面内容发生了变化。7位是页面大小。8位是全局页面。12到31位是帧的默认地址。4.7.2存储管理数据结构,1物理主内存数据结构物理主存储分三个阶段进行管理。1)存储节点2)管理区域3)页面框,1)页面框管理,物理主内存分为与页面长度相同的页面框,系统中的所有页面框由mem _ mem管理,Mem_map本身是mem_map_t的数组,每个mem_map整个数组表示系统中的所有页面框,数组下标是用于管理页面框的物理页面框的序列号。mem _ map _ t,typedef struct page/* page数据结构*/struct l

4、ist _ head list;/*list_head是连接page */structpage * next _ hash的通用双向链队列结构。/* page cache的哈希表中的后续指针*/atomic _ tcount;/*访问牙齿页面框的进程数*/unsigned long flags;/*标志位*/unsigned dirty;/*修改徽标*/struct list _ headlru;/*替换页面链表或活动链表*/unsigned long age;/*页面年龄,越小*/unsigned long map _ NR;Mem_map表格中的/*框架下标*/struct page *

5、* pprev _ hash;/*page cache的哈希表中的向前指针*/struct buffer _ hash * buffers;/*如果牙齿页面框用作缓冲区,则缓冲区地址*/struct inode * inode;/*方块主储存代码或资料所属档案的索引节点*/unsigned long offset;/*方块主封存代码或资料所属档案的变位*/struct zone _ struct zone;/*具有帧的管理区域*/mem _ map _ t;2)管理区域管理,主内存分为ZONE_DMA(专用于DMA)三个区域。ZONE_NORMAL区段,常用;ZONE_HIGHMEM区段,核心

6、无法直接对映区段。ZONE_DMA设置是保证磁盘I/O所需的连续物理页框,ZONE_NORMAL中的页框用作常规主内存分配。,管理区域数据结构zone_struct,包含空闲区域队列集,typedef struct free _ area _ struct/*空闲区域队列头结构*/struct list _ headfree /*位映射表*/free _ area _ t;zone_struct说明:typedef struct zone _ struct s pin lock _ t lock;/*自旋锁,保证对分区的互斥访问*/unsigned zone offset;/*offset表示

7、mem_map中分区的起始页帧编号*/unsigned long free _ pages;/*区域中的空闲页面框数*/unsigned long pages_min、pages_low、pages _ high/*该区域的最小、子和最大页面帧数说明*/free _ area _ t free _ areamax _ order;/*合作伙伴系统中的空闲页面框链接列表数组*/struct pg list _ data * zone _ pg dat;/*包含相应区域的存储节点pg list _ data */struct page * zone _ mem _ map;/*牙齿区主内存映射表*

8、/unsigned long zone _ start _ paddr;/*区域起始物理地址*/unsigned long zone _ start _ mapnr;/* mem_map中的下标*/unsigned long size;/*管理区域物理主内存大小*/char * name;/*管理区域名称*/zone _ t;存储节点管理数据结构,typedef struct pglist_data /*存储节点结构*/zone _ t node _ ZONES max _ NR _ ZONES;/*该节点的管理区域数组*/zone list _ t node _ zonelistsnr _

9、GFP index;Struct page * node _ mem _ _ map/*存储节点的默认存储映射表*/int NR _ zones;/*存储节点上的管理区域数*/unsigned long * valid _ addr _ bitmap;/*位图表示的有效地址*/struct boot mem _ data * bdata;/*存储位图的数据结构*/unsigned long node _ start _ paddr;/*存储节点起始物理地址*/unsigned long node _ start _ mapnr;/* mem_map中的下标*/unsigned long nod

10、e _ size;/*存储节点物理主内存大小*/int node _ id;/*存储节点标识符*/struct pg list _ data * node _ next;/*以下存储节点指针*/pg _ data _ t;2虚拟主记忆体管理,1)虚拟内存区域vm_area_struct内核将进程的每个虚拟内存区域作为单独的主内存对象进行管理。每个虚拟内存区域都具有一致的属性(如访问权限),使用虚拟内存区域虚拟内存区域(vma),2)默认内存描述符mm_struct,进程具有mm_struct结构,进程的task_struct结构中指针mm牙齿进程的mmMmap_avl是用于创建虚拟存储结构的a

11、vl树。Mmap_cache用于指向最近使用的虚拟区域结构。因为程序具有本地性,所以很可能是下一次使用的时间间隔,以提高效率。指针PGD指向进程的分页表目录,在调度进程时,该目录将转换为实际地址并写入控制寄存器CR3。流程虚拟库存管理数据结构、4.7.3主内存帧调度、主内存帧调度有两个茄子任务。一个是帧分配、使用和循环使用。第二,磁盘更换区域管理。不是所有主内存页面都可以交换,只有映射到用户空间的页面才会被替换。为提高分配页面框时的效率,请使用合作伙伴系统将连续页面映射到连续页面框。主内存页面框由的页面数据结构描述和管理。同样,交换设备(磁盘)的每个物理页必须在主内存中具有相应的数据结构,以指

12、示是否分配了页面,以及多个用户是否共享页面。内核定义了用于描述和管理用于页面交换的设备的swap_info_struct数据结构。、4.7.4进程信息空间映射、1 mmap():虚拟内存区域的创建和初始化VMA 2 mummap():从当前进程地址空间中删除虚拟内存区域、4.7.5丢失页面异常处理(1),页面替换基于最小使用量,在后台,内核定期扫描全局页面池,在主内存中的所有页面之间循环时,将每页age变量减少1Age为零的页面是一段时间内未访问的“旧”页面,因此是替换的最佳候选页面。Age值越大,页面最近使用的频率越高,就越不适合更换。读取缺失异常处理(2),缺失中断处理步骤:1导致缺失页面的线性地址。2确定出现异常时CPU是否正在处理中断或内核线程。如果是,则执行错误处理。3调用find_vma查找发生页面错误的虚拟地址所在的vm_area_struct结构,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论