nullnull
保护模式存储管理主讲人:黄永平null目录一、虚拟存储器及工作原理
二、分段存储管理
三、段选择符
四、段描述符
五、保护模式相关
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
六、保护模式下访问操作与保护机制
七、向保护模式的转换
八、页式存储管理
九、段页式存储管理
十、虚拟8086模式null虚存空间主存空间CacheR
…CPU分层的存储器结构硬件
实现分段部件
分页部件
OS软件一、 虚拟存储器及工作原理null逻辑地址线性地址分段部件分页部件物理地址段式寻址页式寻址虚存空间
(编程空间)主存空间(虚地址)虚拟存储器管理null虚拟存储器工作过程null二、分段存储管理null虚拟地址和虚拟地址空间段选择符(16位)偏移量(32位)虚存地址Index(13)TI(1)RPL(2)虚存空间:64T=213+1+32 =246null 虚实地址变换(64T4G)段选择符描述符表描述符(1)段基地址(32)
(2)段界限
(3)段属性M(2)段界限(1)段基地址段选择符(16位)偏移量(32位)虚存地址主存空间
(物理空间)物理地址=段基地址(32)+偏移量(32)段选择符段描述符null程序不可见寄存器(保存段描述符) 高速缓存描述符CS
DS
SS
ES
FS
GS段寄存器 TR
LDTRGDTR
IDTR程序不可见区域系统地址R(保护方式R)控制寄存器:CR0~CR3
调试寄存器:DR0~DR7
模型专用寄存器MSR
浮点部件寄存器null三、段选择符段选择符:
CS
DS
ES
SS
GF
FS
TR
LDTR段选择符段描述符null四、段描述符null描述符 和 描述符表null程序段描述符(代码、数据、堆栈)程序段描述符:null系统段描述符(LDT,TSS)LDT、TSS描述符:null系统段描述符(门描述符)门描述符:null门描述符任务门描述符---任务门描述符中的选择符指向GDT中一个TSS描述符,门中的偏移无意义。任务的入口点保存在TSS中。利用段间转移指令JMP和段间调用指令CALL,通过任务门可实现任务切换。
调用门描述符---调用门描述某个子程序的入口。JMP,CALL指令。
中断门描述符----描述ISR的入口。
陷阱门描述符---中断门和陷阱门描述中断/异常处理程序的人口点。中断门和陷阱门内的选择子必须指向代码段描述符,门内的偏移就是对应代码段的人口点的偏移。中断门和陷阱门只有在中断描述符表IDT中才有效。 null五、保护模式相关表GDT---全局描述符表
LDT ---局部描述符表
IDT---中断描述符表
TSS---任务状态段null全局描述符表GDT简图null局部描述符表LDT简图null中断描述符表IDT简图null中断过程保护模式中断过程简图null任务状态段TSS简图null从TR到TSSTRTSS描述符TSS关系简图null六、保护模式下访问操作与保护机制3类保护机制:
任务间存储空间的保护;
段属性和界限的保护;
特权级保护。
3种形式特权管理:
当前任务特权级CPL(CS中最低两位);
请求特权级RPL(请求操作的特权级);
描述符特权级DPL(目标段的特权级)。
保护机制:
特权级为P段中的数据,可以由特权级高于或等于P的段中运行的程序使用(简:高级可访问低级数据);
特权级为P代码段,可以由特权级低于或等于P下的任务调用(用特殊的方式:CALL,INT) (简:低级程序可调用高级程序) ;null六、保护模式下访问操作与保护机制保护机制:
特权级为P段中的数据,可以由特权级高于或等于P的段中运行的程序使用(简:高级可访问低级数据);
特权级为P代码段,可以由特权级低于或等于P下的任务调用(用特殊的方式:JMP,CALL,INT) (简:低级程序可调用高级一致代码段) ;
数据访问规则: 高低 O (高级者必须能够监视低级者的运行) 低高 X (低级者绝不允许窥探高级者的秘密)
代码转移规则: 高低 X (高级者不应“发起”低级者的运行) 低高 O (低级者可以使用高级者提供的服务,但能够提供服务的高级者必须位于一致代码段)null1.数据段访问---过程简图null1.数据段访问---合法检查1.段是否存在(属性中P位);
2.段界限是否正确;
3.段选择符引用的段是否正确(数据段或可读代码段);
4.特权级检查(高级代码可访问低级数据段):
级别:
级(CPL ≥DPL) & (RPL≥DPL)
值(CPL ≤DPL) & (RPL≤DPL)
即值max(CPL,RPL) ≤ DPL
时可以访问;
以CPL和RPL较小的级进行访问。
*堆栈段规则:
CPL=RPL=DPL高级代码段可访问低级数据段null2.任务内段间转移1.转移指令 JMP/CALL/INT/RET/IRET, Near类型段内转移,Far类型段间转移; 指令格式如下:
JMP 选择符:偏移
CALL 选择符:偏移
INT n
2.同一任务内的段内转移,只检查段限就行,不检查特权级;
3.同一任务内的段间转移,要检查段限,还要检查特权级。
4.任务内段间转移包括:
段间直接转移(选择符代码段描述符目标代码段);
段间间接转移(选择符门描述符代码段描述符目标代码段)。null段间直接转移段选择符代码段描述符目标代码段null段间直接转移段选择符代码段描述符目标代码段简图null特权级检查:
(1)目标是一致代码段(C=1,共享):
级CPL ≤ DPL时,可转移,否则异常;转移后CPL不变。 RPL不检查。用户可使用内核服务代码。
(2)目标是非一致代码(C=0,不共享):
级(CPL=DPL)&(RPL ≥ CPL)时,可转移,否则异常。转移后CPL不变。用户不可使用内核代码,只是内核内部代码间的转移。什么是一致代码段和非一致代码段? 段间直接转移null段间间接转移选择符门描述符代码段描述符目标代码段null段间间接转移选择符门描述符代码段描述符目标代码段特权级检查:
(1)访问调用门按访问数据段规则检查特权:
级(CPL ≥ DPL1) & (RPL1 ≥ DPL1)时,可继续,否则异常;
(2)RPL2清0,最高级;
(3)访问代码段按代码段规则检查特权:
目标是一致代码(C=1,共享):
级CPL ≤ DPL时,可转移,否则异常;转移后CPL不变。 RPL2不检查。适用于JMP和CALL。用户可使用内核服务代码。
目标是非一致代码(C=0,不共享):
JMP指令:
CPL=DPL时,可转移,否则异常。转移后CPL不变。
CALL指令:
级CPL ≤ DPL时,可转移,否则异常;转移后CPL=DPL。
*CALL指令,只有 级CPL< DPL,非一致代码时,CPL特权级变高了!!!。 null堆栈
同一任务内,特权级变化的转移,会引起堆栈的变化;
特权级0、1,2的堆栈指针在本任务的TSS中;
用CALL指令发生转移时,新堆栈指针从TSS中取出,原堆栈指针压入新堆栈。
RET指令只返回到小于等于级别CPL的代码段;
从堆栈中恢复断点CS:EIP;
返回后的代码段选择符的RPL就是当前CPL,若CPL变化了,则旧的堆栈指针从TSS中弹出。null3.任务切换1.每个任务有一个TSS和LDT;
2.TSS描述符在GDT中;
3.任务门是门的一种,用于定位TSS描述符;
4.选择不同的TSS描述符就可以实现任务的切换;
5.可以用JMP/CALL/INT/IRET实现任务切换;
6.任务的切换有两种:
直接任务切换;
间接任务切换。任务切换:从执行一个任务转移到执行另一个任务。null直接任务切换过程:
(1)保存当前任务1运行环境:
当前任务1的所有R当前TSS1。
(2) 切换:
置TSS2描述符.type.D2=1(忙);
CR0.D3=1(切换发生标志);
Eflags.D14(NT)=1(嵌套任务内层标志);
TSS1选择符保存于TSS2返回链中(CALL,INT指令时,JMP不用保存);
IRET 弹出TSS1中返回链中的选择符,进行任务切换。
(3)设置新任务2运行环境
(4)特权检查
级(CPL ≥ DPL2) & (RPL ≥ DPL2)时,可切换,否则异常。
(5)运行任务2代码。null间接任务切换(4)特权检查
级(CPL ≥ DPL) & (RPL ≥ DPL)时,可切换,否则异常。
null七.向保护模式的转换过程null八、页式存储管理 内存分页是80386微处理器开始引入的一种重要技术。CPU内有分页部件。可以只采用段式寻址,也可以只采用页式寻址,也可以采用段页式寻址。Linux中,逻辑地址=线性地址64TB4GBCR0.PE=1CR0.PG=1null页目录表页表0...x4x4存储器4KB/页页表1页表1023线性地址从线性地址到物理地址页目录表4kB(1K项,每项4字节);
每个页表4kB(1K项,每项4字节),共有1k个页表;
每页4KB;共1M页CR3页表
基地址页
基地址页目录表基址Rnull32 0页目录描述符(4字节)32 0页描述符(4字节)页目录描述符&页描述符AVL=可使用位
D=出错/未出错
A=该页(页表) 已访问/未访问
V=用户/监控 使用
W=该页(页表) 允许/不允许写
P=该页(页表) 存在/不存在null九段页式存储管理既有段式寻址,也 有页式寻址。80386以上CPU采用。null页目录表页表n......线性地址段描述符表
GDT/LDT存储器4KB/页页目录表
基址R表
基址Rx4x4Index x 8逻辑地址物理地址CR3null九、虚拟8086模式在保护方式下,创建的虚拟的1MB空间,映射到保护模式的4GB空间。
EFLAGS.VM=1
虚拟8086模式是从保护模式进入的。LINUX内核源代码情景
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
(上)--毛德操.浙江大学.pdf 第一章内容