• 中断 异常 系统调用的比较


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

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

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

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

    系统调用希望解决的问题

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

    内核的进入与退出

    系统调用 system call

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

    异常 exception

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

    中断 hardware interrupt

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

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

    响应方式

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

    处理机制

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

    中断处理机制

    硬件处理

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

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

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

    软件

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

    中断嵌套

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

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

    异常服务例程可被打断

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

    异常服务例程可嵌套

    • 异常服务例程可能出现缺页
  • 相关阅读:
    笔记:Maven 聚合和继承
    笔记:Maven 仓库和插件配置本机私服
    笔记:Maven 插件配置
    笔记:Maven 仓库及配置详解
    笔记:Maven 插件及配置详解
    笔记:Maven 依赖及配置详解
    笔记:Maven 项目基本配置
    【问题解决方案】Mathtype中丢失Mplugin.dll的问题
    【学习总结】Python-3-字符串函数-strip()方法
    【学习总结】Python-3-字符串函数split()的妙用
  • 原文地址:https://www.cnblogs.com/Alex3O/p/13296226.html
Copyright © 2020-2023  润新知