Ch12 保护模式和其应用.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ch12 保护模式和其应用

第十二章 保护模式及其应用 ;12.1 特权级保护 12.2 任务 12.3 中断和异常 12.4 虚拟8086模式 12.5 操作系统类指令;12.1 特权级保护;12.1.1 对数据访问的保护 ;12.1.2 对程序转移的保护 ;CPL=DPL,允许跳转和调用。转移后,CPL没有改变。 CPLDPL,禁止。高特权级的程序不能直接转移到低特权级的程序 ; CPLDPL,此时要检查段描述符的C位。如果C位为1,表示这是一致代码段,允许转移,CPL并不改变。如果C位等于0,则禁止转移。;12.1.3 门;1.系统描述符 ;表12-1 16种系统描述符类型 ;2.调用门 ;(3)DPLGATE,即门描述符的DPL (4)DPLCODE,即目标代码段描述符的DPL (5)CCODE,即目标代码段描述符的C位 使用CALL指令时,CPU检查以下两个条件: DPLGATE≥MAX(CPL, RPL) DPLCODE≤CPL 使用JMP指令时,CPU检查以下两个条件: DPLGATE≥MAX(CPL, RPL) CCODE为1且DPLCODE≤CPL 或 CCODE为0且DPLCODE=CPL 只有条件满足了才能使用调用门 ;12.2 任务;12.2.1 任务状态段;任务状态段TSS;TSS的基本格式 ;寄存器保存区域 ;内层堆栈指针区域;地址映射寄存器区域 ;链接字段;调试陷阱位T;I/O许可位图;12.2.2 任务切换;3. 任务A到B的切换步骤;(7)把TSS中的CS选择符的RPL作为当前任务特权级,设置为CPL (8)装载LDTR寄存器 (9)装载代码段寄存器CS、堆栈段寄存器SS和各数据段寄存器及其高速缓冲寄存器。 ;4.任务内特权级变化时TSS中堆栈指针的使用;RET指令及步骤;RET指令(续);12.2.3 输入输出保护 ;1.I/O敏感指令;I/O敏感指令列表;2.I/O许可位图;3.对IOPL的保护;4.编写驱动程序修改I/O位图 ;12.3 中断和异常;12.3.1 中断和异常的类型 ; 标志寄存器EFLAGS中的IF标志决定是否响应INTR的中断请求。 IF=0时,CPU不响应INTR信号。CPU在响应中断请求时,从外部硬件读出一个8位的中断类型号,来区分外部中断的来源。 对来自NMI的中断请求,CPU不检查IF标志。在响应NMI中断时,不从外部硬件接收中断类型号,其中断类型号固定为2。;(2)异常;2.异常类型号 ;3.故障类异常; (5)无效TSS故障(异常0AH) 无效TSS故障提供了一个出错码,格式: ; 引起无效TSS故障的原因如下: TSS描述符中的段限长小于103; 无效的LDT描述符,或者LDT描述符的P位为0; 堆栈段不是一个可写段; 堆栈段选择符索引的描述符超出描述符表界限; 堆栈段DPL与新的CPL不匹配; 堆栈段选择符的RPL不等于CPL; 代码段选择符索引的描述符超出描述符表界限; 代码段选择符不指向代码段; 非一致代码段的DPL不等于新的CPL; 一致代码段的DPL大于新的CPL; 对应DS,ES,FS或GS的选择符指向一个不可读段(如系统段); 对应DS,ES,FS或GS的选择符索引的描述符超出描述符表的界限。 ;(6)段不存在故障(异常0BH) (7)堆栈段故障(异常0CH) 在堆栈操作时,偏移超出段界限所规定的范围。出错码为0。 在由特权级变换所引起的对高特权级堆栈的操作时,偏移超 出段界限所规定的范围,高特权级堆栈段的段描述符中的P位为1。此时出错码中包含高特权级堆栈的选择符。 装入到SS寄存器的段描述符中的P位为0。此时出错码中包含有对应的选择符。 ;(8)通用保护故障(异常0DH) 违反保护方式,但程序无需中止的异常。出错码为0。 违反保护方式,并导致程序终止的异常。出错码可能为0,也可能不为0。 (9)页故障(异常0EH) 页目录表项或页表项中的P=0,对应的物理页不在内存中; 发现试图违反页保护属性(U/S,R/W)的规定而对页进行访问。 (10)协处理器出错(异常10H);4.陷阱类异常;(1)调试陷阱 ;(2)断点陷阱 ;5.中止类异常 ;12.3.2 中断门和陷阱门 ; 陷阱门 任务门前面已有介绍。 ;12.3.3 中断和异常的处理过程;取得48位地址指针后,CPU执行以下步骤: ①若段选择符为0,则产生通用保护故障; ②在GDT/LDT中取对应的描述符; ③若描述符不是一个代码段描述符,则产生通用保护故障; ④若代码段(C?0)且DPLCPL,则产生通用保护故障; ⑤调整段选择符的RPL?0(不修改门中的段选择符,在CPU内部调整); ⑥把段选择符装入CS;

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档