好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

保护虚拟模式与存储管理补充知识.ppt

35页
  • 卖家[上传人]:夏**
  • 文档编号:590063575
  • 上传时间:2024-09-12
  • 文档格式:PPT
  • 文档大小:194KB
  • / 35 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识显洋吱军都侗钞弘琉笋钟艳缀毛鸳姓民颈责饵嫉爽尔去勺奴尸辗滩葬确搏保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •内容提要内容提要::1.321.32位位X86X86的内部结构,原理及基本工作方式的内部结构,原理及基本工作方式2.2.虚拟存储系统原理,虚拟存储系统原理,WindowsWindows与与LINUXLINUX存储管理与多任务机制存储管理与多任务机制觅说溪屹算奇忆芒噬吕赔悦垣洛胀睛吨芍黄涸跳龙瞥俊挑北五请丝监僧食保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 寄存器组寄存器组基本结构寄存器基本结构寄存器系统级寄存器系统级寄存器浮点寄存器浮点寄存器调试测试寄存器调试测试寄存器1.基本结构寄存器基本结构寄存器AH A3116 15X AL870BH B X BLCH C X CLDH D X DLSIDIBPSPEAXEBXECXEDXESIEDIEBPESPCSSSDSESFSGSIPFLAGS指令指针指令指针IP标志寄存器标志寄存器EFLAGS通用寄存器通用寄存器段寄存器段寄存器代码段代码段堆栈段堆栈段数据段数据段崭保柬析袋隶效缕摄绳漓铡误兔无并南灿镐镁消腐喻竿果隧弥萎迹喝撑堤保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 系统级寄存器系统级寄存器4个控制寄存器个控制寄存器4个系统地址寄存器个系统地址寄存器PGCDNW…...AMWP…...NE1 TSEMMPPEIntel保留页故障线性地址寄存器页目录值PCDPWT控控制制寄寄存存器器CROCR1CR2CR33124,231816 158 70CR0: PE:保护虚拟地址方式的允许位。

      保护虚拟地址方式的允许位PE=1,保护方式;,保护方式;PE=0,实方式,实方式. PG:分页允许位分页允许位PG=1,允许分页部件工作(,允许分页部件工作(PE=1);反之禁止反之禁止 CD:片内片内CACHE无效位若无效位若CD=1,片内片内CACHE不命中时,则不需将所不命中时,则不需将所 需信息读入需信息读入CACHE. NW:片内片内CACHE非写直达位非写直达位NW=0,数据写入,数据写入CAHCE的同时也写入主存,否则只写入的同时也写入主存,否则只写入CACHE.WP:页写保护位页写保护位WP=1,禁止任何特权级的程序对只读页面进行写入操作禁止任何特权级的程序对只读页面进行写入操作AM:对界检查控制位对界检查控制位NE:数据异常位数据异常位TS:任务切换位;任务切换位;EM:仿真协处理器位;:仿真协处理器位;MP:监视协处理器位:监视协处理器位CR2:保留所检测到的上一个页面故障的保留所检测到的上一个页面故障的32位线性地址位线性地址CR3:12-31位保留着一级页表(页目录)的物理基址位保留着一级页表(页目录)的物理基址PWT,PCD可对可对CACHE进行控制进行控制。

      陨趴镑扶妇肥请达使奠赘镍亡贡力骨宴固爵戮舞潜揪判陨雾豪幂在仟刷炉保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 4716150线性基地址线性基地址界限界限GDTRIDTRTRLDTR015选择符选择符描述符寄存器(不可见)描述符寄存器(不可见)32位基地址位基地址 20位界限位界限 属性属性系系统统地地址址寄寄存存器器系统地址寄存器又称作保护方式寄存器,仅能在保护方式下使用系统地址寄存器又称作保护方式寄存器,仅能在保护方式下使用GDTR:全局描述符表寄存器,全局描述符表寄存器,48位,高位,高32位是全局描述符表的线性基地址,低位是全局描述符表的线性基地址,低16位是界限位是界限如:(如:(GDTR))=0800,0000,0FFFH,则全局描述符表的第一个地址为则全局描述符表的第一个地址为0800,0000H,末地址为,末地址为0800,0FFFH,表,表大小为大小为1000H.IDTR:中断描述符表寄存器,中断描述符表寄存器,48位,高位,高32位是中断描述符表的线性基地址,低位是中断描述符表的线性基地址,低16位是界限位是界限LDTR:局部描述符表寄存器,用于存放局部描述符表寄存器,用于存放LDT的线性基地址、界限、属性和的线性基地址、界限、属性和16位的选择符。

      位的选择符 只有只有16位的选择位的选择符是可见的,其它的由硬件自动装入内容符是可见的,其它的由硬件自动装入内容TR:任务状态寄存器,存放当前正在执行的任务的线性基地址、界限、属性和任务状态寄存器,存放当前正在执行的任务的线性基地址、界限、属性和16位的选择符只有位的选择符只有16位的选位的选择符是可被访问择符是可被访问庄响脐俯铆棍根习鸽英颗灿托涯含鬼渤蜗进加邯悸备伪薯谩翻寿锤播震忻保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 3.调试与测试寄存器调试与测试寄存器8个调试寄存器个调试寄存器5个测试寄存器个测试寄存器断点0线性地址断点1线性地址断点2线性地址断点3线性地址保留保留调试状态寄存器调试控制寄存器031DR0DR7Cache测试控制Cache测试数据Cache测试状态TLB测试控制TLB测试状态031TR3TR7DR0-DR3用于设置数据存取和代码执行断点;用于设置数据存取和代码执行断点;DR7是调试控制寄存器,用于选择调试功能和设置断点;是调试控制寄存器,用于选择调试功能和设置断点;DR6用于指明断点的当前状态用于指明断点的当前状态测试寄存器用于测试自身的片内测试寄存器用于测试自身的片内CACHE和转换用旁视缓冲区(和转换用旁视缓冲区(TLB)。

      畴瑞胚玛许贝柿魄惧骸记滴嘿畦宦设皇匙算指贮八蓟子辈望吞燕森蛆粹檬保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 微处理器的地址空间微处理器的地址空间1.存储地址空间存储地址空间虚拟空间虚拟空间线性空间线性空间物理空间物理空间虚拟空间又称逻辑空间,是应用程序员编写程序的空间虚拟空间又称逻辑空间,是应用程序员编写程序的空间246((64TB))物理空间又称主存空间,是存储器的实际空间物理空间又称主存空间,是存储器的实际空间232((4GB))存储器线性地址线性地址分段部件分页部件虚拟地址虚拟地址物理地址物理地址80486采用采用段页式段页式虚拟存储器将程序按逻辑结构分段,每段再分为虚拟存储器将程序按逻辑结构分段,每段再分为若干大小相同的页;主存空间也划分为若干同样大小的页建立相若干大小相同的页;主存空间也划分为若干同样大小的页建立相应的段表和页表,分两级查表实现虚实地址转换以页为单位调进应的段表和页表,分两级查表实现虚实地址转换以页为单位调进或调出主存,按段共享与保护程序与数据或调出主存,按段共享与保护程序与数据80486 段号为段号为16位,段内位,段内地址为地址为32位,因此最多可将整个虚拟空间分为位,因此最多可将整个虚拟空间分为64K段,每段段,每段4GB。

      泛远湖踢危崩库俘升太蛇帮乔罩储岛米氦剧讥搂蜂佬机仲棘茁醒骇绅帛盆保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 2.输入输出(输入输出(I/O)空间)空间80486有两个独立的物理空间:有两个独立的物理空间:储存空间储存空间、、I/O空间空间4GB64K物理存储空间物理存储空间 物理物理I/O空间空间I/O00000000HFFFFFFFFH00000000H0000FFFFH可访问可访问不可访问不可访问予翼廉润枢芍眉括谍纫刷猾午霞刺捉纳艳侍捻兹陆头丙收台泞搀骆编究未保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 工作模式简介工作模式简介实地址模式实地址模式保护虚拟模式保护虚拟模式两种工作模式:两种工作模式:2.3.1.实地址模式实地址模式1.存储空间及实地址模式下的编址存储空间及实地址模式下的编址实地址模式下的存储空间为实地址模式下的存储空间为220,及,及1M字节物理地址的形成方式:段寄存器内容左移物理地址的形成方式:段寄存器内容左移4位加上有效地址位加上有效地址如:如:CS内容为内容为1000H,,IP为为8888H,则实地址模式下的物理地址为:,则实地址模式下的物理地址为: 1000H×16+8888H==18888H在实地址模式下,有两个物理存储空间是需要保留的:在实地址模式下,有两个物理存储空间是需要保留的:地址地址0000,,0000H--0000,,03FFH是中断向量区,每个中断向量占用是中断向量区,每个中断向量占用4个字节;个字节;地址地址FFFF,FFF0H--FFFF,FFFFH为系统初始化区,当加电或复位时,物理地址为系统初始化区,当加电或复位时,物理地址自动置为自动置为FFFF,FFF0H。

      2.保留的地址空间保留的地址空间死饱妈肋蚂鸥掐恳填烧析闲钧拂鲤罗烁扰庚聂单慑骂纪狙钟顺玛朴诵菩冠保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 保护虚拟地址模式保护虚拟地址模式80486工作在保护虚拟地址模式时,充分发挥了工作在保护虚拟地址模式时,充分发挥了80486所具有的存储管理功所具有的存储管理功能和硬件支撑的保护机制,为多用户操作系统的设计提供有力的支持同能和硬件支撑的保护机制,为多用户操作系统的设计提供有力的支持同时在保护方式下,时在保护方式下,80486也允许运行已有的也允许运行已有的8086、、80286、、80386的软件1.保护概念保护概念 在程序运行过程中,应防止应用程序破坏系统程序、某一应用程序破坏在程序运行过程中,应防止应用程序破坏系统程序、某一应用程序破坏其它应用程序、错误地把数据当作程序运行等情况的出现为避免出现这其它应用程序、错误地把数据当作程序运行等情况的出现为避免出现这些情形所采取的措施称作些情形所采取的措施称作“保护保护”操作系统内核操作系统内核系统服务及接口系统服务及接口应用程序应用程序012380486 4级特权保护级特权保护特权规则特权规则:特权级:特权级P存储在某段上的数据,只能由不低于存储在某段上的数据,只能由不低于P的特权级访的特权级访问;具有特权级问;具有特权级P的的程序或过程只能由不高于的的程序或过程只能由不高于P级上执行的任务调用。

      级上执行的任务调用 爵凭峻间肩零互庇射契吟淄橡堰弧价息孔骸疵犯给捂男茂荫樟蜕驭囊掇辆保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 2.存储空间存储空间 在保护方式下,在保护方式下,80486可为每个任务提供可为每个任务提供232((4GB)字节的物理空间,并)字节的物理空间,并允许程序在允许程序在246((64TB)的逻辑空间中运行的逻辑空间中运行3.虚拟虚拟86环境环境 80486允许在实方式下和保护方式下执行允许在实方式下和保护方式下执行8086的应用程序有了虚拟的应用程序有了虚拟86方式,方式,486允许同时执行允许同时执行8086操作系统和操作系统和8086应用程序以及应用程序以及486操作系统和操作系统和486应用程应用程序 在虚拟在虚拟86方式下,还可以与实方式相同的形式使用段寄存器,以形成线性基方式下,还可以与实方式相同的形式使用段寄存器,以形成线性基地址通过使用分页功能,就可以将虚拟地址通过使用分页功能,就可以将虚拟86方式下的方式下的1M地址空间映象到地址空间映象到486的的4GB的物理空间的任何位置的物理空间的任何位置领怨侍很瘸腾胎庭嚼董堤怂机蚀弥赣氧名迅绚拥圭涩万纪讽眉洱刺咒惜顶保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 存储系统存储系统存储系统的基本概念存储系统的基本概念为了解决速度、容量、价格之间的矛盾,人们提出存储系统的概念,如为了解决速度、容量、价格之间的矛盾,人们提出存储系统的概念,如图,图, M1速度最快,容量最小,每位价格最高;速度最快,容量最小,每位价格最高; Mi速度大于速度大于Mi+1 ,, Mi容量小于容量小于Mi+1 ,, Mi每位价格高于每位价格高于Mi+1 ;整个存储系统访问速度近似于;整个存储系统访问速度近似于M1 ,每位价格近似于,每位价格近似于Mn ,容量不小于,容量不小于Mn.MnCPUM1M2Mi…虚拟存储器是为了增加存储系统的存储容量虚拟存储器是为了增加存储系统的存储容量;;CACHE是为了提高存储器的速度。

      是为了提高存储器的速度由尧方鸭昧魏层梦娃烫煞渗暖卡夜乔机纶挎桌壮娘酒牌巫蓟德娃削茫早炼保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •虚拟存储器虚拟存储器• 基本概念基本概念由主存储器和辅助存储器共同组成速度接近于主存,每位价格与辅存相近由主存储器和辅助存储器共同组成速度接近于主存,每位价格与辅存相近1.地址空间与地址地址空间与地址虚拟存储器有虚拟存储器有3种地址空间及对应种地址空间及对应3种地址虚拟地址空间虚拟地址空间是应用程序员编写程序的地址空间其地址称为虚地址是应用程序员编写程序的地址空间其地址称为虚地址主存空间主存空间称为实存地址空间,是存储、运行程序的空间,其地址称为主存称为实存地址空间,是存储、运行程序的空间,其地址称为主存物理地址物理地址辅助地址空间辅助地址空间也就是磁盘存储器的地址空间,是用来存放程序的空间,其也就是磁盘存储器的地址空间,是用来存放程序的空间,其地址称辅存地址地址称辅存地址吐撰贵场事萌碗骗绳蓟志壶胳刑狐练匣尝廊扼媒汝涌轧韭亏蜡荷厂允槽歪保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •工作原理工作原理逻辑地址地址变换物理地址外地址变换辅存地址替换算法I/O机构主存储器辅助存储器①②③④⑤③苑墒淘痛阉限讼斌禹歹茄雄斑岳匿序气臆宋活炔滁沮唾埃聘鸟雌立隶绕汰保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •段式存储器段式存储器一个程序由多个模块组成,特别是在结构化程序设计思想提出后,程序的模一个程序由多个模块组成,特别是在结构化程序设计思想提出后,程序的模块性就更强了。

      组成程序的模块大小可以各不相同,但每个模块都是一个特块性就更强了组成程序的模块大小可以各不相同,但每个模块都是一个特定功能的独立程序段当某程序段从辅存调入主存,只要由系统赋予该段一定功能的独立程序段当某程序段从辅存调入主存,只要由系统赋予该段一个基址,就可以把基址和每个单元在段内的相对位移量组合在一起,形成这个基址,就可以把基址和每个单元在段内的相对位移量组合在一起,形成这些单元在主存中各自的实际地址些单元在主存中各自的实际地址1.地址映像与变换地址映像与变换在段式存储器中,每个程序都有一个段描述符表(段表),段表的一行称在段式存储器中,每个程序都有一个段描述符表(段表),段表的一行称作段描述符,段描述符用来描述模块的基本状况,其基本内容包括基址、作段描述符,段描述符用来描述模块的基本状况,其基本内容包括基址、界限和访问控制等基址是装入模块的首地址,界限指该段的长度界限和访问控制等基址是装入模块的首地址,界限指该段的长度模块3模块2模块1模块03K3K1K0.5K6K2K0K1K01K1.5K3K6K8K程序空间程序空间主存空间主存空间段表段表基址基址界限界限访问控制访问控制地址映射地址映射慎磋汕盖暮号溜浩钥嘉墩解烟皋备付鸣绞凝仲挟谈卿重韦醇驳吱瞧毡冈竞保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 80486的虚地址空间为的虚地址空间为246即即64TB,此空间编程的逻辑地址有,此空间编程的逻辑地址有46个二进制位,个二进制位,其中低其中低32位是偏移量,高位是偏移量,高14位是段寄存器中的位是段寄存器中的2--15位的内容。

      位的内容二维的虚拟地址必须转换成一维的物理地址,主存中的程序才能执行二维的虚拟地址必须转换成一维的物理地址,主存中的程序才能执行每个任务都有一个虚拟空间为了避免多个并行任务的多个虚拟地址空间每个任务都有一个虚拟空间为了避免多个并行任务的多个虚拟地址空间直接映射到同一个物理地址空间,采用线性地址空间隔离虚拟地址空间和直接映射到同一个物理地址空间,采用线性地址空间隔离虚拟地址空间和物理地址空间线性空间由一维的线性地址构成,线性地址空间和物理地物理地址空间线性空间由一维的线性地址构成,线性地址空间和物理地址空间对等线性地址空间址空间对等线性地址空间32位长,位长,4GB虚拟地址到物理地址的映射函数在每个任务任务中进行定义,随着任务的虚拟地址到物理地址的映射函数在每个任务任务中进行定义,随着任务的切换,映射函数也切换两个不同的任务,尽管虚拟地址相同,但实际物切换,映射函数也切换两个不同的任务,尽管虚拟地址相同,但实际物理地址可以不同理地址可以不同段寄存器15-2位偏移量….描述符….逻辑地址逻辑地址32位线性地址段表段表物理地址物理地址4532310菠韵捻御句盛雪传泌英钓逗追耀察炕纤队型躇当章汽刮活素衫蛋榆母株诱保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •段描述符与段描述符表段描述符与段描述符表(1)段描述符格式段描述符格式一个段描述符格式由一个段描述符格式由8个字节组成,是位于主存中的一种数据结构,由系统个字节组成,是位于主存中的一种数据结构,由系统程序创建。

      程序创建段界限 7-0段界限 15-8基址 7-0基址15-8基址23-16基址31-24PDPLSTYPEGD/BAVL段界限19-160D0D707G:为粒度位,用来确定段界限所使用的长度单位为粒度位,用来确定段界限所使用的长度单位G=0,以字节为单位;,以字节为单位;G=1,以,以4KB((212)为单位P:是存在位,是存在位,P=1表示该段在主存中表示该段在主存中AVL:是用户的操作系统可用位是用户的操作系统可用位D/B:在代码段,为在代码段,为D位,位,D=1,采用采用32位操作数和寻址方式,反之位操作数和寻址方式,反之16位位在数据段,在数据段,B=1时,时,PUSH,POP,CALL都使用都使用ESP,反之用,反之用SP寂概宰虎批寅朱挞澳讯错伤肌时诛琢慌卑婉沏呸册虏辅韵棺洲列烷出垣测保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 S:80486的段可被设置为系统段的段可被设置为系统段(S=0)和非系统段系统段描述有关操作系统和非系统段系统段描述有关操作系统的表格、任务和选通门等信息,非系统段又细分为代码段和数据段的表格、任务和选通门等信息,非系统段又细分为代码段和数据段。

      DPL:特权级别特权级别S=1时,第时,第5字节又称访问权字节,该字节中的字节又称访问权字节,该字节中的TYPE字段中的各位定义如下:字段中的各位定义如下:PDPLS=1E=0E=1EDCWRAE:可执行位可执行位E=0,数据段;,数据段;E=1,代码段ED:扩展方向位扩展方向位ED=0,向上扩展,即偏移量必须小于等于界限;向上扩展,即偏移量必须小于等于界限;ED=1,向向下扩展W:可写位W=0,不允许写不允许写R:可读位R=0,不允许读,不允许读A:访问位A=0,该段尚未被访问,该段尚未被访问C:相容位C=1,遵循描述符特权级;,遵循描述符特权级;C=0,忽略描述符特权级,忽略描述符特权级E位将段分为代码段及数据段,代码段决不允许写位将段分为代码段及数据段,代码段决不允许写中首握话鞋烫矽撰凶禾乔儡忠傈限先锹望袍悸抚晤蛀戊消戳奄吃常确稻刊保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 (2)段描述符表段描述符表段描述符表也是位于主存中的一种数据结构,由系统程序创建分为全局段描述符表也是位于主存中的一种数据结构,由系统程序创建分为全局描述符表描述符表(GDT)和局局描述符表和局局描述符表(LDT).LDT存放给定任务有关的描述符,所以每个任务都有一个独立的存放给定任务有关的描述符,所以每个任务都有一个独立的LDT,其,其中含有自己的代码段、数据段和堆栈段等,任务切换时中含有自己的代码段、数据段和堆栈段等,任务切换时LDT也切换;通过也切换;通过LDT可使各任务的私有段与其它任务项隔离,达到保护的目的。

      可使各任务的私有段与其它任务项隔离,达到保护的目的GDT存放系统所有任务的描述符,如操作系统使用的代码段和数据段、任存放系统所有任务的描述符,如操作系统使用的代码段和数据段、任务状态段以及各个务状态段以及各个LDT的描述符整个系统中的描述符整个系统中GDT只有一张任务切换时,只有一张任务切换时,不切换不切换GDT.通过通过GDT可使各任务需要使用的端能被共享可使各任务需要使用的端能被共享交优福潜忽挂韶她乌讽剖讫罕有皑滚僳绵趁晴绝铲咀韵拒卵粗酋挑单胆恫保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 (3)选择符选择符LDTR中的中的16位选择符不直接给定位选择符不直接给定LDT的位置,而是指向的位置,而是指向GDT中的某个描述中的某个描述符保护模式下,段寄存器中的内容也称为选择符保护模式下,段寄存器中的内容也称为选择符选择符不直接确定存储器地选择符不直接确定存储器地址,而是指向一个段描述符址,而是指向一个段描述符选择符由请求特权字段选择符由请求特权字段(RPL)、表指示、表指示(T)和索和索引组成索引乘索引乘8就是相对就是相对GDT或或LDT首地址的偏移量首地址的偏移量索引TRPL选择符(段寄存器)选择符选择符界限界限基址基址界限界限基址基址LDTLDTLDTLDTRGDTGDTRT=1T=0丝癣础悠笔鳞聚柔耗睹茹犀白执褂燃昔氦汪苛挺绵待农菏祥侦泣陪紫测断保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 CPU内部还设置了一个段描述符高速缓冲寄存器堆,对程序员是透明的。

      当内部还设置了一个段描述符高速缓冲寄存器堆,对程序员是透明的当选择符值装入寄存器时,处理器会将响应的描述符中的内容自动装入其中,选择符值装入寄存器时,处理器会将响应的描述符中的内容自动装入其中,以供地址变换时使用,避免在地址变换时需要不断地访问主存中的段描述符以供地址变换时使用,避免在地址变换时需要不断地访问主存中的段描述符选择符 CSSS DS ES FS GS 段寄存器段描述符高速缓冲寄存器堆(不可见)段描述符高速缓冲寄存器堆(不可见)基址 段界限 段属性积绒典批宝氮衅仆浚脱扳磅找竿兽懊县豺殿卵重珐逐缮凌晌碉操咒腾忙慌保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 FS ES DS SS CS GS模块3模块2模块1模块0选择符选择符界限界限基址基址LDTALDTB界限界限基址基址模块C模块B模块A选择符选择符界限界限基址基址模块1模块B模块2模块3模块A模块0,CGDTRLDTRLDTRGDTLDTALDTB程序A程序B模块位置茶降解秸贫派镊诈与宾币根潘忧答蚌茧贝娜虫困憎慧偿宪外懊疽拍缩哮洛保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 •页式存储器页式存储器页式存储器把主存空间和辅存空间都划分为多个相同尺寸的定长块,每块称页式存储器把主存空间和辅存空间都划分为多个相同尺寸的定长块,每块称作一页,并按顺序编号。

      作一页,并按顺序编号80486的页面尺寸定为的页面尺寸定为4K((212))虚拟空间中的页称虚页;主存空间中的页称实页虚拟空间中的页称虚页;主存空间中的页称实页1.虚拟空间与实存空间虚拟空间与实存空间地址变换就是如何将虚页号转化为实页号地址变换就是如何将虚页号转化为实页号虚页号页内偏移实页号页内偏移虚地址实地址0113212主存空间虚存空间4G1.地址映象与地址变换地址映象与地址变换段式存储器将虚地址转化为段式存储器将虚地址转化为32位线性地址,页式存储器通过页转换逻辑将线位线性地址,页式存储器通过页转换逻辑将线性地址转化为物理地址在性地址转化为物理地址在80486的页式存储器中,虚拟地址就是线性地址,的页式存储器中,虚拟地址就是线性地址,由由20位虚页号和位虚页号和12位页内偏移地址组成,物理地址由位页内偏移地址组成,物理地址由20位实页号和位实页号和12位页内位页内偏移地址组成,但实页号仅在实际存在的主存储器的地址范围内选取偏移地址组成,但实页号仅在实际存在的主存储器的地址范围内选取询彝咀彰阻烧斧哎瘪侦物钧技膜域护誉邀处歪们犀盯腿塌贸蚊威硝定出铆保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 地址映象与地址变换地址映象与地址变换在页式存储器中,每个任务都有页表作为虚拟空间映象到物理空间的中介在页式存储器中,每个任务都有页表作为虚拟空间映象到物理空间的中介3页2页1页0页3210程序空间页表主存空间虚页号 主页号 控制信息位组成页表的行称作页表项,页表项主要由页面基址和控制信息位组成页表的行称作页表项,页表项主要由页面基址和控制信息位组成,主页号指明页面的基址,由于页面号是顺序编制,虚页号组成,主页号指明页面的基址,由于页面号是顺序编制,虚页号可省略。

      页式存储器通过页表项对页面进行管理页表本身也是可省略页式存储器通过页表项对页面进行管理页表本身也是一页存储在主存中存储在主存中80486的页表项由的页表项由4字节组成,页表尺寸为字节组成,页表尺寸为212,一个页表只有,一个页表只有1024个页表项,只能管理个页表项,只能管理1024个页面80486页式存储器的页式存储器的4GB的虚拟的虚拟空间被分为空间被分为220个页面,需要个页面,需要220个页表项对其进行管理一张页表个页表项对其进行管理一张页表无法容纳这么多的页表项无法容纳这么多的页表项篙翠愉铺碳柠冉述攫韧淳御列十筒胀炔梯哪锭补揍仪苑涕霹箭弱伪荒踩鸵保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 X86采用二级页表方法进行管理,第一级页表称为页表目录,采用二级页表方法进行管理,第一级页表称为页表目录,页表目录的页表项指明第二级页表中各项的基址这样,虚页页表目录的页表项指明第二级页表中各项的基址这样,虚页号分为页表目录和页表号分为页表目录和页表页目录索引页表索引页内偏移实页号 页内偏移实地址页表0页表1页表目录表CR3虚地址线性地址虚页号页表目录和页表都存放在主存中,页表目录表的基址由控制寄页表目录和页表都存放在主存中,页表目录表的基址由控制寄存器存器CR3的高的高20位位*212指定。

      指定剑绞洽例嗽礼蒋并巧利伞盾祈永酬稗潘匡餐摄驹洪畦期澈羡拌恿毅议掸吁保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 3.页表项及其控制作用页表项及其控制作用页表项格式如图页表项格式如图页面基址AV AI L00APCDPWTU/SR/S P页表项由页表项由32位组成,高位组成,高20位是页面基址,页表中该字段就是实页号,在页目位是页面基址,页表中该字段就是实页号,在页目录表中,页面基址录表中,页面基址× 212=相应页表的首址;低=相应页表的首址;低12位用来说明页(页表)的控位用来说明页(页表)的控制状态信息制状态信息P:存在位,存在位,P=1,表示该页在主存中在地址变换过程中,若发现,表示该页在主存中在地址变换过程中,若发现P=0,则表,则表示需立即访问的页不在主存,这种情形称作页面失效示需立即访问的页不在主存,这种情形称作页面失效(页面故障页面故障),此时系统,此时系统会作如下处理:会作如下处理:1)若主存还有空间,操作系统将要访问的页调入主存,且将)若主存还有空间,操作系统将要访问的页调入主存,且将P置置12)如果主存没有空间,就根据一定的替换算法将主存中的某页调入辅存,再)如果主存没有空间,就根据一定的替换算法将主存中的某页调入辅存,再将要访问的页调入主存。

      将要访问的页调入主存D:修改位,该位只在页表中起作用,修改位,该位只在页表中起作用,D=1,表示内容被修改表示内容被修改A:访问位,若该页被访问过,访问位,若该页被访问过,A=1D和和A为替换算法和多机系统的实现提供为替换算法和多机系统的实现提供了方便U/S,R/W分别是分别是“用户用户/系统系统”位和位和“读读/写写”位这两位与标志寄存器中的位这两位与标志寄存器中的WP位配合使用,实行页面级保护位配合使用,实行页面级保护PCD和和PWT是对是对CACHE的控制方式位的控制方式位AV,AI,L允许系统程序任意使用允许系统程序任意使用喷襟畏脂香泉团岔购诡芭设皮致闰萍擅诡菱羊歼鸭蛾任搔膨穴迎凑绘嘿啮保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 2.转换用旁视缓冲区转换用旁视缓冲区(TLB)80486设置了一个设置了一个TLB,可容纳,可容纳32个页表项的高速缓存,自动将最近个页表项的高速缓存,自动将最近被访问的页面所对应的页表项保存起来又称快表,存于主存中的被访问的页面所对应的页表项保存起来又称快表,存于主存中的页表称慢表页表称慢表到履捣空撩睦怕入镣淘解轮陋舔开卿跌雕蕉角庶撂普晴中茧欲扑洋预叛独保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 X86的段页式存储器的段页式存储器段式存储器的特点是模块性好,但主存利用率不高,且对辅存的管理比较困段式存储器的特点是模块性好,但主存利用率不高,且对辅存的管理比较困难;难;页式存储器的特点是主存利用率高,且对辅存的管理容易,但模块性差。

      页式存储器的特点是主存利用率高,且对辅存的管理容易,但模块性差段页式存储器把主存空间分成固定尺寸的页面,程序按模块分段,每个段按段页式存储器把主存空间分成固定尺寸的页面,程序按模块分段,每个段按主存的页面尺寸分成若干页面主存的页面尺寸分成若干页面段页式存储器对多用户系统非常有用,逻辑结构特别清楚每个用户都有一段页式存储器对多用户系统非常有用,逻辑结构特别清楚每个用户都有一个逻辑名(用户号),程序可按程序段编写,每个程序段又可分为页而存入个逻辑名(用户号),程序可按程序段编写,每个程序段又可分为页而存入内存呢史亥渣捣剂捕辖浓靳惊挥吼兜赞茸辙茸狙掇毖惭财罩瘩毗怯吻棘灼逾餐保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 用户号段号页目录索引页表索引页内偏移实页号 页内偏移实地址页表目录页表段描述符表想粉告鲁到幽骸遵柠贼响斜锯八冀影歇岁钧诺爆守吵凤印闹群劈症貉廷翌保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 WINDOWS95 及及WINNT进程地址空间的划分进程地址空间的划分0FFFFFFFFH0C0000000H0BFFFFFFFH080000000H07FFFFFFFH00400000H003FFFFFH00001000H000000FFH00000000HVXD;内存管理器,文件系统使用的1GB,WIN32所有进程共享,可读写内存映射文件使用的1GB,有WIN32 DLL,16位应用程序和内存分配使用,可读写WIN32 进程私有空间DOS和16位WINDOWS使用DOS和16位WINDOWS使用射狼鹊郑葬则辫民载处蹿捌拥憾沛卫磷永仔拄有掺婶驹虱募洽劲獭钠皱牟保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 0FFFFFFFFH08000000H07FFFFFFFH07FFF0000H07FFEFFFFH000010000H0000FFFFH00000000H操作系统使用2GB,不可存取非法指针指向的64KB,不可存取WIN32进程私有NULL指针使用的64KB宰捞迎夷啥囤奴巍忆瞧雇腿蛤牲罢瞻棒芝迈恃涵柿溢觅剐欧丢炙瑶耿聂晶保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 3.4 Linux在在X86上的虚拟内存管理上的虚拟内存管理  Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等。

      对于不能够通用的一些功能,Linux必须依据硬件平台的特点来具体实现LINUX的分段策略  Linux在X86上采用最低限度的分段机制,其目的是为了避开复杂的分段机制,提高Linux在其他不支持分段机制的硬件平台的可移植性,同时又充分利用X86的分段机制来隔离用户代码和内核代码因此,在Linux上,逻辑地址和线性地址具有相同的值由于X86的GDT最大表长为64KB,每个段描述符为8Byte,所以GDT最多能够容纳8192个段描述符每产生一个进程,Linux为该进程在GDT中创建两个描述符:LDT段描述符和TSS描述符,除去Linux在GDT中保留的前12项,GDT实际最多能容纳4090个进程 Linux的内核自身有独立的代码段和数据段,其对应的段描述符分别存储在GDT中的第2项和第3项每个进程也有独立的代码段和数据段,对应的段描述符存储在它自己的LDT中在Linux中,每个用户进程都可以访问4GB的线性地址空间其中0x0~0xBFFFFFFF的3GB空间为用户态空间,用户态进程可以直接访问从0xC0000000~0x3FFFFFFF的1GB空间为内核态空间,存放内核访问的代码和数据,用户态进程不能直接访问。

      当用户进程通过中断或系统调用访问内核态空间时,会触发X86的特权级转换(从特权级3切换到特权级0),即从用户态切换到内核态  龄漂嫉旁泪堰捣嘲谋瓶辖埔沏辛挞茫猴睹嗓倪蔓恩馏彦冤霸猎爆钉融莱哑保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 LINUX的分页策略的分页策略  标准  标准Linux的分页是的分页是三级页表结构三级页表结构,除了,除了X86支持的页目录和页,还有一级被称支持的页目录和页,还有一级被称为中间页目录因此,线性地址在转换为物理地址的过程中,线性地址就被解释为为中间页目录因此,线性地址在转换为物理地址的过程中,线性地址就被解释为四个部分(不是四个部分(不是X86所认识的三个部分),增加了页中间目录中的索引当运行在所认识的三个部分),增加了页中间目录中的索引当运行在X86平台上时,平台上时,Linux通过将中间页目录最大的页目录项个数定义为通过将中间页目录最大的页目录项个数定义为1,并提供一组,并提供一组相关的宏(这些宏将中间页目录用页目录来替换)将三级页面结构分解过程完美的相关的宏(这些宏将中间页目录用页目录来替换)将三级页面结构分解过程完美的转换为转换为X86使用的二级页面分解。

      使用的二级页面分解盼憎跌蚕脖项胞团旱播署弧瓢揍陌糠撰总被辫油苇丸彤鞭否揽点拂军掷遵保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 LinuxGDT表项分布情况讽谰冲盘术翌盾赤莹鳞佐倾悉肛瘤汗寸疼卵食耪釉说忠狰屠蔚拦逛膜您辫保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 Linux的LDT表项分布    在Linux中,每个用户进程都可以访问4GB的线性地址空间其中0x0~0xBFFFFFFF的3GB空间为用户态空间,用户态进程可以直接访问从0xC0000000~0x3FFFFFFF的1GB空间为内核态空间,存放内核访问的代码和数据,用户态进程不能直接访问当用户进程通过中断或系统调用访问内核态空间时,会触发X86的特权级转换(从特权级3切换到特权级0),即从用户态切换到内核态少似酝该蓝彩菠白册尚拂悯教跨棕素沫莹闹韧搪杂尔覆所诛家清措菜蔡侩保护虚拟模式与存储管理补充知识保护虚拟模式与存储管理补充知识 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.