#中断

1中断机制的产生

对于OS中的I/O系统,采取从最低层向高层介绍,首先介绍中断处理

中断在OS中有着特殊且重要的地位,它是多道程序得以实现的基础,没有中断就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另外,中断也是设备管理的基础,为了提高CPU的利用率并实现CPU和I/O设备并行执行,也必须有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。

2 中断的本质

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

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

用户态到核心态的转换就是通过中断机制实现的(软中断),并且中断是唯一途径。

  核心态到用户态的切换时通过执行一个特权指令,将程序状态字(PSW)标志位设置为用户态。

3 中断的分类

(1)中断(interrupt)。中断是指CPU对I/O设备发来的中断信号的一种响应。CPU暂停正在执行的程序,保存CPU现场环境后,自行转去执行该I/O设备的中断处理程序。执行完后再回到断点,继续执行原来的程序。I/O设备可以是字符设备,也可以是块设备以及通信设备等。由于中断是由外部设备引起的,故其又称为外中断或硬中断。

(2)陷入或陷阱(trap)。另外还有一种由CPU内部事件所引起的中断,例如进程在运算过程中发生了上溢或下溢,再如程序出错(如指令非法、地址越界、电源故障等)以及执行到程序中预设的软中断指令。通常把这类中断称为内中断,或软中断,或陷入。与中断一样,若系统发生了陷入事件,CPU也将暂停正在执行的程序,转去执行该陷入事件的处理程序。中断和陷入的主要区别是信号的来源不同,即来自于CPU外部还是CPU内部。

4 中断的处理过程

当一个进程请求I/O操作时,该进程将被挂起。直到I/O设备完成I/O操作时,设备控制器才会向CPU发送一条中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,并在处理完后解除相应进程的阻塞状态

1.测定是否有未响应的中断信号

2.保护被中断进程的CPU现场环境

3.转入相应设备的中断处理程序

4.处理中断

5.恢复CPU现场环境后退出中断

5 小结

  (1) 中断是为了实现多道程序并发执行而引入的一种技术。

  (2) 中断的本质就是发生中断时需要操作系统介入开展管理工作。

  (3) 发生时,CPU会立即进入核心态,针对不同的中断信号,采取不同的处理方式。

  (4) 中断(软中断)是CPU从用户态进入核心态的唯一途径。

  (5) 中断分为内中断和外中断

  (6) 进程中断时,操作系统会保存CPU的运行环境,如程序状态字(PSW)、程序计数器、各种通用寄存器,这是为了当进程再次运行时可以从中断的状态处继续运行。

不够明白?深刻理解中断!

中断 VS 系统调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 从本质上讲,中断(硬)是一种电信号,当设备有某种事情发生的时候,他就会产生中断,通过总线把电信号发送给中断控制器。...
    Joe_HUST阅读 23,045评论 0 10
  • 1 中断介绍 1.1 简介 中断控制是计算机发展中一种重要的技术。最初它是为克服对I/O接口控制采用程序查询所带来...
    疯狂小王子阅读 12,477评论 0 9
  • 一.Linux系统,陷入内核的三种方式 1.系统调用:应用程序主动像操作系统发出的服务请求,系统调用是应用程序主动...
    MagicDong阅读 6,167评论 0 2
  • [TOC]上一期,我用一个不可中断进程的案例,带你学习了 iowait(也就是等待 I/O 的 CPU 使用率)升...
    tracy_668阅读 2,490评论 0 2
  • 软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bott...
    linux大本营阅读 4,413评论 0 0

友情链接更多精彩内容