上几篇文章学习了分页机制的一些原理:

  • 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
  • 【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解

今天继续学习保护模式下的关于中断与异常的概念。本文主要学习中断与异常的区别。

在以下文章中我也写过关于中断的文章,可以参考学习:

  • 【软件开发底层知识修炼】二 深入浅出处理器之二 中断的概念与意义
  • 【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理

1、中断和异常

中断和异常的作用是指示系统中的某个地方发生了一些事件,需要引起处理器以及正在执行的程序的注意。当中断和异常发生时,典型的结果是迫使处理器将控制从当前正在执行的程序或者任务转移到另一个例程或者任务中去。该例程叫做中断处理程序,或者叫做异常处理程序。如果是一个任务,则发生任务切换。

1.1 中断

中断包括硬件中断和软中断。

硬件中断是由外围设备发出中断信号引起的,以请求处理器提供服务。硬件中断完全是随机的,与处理器的执行并不同步。当中断发生时,处理器要先执行完当前的指令,然后才对中断进行处理。

1.2 异常

异常就是内部中断。它们是处理器内部产生的中断,表示在指令执行的过程中遇到了错误的状态。

当处理器执行一条非法指令(如除零指令),或者因为条件不具备,指令不能正常执行时,将引发这种类型的中断。

异常分为三种:

  • 程序错误异常:处理器再执行指令时,检测到程序的错误,并由此而引发的异常
  • 软件引发的异常:这类通常是由into、int3和bound指令主动发起的。比如中断的单步调试,就是利用int3指令进行的。
  • 机器检查异常:这种是与处理器型号相关的一些问题。我们不关心这种问题

根据异常情况的性质和严重性,异常又可以分为以下三种:

  • 故障:故障通常是可以纠正的。比如,缺页,这实际上是一种故障,只需要处理器将磁盘上对应的页拷贝到相应的页面即可。故障一般是由好处的
  • 陷阱:陷阱通常用于调试目的。比如单步调试一般使用int3指令,这其实是一种陷阱。
  • 终止:终止意味着严重的错误,比如硬件错误,系统表(GDT,LDT等)中的数据不一致或者无效。一个比较典型的终止类异常是“双重故障”,一般无法修复。

中断和异常发生时,处理器将挂起当前正在执行的过程或者任务,然后执行中断异常处理过程。返回时,处理器恢复程序或者任务的执行,而且被打断的程序或者任务的执行不失连续性,除非遇到一个终止类的异常。

对于某些异常,处理器会在转入异常处理程序之前,会在当前栈中压入一个称为错误码的数值,帮助程序进一步诊断异常产生的位置和原因。

下表列出了保户模式下的中断和异常向量分配:

2 总结

本文主要学习保护模式下的关于中断与异常的概念。

详细的内容还是要参考原书籍,这里只是做一个简单的总结。

学习探讨加个人:
qq:1126137994
微信:liu1126137994

【OS学习笔记】三十四 保护模式十:中断和异常区别相关推荐

  1. 【OS学习笔记】二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念

    上一篇文章学习了保护模式下操作系统内核如何加载程序并运行:点击链接查看上一篇文章 本篇文章接着上一篇文章学习保护模式下任务的隔离. 包括以下学习内容: 任务的全局空间和局部空间 任务的TSS 任务的L ...

  2. 【OS学习笔记】二十一 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之内核代码

    本汇编代码对应文章保户模式下操作系统内核如何加载用户程序并运行 中的实际内核代码 对应的主引导扇区代码:主引导扇区代码 对应的用户程序代码:用户程序代码 ;代码清单13-2;文件名:c13_core. ...

  3. 【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套

    上一篇文章学习了任务门的概念:任务门-任务切换.主要学习了以下内容: 使用任务门进行任务切换的一般工作原理(和中断有关的任务切换) 本篇文章接着上一篇文章学习以下内容: 利用jmp进行任务切换 利用c ...

  4. 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

    本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...

  5. 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

    本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...

  6. 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门

    上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...

  7. 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务

    上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...

  8. 保护模式下中断或异常示意图

    保护模式下中断或异常示意图 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/08/24/3845741.html

  9. 【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章学习了保护模式下的任务与任务隔离,以及简单介绍了保护模式下 ...

最新文章

  1. 基于数据挖掘的旅游推荐APP(五):景点推荐模块
  2. 学计算机广东2B大学,2017年广东2B大学最新排名情况
  3. 九个console命令调试JS
  4. IIS7中使用集成模式时出现HttpException
  5. CPU上下文切换(系统调用、进程上下文、线程上下文、中断上下文)
  6. 为什么同大取大同小取小_不锈钢马大型动物雕塑-大同金属雕塑马订制
  7. php1.9,PHP1.9--数组
  8. 原有磁盘上创建lvm_Centos7创建LVM磁盘管理
  9. 转:PyDev for Eclipse 简介
  10. @+保留关键字当标识
  11. Vue.js学习笔记: 数据绑定语法---绑定表达式
  12. 因果推断笔记——DML :Double Machine Learning案例学习(十六)
  13. oracle 中符号%3e,Oracle数据类型-----(数字格式)
  14. root android 5.0,安卓android5.0怎么一键root? 安卓5.0一键root教程
  15. 工业级ADSL有线路由器/远程视频监控专用路由器
  16. 树莓派CM4_5G扩展板
  17. 【Linux】Linux 下socket 编程
  18. 安装pip、pip3
  19. 图像金字塔(Python实现)
  20. 用html做一个拍拍网界面视频,用canvas做一个DVD待机动画的实现代码

热门文章

  1. java学习(85):Interage包装类基本使用
  2. 阿里云linux主机安装qt报错:缺少libxkbcommon-x11.so.0
  3. air android 通信,Android超声波通信例子
  4. Vue项目 开启gzip
  5. python 开发板 播放音乐_MicroPython开发板:TPYBoard v102 播放音乐实例
  6. openwrt 19 overlay 空间不足_重视 | 山西一矿井瓦斯爆炸,有限空间作业切记注意安全...
  7. Pro ASP.NET 4 CMS
  8. SAP RFC 获取BDC 消息文本的实现
  9. HDOJ1014 Uniform Generator
  10. 如何处理Global symbol * requires explicit package name编译错误,以及use strict用法