33-36 : 深入浅出x86中断机制

背景

我们知道使用0x10号中断,可以在屏幕上打印一个字符。

问题

系统中的 中断 究竟是什么?

生活中的例子

来看一个生活中例子:

小狄的工作方式

  1. 在处理紧急事务的时候,不回应同事的技术求助。
  2. 老板的召唤必须回应,不能耽搁。
  3. 处理完老板的召唤后,继续处理之前的紧急事务。
  4. 同事的技术求助继续不回应

中断的概念和意义

处理器与外设的拓扑结构

中断与外设

  1. 中断是一种处理器与外设进行通信的机制。
  2. 用于 “通知”处理器外部有 “重要事情”发生
  3. 一般情况下,中断需要被处理器响应

本质

操作系统是中断驱动的死循环。

处理器、中断、操作系统内核之间的关系。

中断的分类

  1. 外部中断:由外部设备发出来的中断,比如:网卡、键盘、鼠标等。这些外部设备向处理器发出来的中断,都叫做外部中断。
  2. 内部中断:由处理器自己内部发出来的中断。当然这些中断由代码产生的,所以说 也叫做软中段。异常:处理器是逐条逐条指令执行的,这个时候碰到了一个非法不合理的指令码,这个时候处理器知道怎么样去执行吗?当然不知道怎么去执行,所以处理器就报了一个异常。

处理器的外部中断

处理器的内部中断

问题

处理器接受到中断请求之后,如何具体的对中断进行处理?就是中断服务程序(Interrupt Service Routine)

中断服务程序(Interrupt Service Routine)

中断处理流程

Linux中断处理方式

思考

中断与对应的服务程序间如何建立关联?在代码层面如何进行转移?

实模式下的中断处理

-使用中断向量表映射不同中断与中断服务程序

-中断向量表(Interrupt Vector Table)

        起始于物理地址0,长度为 1KB

        每个单元4字节,连续256个单元

        每个单元存放一个中断服务程序的入口地址

中断向量表就是一个指针数组,这个数组里面存放的是:中断程序的入口地址。

中断向量表(IVT)

中断响应与处理

  1. 产生中断,外部设备向CPU发送一个中断,通过 INTR引脚,向处理器发送一个中断请求。
  2. 处理器通过 INTA 这个引脚 去响应这个中断信号。
  3. 外部设备将 中断向量 TYPE 发送给处理器。
  4. 处理器有了中断向量 TYPE,那么就去 查找中断向量表 IVT
  5. 在中断向量表中,就可以查找到 对应的中断服务程序的地址。
  6. 有了中断服务程序的地址,那么直接 CALL就行

思考?

实模式下的中断向量表(IVT) 和 中断服务程序(ISR) 需要操作系统内核来建立吗?

在实模式下,中断向量表(IVT) 和 中断服务程序(ISR) 并不是由操作系统内核来建立的。

实模式下的中断处理

计算机上电

BIOS做的事情

保护模式下的中断处理

中断门描述符(Interrupt Gate)的定义

中断描述符表(IDT)

保护模式下的中断处理

注意事项

思考

不同外设如何向处理器发送中断信号?当多个外设同时产生中断时,如何进行处理?

中断代理-8259A

想象中的连接方式

中断处理器的代理(8259A)

8259A是专门为处理器设计的中断管理芯片

8259A芯片的内部结构

中断响应流程

8259A工作方式

8259A的数据连接方式

中断优先方式

中断嵌套方式

中断屏蔽方式

中断结束方式

8259A控制编程

8259A够用吗?

问题:如何具体的设置和控制 8259A ?

ICW1:初始化8259A连接方式和中断触发方式

ICW2:设置起始中断向量(IRQ0 对应的中断向量)

ICW3:指定主从 8259A 的级联引脚

ICW4:初始化 8259A 连接方式 和 中断触发方式

实例分析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

repinkply

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值