Intel X86中的中断、陷阱和异常

本文详细介绍了Intel X86处理器中的中断、异常和陷阱的区别及处理机制。中断分为外部中断和内部中断,内部中断又分为软件陷阱和硬件异常。X86支持256个中断向量,早期的中断向量表包含处理程序地址,后来发展为包含更复杂信息的“门”结构,如任务门、中断门、陷阱门和调用门。中断处理涉及权限检查、运行级别的改变和堆栈切换等步骤。
摘要由CSDN通过智能技术生成

  中断有两种,一种是CPU外部产生的,一种是CPU内部执行程序时产生的。

  外部的中断通常是由外部设备产生的,并且这类中断的产生是异步的,根本无法预测这类中断什么时候产生,这类中断也就是通常我们所说的“中断”。当然,软件也可以关闭对这类中断的响应。CPU内部产生的中断也分为两种,一种是软件主动产生的中断,通常称为陷阱,例如执行int 0x80指令,还有一种是CPU检测到异常,通常称为异常,例如除数为0.这样,一共有三种类似的机制:中断(Interrupt)、异常(Except)和陷阱(Trap)。

 Intel X86CPU支持256个中断向量,一直都是如此。但是早期的CPU的中断处理机制非常原始、非常简单。早起的CPU(只有实模式)中中断向量表存放在内存中从0开始到1KB(256x4)的位置,每个中断向量对应的项占4个字节,用来存储中断处理程序的地址。其中两个字节用来存储处理程序地址的段地址,两个字节用来存储段内偏移。由于这种设计,中断向量表中各项存储的信息非常少,根本无法满足现在的操作系统的需求,因为这个机制中没有提供用户空间和内核空间切换或者运行模式切换(系统和用户)的手段,而且也没有相应的寄存器来帮助实现这样的需求,后面可以看到之后的CPU中增加了特定功能的寄存器来支持这种需求。Unix最初是在PDP-11(PDP-11是美商迪吉多电脑(Digital Equipment Corp.)于1970到1980年代,所销售的一系列16位迷你电脑)上实现的。PDP-11的CPU中有一个状态控制寄存器PSW,PSW中有一个位段来表示当前的运行级别和模式(系统和用户)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值