操作系统中断

中断是处理器提高效率的关键技术,分为程序中断、时钟中断、I/O中断和硬件失效中断。中断处理涉及CPU保存当前状态,执行中断处理程序,然后恢复并继续原任务。系统调用作为用户与操作系统交互的方式,也利用了中断机制。中断处理时,如果多个设备请求,可采用禁止中断或中断嵌套策略。中断使得CPU能在等待I/O操作时执行其他任务,提升了系统整体性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中断

中断时提高处理器效率的一种手段,如任务A需要用到打印机,打印的时间相对于cpu来说会很长,如果在打印期间死等打印机太浪费资源,所以出现了中断,cpu会先放弃该任务的执行,然后转去执行其他任务,当打印机打印好后就会发出中断信号给cpu,cpu就暂停当前任务的执行,继续运行任务A。

中断的分类:

程序中断由指令执行的结果产生,如算数溢出、除数为0、试图执行非法指令
时钟中断由处理器内部的计时器产生,运行操作系统以一定的规律执行周期性的任务
I/O中断由I/O控制器产生,发信号通知一个io操作的正常完成或是错误
硬件失效中断如掉电或存储器奇偶校验之类的故障产生
  • 中断(Interruption):也叫外中断,即上面的IO中断和时钟中断,这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。
  • 异常(陷阱):也叫内中断,是由CPU内部事件所引起的中断,例如进程在运算中发生了上溢或者下溢,有如程序出错,如非法指令,地址越界等,即上面的程序中断。若系统发现有陷入事件,CPU也将暂停正在执行的程序,转去执行该陷入事件的处理程序。

中断和陷入的主要区别是信号的来源,看是来自CPU外部,还是CPU内部。

另外还有一种是系统调用。所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看做特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/0传输以及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。

有了中断的加入,cpu的指令周期从

 变为了

 多出了一个检查中断的步骤,也增加了消耗,但是对于io的速度和cpu相比,大部分时候还是挺划算的。中断是硬件和软件相互合作才能完成的。

中断步骤

具体的中断处理步骤如下:
 

  1.  首先某个硬件完成了自主的给CPU发送中断信号
  2. 处理器响应中断前结束当前指令的执行
  3. 处理器发送确认信号,允许该中断的设备取消它的中断信号,否则该信号会一直存在
  4. 保存当前执行程序的信息,要求最少包括程序状态字PSW(包含了当前程序的内存使用信息、条件码和其他诸如允许中断/禁止中断位、内核/用户模式位等信息)和程序计数器PC指针(保存下一条要执行的指令地址),将这些信息压入系统栈
  5. 处理器把响应该中断的中断处理程序入口地址装入程序计数器PC,每类中断可有一个中断处理程序,CPU根据新的PC值开始执行中断处理程序:
  6. 除了PSW和PC已经被压入系统栈外,还有其他的信息也需要保存,如CPU寄存器的一些内容,防止被中断处理程序运行的时候覆盖掉。
  7. 开始处理中断
  8. 中断处理完成后,被保存的寄存器的值恢复到处理器中
  9. 最后从系统栈中恢复PSW和PC,因此下一条要执行的指令就是刚刚被中断的程序

多个中断

假如有多个设备发送中断信号的话,有两种方法:

  • 正在处理一个中断时禁止再发生中断,即开始处理一个中断请求时,设置PSW中的标记为禁止中断状态,其他设备发送的中断信号都不予理睬,但该信号会一直存在,直到当前中断执行完毕后,把标记位设置为允许中断,再去获取到当时的中断信号。该方法比较简单。
  • 嵌套中断:定义中断优先级,允许高优先级的中断打断低优先级的中断的运行

总结

  • 中断是为了实现多道程序并发执行而引入的一种技术。
  • 中断的本质就是发生中断时需要操作系统介入开展管理工作。
  • 发生中断,CPU会立即进入核心态,针对不同的中断信号,采取不同的处理方式。
  • 中断是CPU从用户态进入核心态的唯一途径(如系统调用)
  • 中断分为内中断和外中断。
  • 进程中断时,操作系统会保存CPU的运行环境,如程序状态字(PSW)、程序计数器、各种通用寄存器,这是为了当进程再次运行时可以从中断的状态处继续运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值