处理器内部中断特权级检查

处理器内部进行特权级检查。

由于中断是通过中断向量号通知到处理器的,中断向量号只是个整数,其中并没有 RPL,所以在对由
中断引起的特权级转移做特权级检查中,并不涉及到 RPL。中断门的特权检查同调用门类似,**对于软件主动发起的软中断,当前特权级 CPL 必须在门描述符 DPL 和门中目标代码段 DPL 之间。**这是为了防止位于3 特权级下的用户程序主动调用某些只为内核服务的例程。
(a) 如果是由软中断 int n、int3 和 into 引发的中断,这些是用户进程中主动发起的中断,由用户代码控制,处理器要检查当前特权级 CPL 和门描述符 DPL,这是检查进门的特权下限,如果 CPL 权限大于等于 DPL,即数值上 CPL≤门描述符 DPL,特权级“门槛”检查通过,进入下一步的“门框”检查。否则,处理器抛出异常。
(b) 这一步检查特权级的上限(门框):处理器要检查当前特权级 CPL 和门描述符中所记录的选择子对应的目标代码段 DPL,如果 CPL 权限小于目标代码段 DPL,即数值上 CPL>目标代码段 DPL,检查通过。否则 CPL 若大于等于目标代码段 DPL,处理器将引发异常,也就是说,除了用返回指令从高特权级返回,特权转移只能发生在由低向高。
若中断是由外部设备和异常引起的,只直接检查 CPL 和目标代码段的 DPL,和上面的步骤 b)是一样的,要求 CPL 权限小于目标代码段 DPL,即数值上 CPL >目标代码段 DPL,否则处理器引发异常。

注意:中的 IF 位被自动置 0,避免中断嵌套,即中断处理过程中又来了个新的中断,但是陷阱门和任务门不会把IF位自动置0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值