请求特权级RPL有关概念理解

pjunhanmubfsy 2017-12-22 10:43:31
请求特权级RPL有关概念理解


注:《x86汇编语言-从实模式到保护模式》(李忠等著),以下简称《从实模式到保护模式》

几个概念:
1、RPL:RPL的意思是请求特权级(Request Privilege Level)。不管是实施控制转移,还是访问数据段,这都可以看成是一个请求,请求者提供一个段选择子,请求访问指定的段。从这个意义上来说,RPL也就是指请求者的特权级别。【《从实模式到保护模式》P253】

2、引入RPL的原因是处理器在遇到一条将选择子传送到段寄存器的指令时,无法区分真正的请求者是谁。但是,引入RPL本山并不能完全解决这个问题,这只是处理器和操作系统之间的一种协议,处理器负责检查请求特权级RPL,判断它是否有权访问,但前提是提供了正确的RPL;内核或者操作系统负责鉴别请求者的身份,并有义务保证RPL的值和它的请求者身份相同[1],因为这是处理器无能为力的。【《从实模式到保护模式》P255】

上段中“……内核或者操作系统负责鉴别请求者的身份,并有义务保证RPL的值和它的请求者身份相同[1],……。”关于这句话的理解,我的理解如下,不知道是否正确,向各位请教:
当前指令发起的请求的请求特权级RPL必须与其当前特权级CPL相等(或者低于CPL,也就是在数值上,必须RPL≥CPL)。
例如,如果当前指令的CPL为3,那么,由它发起的,任何诸如控制转移或者访问数据段之类的请求的请求特权级RPL也必须是3?是否同时也意味着,当前指令中提供的选择子中的RPL肯定也必须是3?
如果当前指令的CPL为2呢?此时,指令提供的选择子中的RPL是必须为2?还是2或者3都可以呢?
...全文
928 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tielian 2017-12-25
  • 打赏
  • 举报
回复
在访问一个段的时候,CPU有两个必须执行的检查。只有在以下两种情况都是正确的情况下,才能访问: CPL <= DPL RPL <= DPL 所以你光纠结RPL而脱离了DPL是不行的。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧