中断和异常

一、中断机制的诞生

早期的计算机,各程序只能串行执行,系统资源利用率低,为了解决这个去问题,就发明了操作系统(作为计算机的管理者),引入了中断机制,实现了多道程序并发执行

本质:发生中断就意味着需要操作系统介入,开展管理工作

二、中断的概念和作用

1.概念

1.当中断发生之后,CPU立即进入核心态

2.当前运行的进程暂停运行,并由操作系统内核对中断进行处理

3.对于不同的中断信号,会进行不同的处理

发生了中断,就意味着需要操作系统介入,开展管理工作,由于操作系统的管理工作(比如进程切换,分配I/O设备等)需要使用特权指令,因此CPU需要从用户态切换到核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的权限。有了中断,才能实现多道程序并发执行

2.处理器状态切换

用户态-》核心态:

只能通过中断实现

核心态-》用户态:

通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”

三、中断的分类

广义的中断

1.内中断

也叫异常、例外、陷入

信号的来源:CPU内部,与当前执行的指令有关

自愿中断:

指令中断

比如:系统调用时使用的访管指令(又叫陷入指令,trap指令)

强迫中断:

硬件故障-比如:缺页

软件故障-比如:整数除0

2.外中断

狭义的中断

信号的来源:CPU外部,与当前执行指令无关

外设请求:

如:I/O操作完成发出的中断信号

人工干预:

如:用户强行中止一个程序

3.内中断的另一种分类方式

陷阱,陷入(trap)

有意而为之的异常,如系统调用

故障

由错误条件引起的,可能被故障处理程序修复,如缺页

终止

不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的引用程序,如整数除0

4.外中断的处理过程

step1:

执行完每一个指令,CPU都要检查当前是否有外部中断信号

step2:

如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW,程序计数器PC,各种通用寄存器)

step3:

根据中断信号类型转入相应的中断处理程序(核心态)

step4:

中断处理程序执行完之后,恢复原进程的CPU环境,并退出中断,返回原进程继续向下执行

四、中断过程

1.示例

进程1开始运行

CPU收到计时部件发出的中断信号,切换为核心态,对中断进行处理

操作系统内核负责对中断信号进行处理

进程1的时间片已用完,换进程2开始运行

进程2发出系统调用(内中断信号),请求输出,CPU切换为核心态,对中断进行处理

让打印机开始工作,进程2暂停运行等待I/O完成,换进程3运行

I/O完成之后,设备向CPU发出中断信号

CPU切换为核心态,对中断进行处理

进程2的I/O操作完成,让进程2恢复运行,进程3暂停,已完成后续工作。

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值