中断 异常 系统调用的比较

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

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

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

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

系统调用希望解决的问题

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

内核的进入与退出

系统调用 system call

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

异常 exception

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

中断 hardware interrupt

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

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

响应方式

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

处理机制

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

中断处理机制

硬件处理

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

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

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

软件

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

中断嵌套

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

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

异常服务例程可被打断

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

异常服务例程可嵌套

  • 异常服务例程可能出现缺页
posted @ 2020-07-13 22:14  小哑师兄  阅读(263)  评论(0编辑  收藏  举报