1.5 中断和异常

在上节内核态与用户态的转换过程中曾经提到过,操作系统会响应中断信号强制夺回CPU使用权,使用户态转换为内核态。“中断”是操作系统夺回CPU使用权的唯一方式,如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序,其他程序就没有办法再使用CPU,这样的话就不存在并发机制了。一般来说,中断分为两种情况即内中断和外中断。

目录

1.5 中断和异常

1.5.1 内中断

1.5.2 外中断

1.5.3 中断的分类


1.5.1 内中断

内中断(也称异常)与当前执行的指令有关,中断信号来源于CPU内部。比如,当用户妄图执行特权指令时,CPU便会产生中断,由用户态变为内核态;再比如,当进行除法运算除数为0时同样会发生错误,产生中断。总的来说,就是当前指令是非法的指令,那么一定会引起中断。

当应用程序想要进行一次系统调用使用内核的服务时,会执行一条陷入(trap)指令,陷入指令会引发一条中断信号,操作系统就会夺回CPU的使用权,也就是说,执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。

1.5.2 外中断

外中断与当前执行的指令无关,中断信号来源于CPU外部。每次在一条指令结束之后CPU都会检查是否有外中断信号。比如时钟信号,或者I/O设备都可以发出外中断信号。

1.5.3 中断的分类

    中断的原理:不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。所以,显然中断处理程序一定是内核程序,工作在内核态。

操作系统(五)中断和异常相关推荐

  1. 【操作系统】—中断和异常

    [操作系统]-中断和异常 本章节思维导图如下 一.中断的概念和作用 本质:发生中断意味着需要操作系统介入开展管理工作,CPU会进入核心状态 中断是CPU从用户进入状态的唯一途径 二.中断的分类 分类一 ...

  2. 【操作系统】中断和异常的比较

    当中断或异常发生时,运行在用户态的CPU会进入内核态,这是通过硬件实现的. 中断是指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断.时钟中断等. 中断通常是与当前程序运行无关的事件,即 ...

  3. 上下文保存 中断_从操作系统(Windows)的角度讨论中断和异常机制

    本章的内容是针对Windows XP的32位版本的,但是绝大多数内容也适用于Windows的其他32位版本(Windows NT.Windows 2000和Windows Vista),并且可以比较容 ...

  4. 【操作系统】概念、功能、特征、分类、运行机制、内核、体系结构、中断和异常、系统调用简介

    文章目录 一.概念 二.功能及目标 2.1 系统资源管理者 2.2 用户与计算机硬件之间的接口 2.2.1 命令接口 联机命令接口 脱机命令接口 2.2.2 程序接口 2.2.3 图像用户界面 2.3 ...

  5. 操作系统--中断和异常

    操作系统–中断和异常 中断机制的诞生 为了实现多道批程序并发执行的一种技术,而发明出中断,主要为了提高资源的利用率. 中断的概念 发生中断,就意味着需要操作系统介入开展管理工作,cpu会立即进入核心态 ...

  6. 《操作系统》OS学习(二):启动、中断、异常

    Bootloader:加载OS.操作系统一开始是放在DISK(硬盘)中,并不是放在内存中. BIOS:基本I/O处理系统.存放在ROMRead-Only Memory)只读存储中 BIOS(Basic ...

  7. 2 操作系统第一章 操作系统体系结构、中断和异常、系统调用

    文章目录 1.1 指令概念及其分类 1.2 操作系统体系结构: 1.2.1操作系统内核概念 1.3 中断和异常 1.3.1 中断的诞生 1.3.2 中断分类 1.3.3 外中断的处理过程 1.3.4 ...

  8. 操作系统之计算机系统概述:5、中断和异常

    5.中断和异常 思维导图: 中断的作用: 中断的分类: 中断的原理: 思维导图: 中断的作用: 中断的作用就是从用户态切换到内核态 中断的分类: 1.内中断:与当前执行指令有关,中断信号来源于CPU内 ...

  9. (王道408考研操作系统)第一章计算机系统概述-第一节4:中断和异常

    注意!!! 本节内容和<计算机组成原理>中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分 ...

最新文章

  1. springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
  2. 05. 取SQL分组中的某几行数据
  3. taylor级数 matlab,Taylor级数与Fourier级数展开式比较与MATLAB实例.docx
  4. Qt工作笔记-3D效果唤出QWidgets界面(QGraphicsProxyWidget与QTimeLine)
  5. mysql 设置男女约束
  6. python if __name__ == ' __main__'
  7. 推荐一款好用的取色器(仅支持windows)
  8. HTML:网页设计案例5
  9. 衡量计算机主机性能的指标,计算机性能
  10. 微信小程序云开发教程-手把手:小程序数据库设计
  11. Python100Days学习笔记---Day16-20Python语言进阶
  12. 软件开发中的SD、SE、QA和RD是什么意思?
  13. Javascript(十三)javascript BOM详解
  14. 考研:2023寒假复习及2022复试问题
  15. 数据杂谈:CIO和CTO的区别(首席信息官首席技术官)
  16. 如何在Windows 8.1中“忘记”有线(或无线)网络
  17. linux同步webdav,基于 WebDAV 的 安卓 与 Linux 之间的写作同步
  18. 【财务分析】ERP软件的财务管理系统具有哪些功能?
  19. 固态硬盘的计算机需要进行磁盘碎片整理吗,SSD固态硬盘需要碎片整理吗 固态盘切忌磁盘碎片整理...
  20. 【报错】fatal: unable to access

热门文章

  1. 1.2 UML带来了什么(学习笔记)
  2. 网络安全概念是什么?互联网时代它为何如此重要?
  3. py---------面向对象进阶
  4. 安卓杂记(一) 获取时间总结整理
  5. JAVA中“==”与equals()方法区别
  6. Spring MVC 入门
  7. Git学习笔记;Git bash 库同步问题
  8. 科大星云诗社动态20210811
  9. 云炬Android开发报错处理教程 解决Android Studio kotlin等依赖下载慢,下载超时失败的问题
  10. Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归