中断 异常 系统调用的比较

为什么需要中断,异常和系统调用

  • 计算机运行中,内核是被信任的第三方 内核可以对操作系统做任何控制
  • 只有内核可以执行特权指令
  • 方便应用程序

中断和异常希望解决的问题

  • 当外设连接计算机时,会出现什么现象
  • 当应用程序处理意想不到的行为时,会出现什么现象

系统调用希望解决的问题

  • 用户应用程序是如何得到系统服务
  • 系统调用和功能调用的不同之处是什么

内核的进入与退出

系统调用 system call

  • 应用程序主动向操作系统发出的服务请求

异常 exception

  • 非法指令或者其他原因导致当前指令执行失败后的处理请求

中断 hardware interrupt

  • 来自硬件设备的处理请求

源头上的不同
  • 中断,外设
  • 异常,应用程序的错误
  • 系统调用,应用程序请求操作提供服务

响应方式

  • 中断,异步
  • 异常,同步
  • 系统调用,异步或者同步

处理机制

  • 中断,持续,对用户应用程序是透明的
  • 异常,杀死或者重新执行意想不到的应用程序指令
  • 系统调用,等待和持续

中断处理机制

硬件处理

  • 在cpu初始化时设置中断使能标志

在许可外界打扰cpu的执行之前,cpu不会对外界的任何中断请求发出响应,中断使能之后,才能做中断的处理

  1. 依据内部或外部事件设置中断标志
  2. 依据中断向量调用相应中断服务例程

软件

  • 现场保存(编译器)
  • 中断服务处理(服务例程)
  • 清除中断标记(服务例程)
  • 现场恢复(编译器)

中断嵌套

硬件中断服务例程可被打断

  • 不同硬件中断源可在硬件中断处理时出现
  • 硬件中断服务例程中需要临时禁止中断请求
  • 中断请求会保持到cpu做出响应

异常服务例程可被打断

  • 异常服务例程执行时可能出现硬件中断

异常服务例程可嵌套

  • 异常服务例程可能出现缺页
posted @   小哑师兄  阅读(266)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示