




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章x86的虚拟存储系统Linux操作系统当前主要在Intel80386、80486和Petium系列机器上运行,它们统称为x86机器。x86具有两种存储器管理模式:实地址模式和受保护的虚地址模式,后者简称保护模式。在实地址模式下,CPU只能寻址1MB的内存空间。在保护模式下,x86提供了实现虚拟存储的硬件机制,它是操作系统实现多进程(多进程)存储管理以及提供存储保护的硬件基础。就180386的虚拟地址空间x86的系统结构中专门设置了用于实现虚拟存储技术的硬件机制,即分页和分段机制。各个进程的存储区域彼此隔离,每个进程都可以独立使用自己的虚拟地址空间,从而保证了进程的信息安全。一.x86的地
2、址转换机制程序代码和数据都是存放在内存储器中,内存储器又称物理存储器,物理存储器是CPU可以直接访问的存储空间。80386机器的地址总线为32位,由它确定的物理地址空间的范围可达232字节,即4G字节。指令中访问存储空间的地址称为逻辑地址,由逻辑地址确定的存储空间称为逻辑地址空间。x86的逻辑地址为48位,由它确定的逻辑地址空间可达64T字节。逻辑地址必须转换成物理地址后才能访问物理存储器。在x86中逻辑地址由分段机制把逻辑地址转换成线性地址。再由分页机制把线性地址转换成物理地址。二.80386的虚拟地址空间x86把虚拟地址空间分成性质不同的两部分:全局地址空间和局部地址空间。全局地址空间是系
3、统中所有的进程共享的地址空间,通常存放操作系统资源和数据。局部地址空间由各个进程使用,用于存储进程各自的代码和数据等。x86分段机制对虚拟地址空间实行分段管理,把虚拟地址空间分成大小不同的存储段。一个段的空间最大可达232字节,即4GB。64TB的虚拟地址空间最多可以分为16K个段。其中全局地址空间和局部地址空间最多可以各有8K个段,称为全局段和局部段。3.2段描述符表一.段描述符表在分段存储管理中,使用段描述符表记录各个进程使用的段空间位置、大小和有关属性。段描述符表的表项称为段描述符。每个段描述符的长度为8字节。对应全局段和局部段,系统提供全局描述符表GDT和局部描述符表LDT。GDT以由
4、所有的进程共享,系统中只有一个GDT。LDT用于描述进程的各个局部段。每个进程都有属于它的LDT,即系统中有多少个进程就有多少个LDT。系统的GDT和各个进程的LDT都存放在线性地址空间的特定区域内。二.全局描述符表GDTGDT在线性地址空间中的位置是由全局描述符表寄存器GDTR的值确定的。GDTR寄存器的长度为48位:4716150GDTR表基址表限三.局部描述符表LDT在多进程操作系统中,对于一个进程的代码段和数据段的描述和定义是由局部描述符表LDT完成的。每个进程都有自己的LDT,它存放在该进程独立的虚拟地址空间中。一个进程的LDT中至少包括3个描述符。NULL用户代码段描述符用户数据段
5、描述符当进程LDT的定位是局部描述符表寄存器LDTR和相应的LDTR高速缓存实现的:LDTR寄存器LDTR高速缓存(程序不可见)FULLFULL内核代码盘描述至内核数据益描述符GDT中一般包括三种不同种类的描述符。系统内核代码段和数据段的描述符进程状态段(TSS)的描述符LDT描述符,每个进程的LDT描述符在GDT中的位置,记录在该进程TSS段的一个16位的位域中,该位域的值称为LDT选择符。任务H H的TSSTSS描述符住备0 0的LDTLDT描画任务I I的昨端述符任务1 1的ETET描述符任务通TSSTSS描述符任密通皿描述符全局描述符表的内容150选择符(16位)LDT表基址(32位)
6、表限(16位)161547LDTR是指出当前进程的LDT描述符在全局描述符表GDT中的位置。在进程切换时,系统从当前进程的TSS中取出LDT选择符的值,装入LDTR寄存器内。LDT的表限为16位,由它确定的最大地址空间为216,即64K字节。每个描述符的长度为8字节,一个LDT最多可以拥有8K个描述符。每个描述符对应一个局部段,所以系统中一个进程最多可以有8K个局部段。16位选段符寄存器64位段描述符高速缓存寄存器段描述符CSDSSS0109000003.3逻辑地址向线性地址的转换一.线性地址空间每个进程必须有自己独立的存储空间,这个由进程使用的存储空间就是线性地址空间,线性地址空间仍是虚拟存
7、储空间。通过分段机制把每个进程在逻辑地址空间的代码段和数据段映射到进程的线性地址空间。除此之外,操作系统本身也必须映射到进程的线性地址空间中。进程的线性地址空间被分成系统区和用户区。系统区用于存放操作系统的代码、数据和各种全局数据结构。用户区用于存放进程的代码、数据、堆栈以及进程的各种数据结构二.逻辑地址向线性地址的转换在程序指令中使用的逻辑地址格式如下所示。4732310选段符|段内偏址16bit32bit把逻辑地址中的选段符装入段寄存器中,把段内偏址通用寄存器中,经过分段机制的转换后成为32位线性地址在保护模式下,x86的段寄存器CS、DS、SS、ES、FS和GS称为选段符寄存器。LETR
8、LETR名速逐存LDTR200020000AD0FFFF0AD0FFFF_0 0AMAM20002000LDTKLDTK描述吊1 11 1GDIGDI0D9000000D90000000FF00FF009000FF009000FFLDIkLDIk线性地址空间OAOOOOQQOAOOOOQQ ES访问权限段基址段限FSGS程序人员可见程序人员不可见,其值由MPU透明装入3.4选段符与段描述符一.选段符选段符的作用是确定所选段的段描述符在段描述符表中的位置。153210INDEXTIRPL13bit1bit2bitRPL:请求特权级,即访问者的特权级,分为0、1、2、3四级,0级最高,3级最低。L
9、inux中仅使用两个级另I,0级为内核级,3级为用户级。TI:描述符表的种类。0为访问全局描述符表GDT,1为访问局部描述符表LDT。INDEX:索引值。指出段描述符在描述符表中的偏移量。例如,选段符的值为000816TI=0,访问全局描述符表GDTINDEX=1,选择白是GDT1RPL=0。访问者的特权为内核级。选段符白值为001716TI=1,访问局部描述符表LDTINDEX=2,选择白勺是LDT2RPL=3。这时访问者的特权为用户级二.段描述符段描述符分为两种:系统段描述符和常规段描述符。常规段描述符:635655524847403932段基址3124GDRU段限1916访问权限A段基址
10、231616150段基址150段DPLSEC/EDR/WAP(存在位)P=1该段在物理存储器中。DPL(特权级)该段的访问特权:0、1、2、3级。S(描述符种类)S=0系统段描述符,S=1常规段描述符。E(执行位)E=0数据段,E=1代码段。代码段(S=1,E=1)和数据段(S=1,E=0)C/ED(一致性/扩展位)代码段中C=1段可以共享。数据段ED=1段向上扩展。R/W(可读/可写)代码段中R=1代码段可读。数据段中W=1数据段可写入。A(访问位)A=1段已被访问过,A=0段还未被访问。例如,段描述符的访问权限字节为FE16,FE16=111111102。S=1描
11、述常规段的描述符。P=1段已经在物理存储器中DPL=11特权级为3,在Linux中是用户级。E=1代码段。C=1在满足一定条件下段可以执行(共享)。R=1可读。A=0段还未被访问。5552位是辅助特性位:G粒度,G=1段长度以页面为单位.G=0段长度以字节为单位。D操作长度,D=1为32位代码段,D=0为16位代码段。R系统保留,以备将来扩充使用.U由操作系统程序人员自行定义和使用二.系统段描述符系统段描述符粒度位G是0,表明系统段以字节为单位。76543210PDPL0类型第4位的S位为0,表明它是一个系统段描述符。例如,某描述符的值为0 xc0c39a000000ffff段限段基址3124
12、辅助字节1916访问权限段基址231611000000110000111001101000000000段基址150段限15000000000000000001111111111111111G=1,段长度以页面(4KB)为单位。D=1,32位代码段。段基址为0 xc0000000,该段从线性地址空间3GB处开始。段长度0 x40000,即256K页面,每个页面4KB,所以段长度为1G字节访问权限字节:PDPLSEC/EDR/WA10011010P=1,该段在物理存储器。DPL=0,该段的访问特权为内核级。S=1,E=1,该段为常规代码段。C=0,该段不可以执行共享。R=1,该段可读。A=0,该段
13、尚未访问过。在linux中它是内核代码段的描述符3.580386的分页机制一 .x86的分页管理机制31内存储器被划分成大小相同的存储块,称为物理页面每个物理页面大小为4K(4,096)字节。内存最大4GB的空间可以分为1M(1,048,496)个页面图32位线性地址由自行划分成三个域32bit线性地址31222112110页表目录贞表页内偏址(10bit)(10bit)(12bit)设置了一个页表目录表,每个表项是4字节其中包含有指向每一个页表起始地址的指针页表目录10位,指向1024个页表页表目录表在物理地址空间的始址由CR3给出。页表10位,指向1024个页面每个表项的长度是4字节,一个
14、页表长4KB二 .快表在80386中,快表在处理器芯片的高速缓冲存储器中,称为转换旁视缓冲存储器TLB(TranslationLook-asideBuffers)。在TLB中存放着32个最近使用的页表项(页面地址)。使用TLB的命中率平均可达98%。三 .请求式分页存储管理页表目录和页表的表项的长度是32字节,它们具有相同的结构页表目录表的表项311211109876543210页表指针AVL00DA00U/sR/WP页表的表项1211109876543210页面指针AVL00DA00U/sW/RP20位的页表指针是某一个页表起始地址的高20位,该地址的低是按页面对齐的,即页表总是位于4K页面的地址边界上。同样,的高20位,该地址的低12位总为0,保证了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速公路智能交通系统2025年智能交通系统与智慧交通应用报告
- 基于5G商用深化2025年边缘计算行业应用案例分析报告
- 烧烤场地外租赁合同协议
- 消防验收咨询费合同范本
- 闲置水泥仓收购合同范本
- 猫咪寄养健康协议书模板
- 铸造承包合同协议书范本
- 长期合作的物流合同范本
- 项目部采购护栏合同范本
- 生物质燃料采购合同协议
- 财务共享公司建设方案
- 小学数学-二年级升三年级暑假数学作业-口算 +竖式计算
- 2025至2030内燃机市场发展趋势分析与未来投资战略咨询研究报告
- 汽车散热器安装施工方案与技术措施
- 山西省烟草专卖局(公司)笔试试题2024
- 江苏扬州经济技术开发区区属国有企业招聘笔试真题2024
- 华为emt轮岗管理制度
- Alport综合征基因诊断
- 搜身带离技术课件
- 光伏电站设备移交生产验收标准
- DB31/ 890-2015公共游泳场所卫生管理规范
评论
0/150
提交评论