zoukankan      html  css  js  c++  java
  • (二) 中断、异常和系统调用比较

    (二) 中断、异常和系统调用比较

    摘要

    1. 为什么要中断、异常和系统调用

      • 在计算机运行中,内核被信任的第三方

      • 只有内核可以执行特权指令

      • 方便应用程序

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

      • 外设连接计算机时,会出现什么现象

      • 当应用程序处理意想不到的行为时,会出现什么现象。

    3. 系统调用希望解决的问题

      • 用户应用程序是如何得到系统服务?

      • 系统调用和功能调用的不同之处?

    一、概念

    • 系统调用 (system call)

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

    • 异常 (exception)

      • 非法指令或其他原因导致当前 指令执行失败

        • 如: 内存出错后的处理请求

    • 中断(hardware interrupt)

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

    二、中断、异常和系统调用的比较

    • 源头

      • 中断:外设

      • 异常:应用程序意想不到的行为

      • 系统调用:应用程序请求操作提供服务

    • 响应方式

      • 中断:异步

      • 异常:同步

      • 系统调用:异步或同步

    • 处理机制

      • 中断:持续,对用户应用程序是透明的

      • 异常:杀死或重新执行意想不到的应用程序指令

      • 系统调用:等待和持续

    • 中断处理机制

      • 硬件处理

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

          • 依据内部或外部事件设置中断标志

          • 依据 中断向量 调用相应 中断服务 例程

      • 软件

        • 现场保持 (编译器)

        • 中断服务处理 (服务例程)

        • 清除中断标记 (服务例程)

        • 现场恢复 (编译器)

        • 注: 都到了中断向量表,中断--中断服务例程,异常--异常服务例程,系统调用--总共占有一个中断编号,不同系统调用功能由系统调用表来表示的。由系统调用表的不同,选中不同的系统调用实现。

    • 中断嵌套

      • 硬件中断服务例程可以被打断
        • 不同硬件 中断源可能硬件中断处理时出现

        • 硬件中断服务例程中需要 临时禁止中断 请求

        • 中断请求会保持到cpu做出响应

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

      • 异常服务例程可嵌套
        • 异常服务例程可能出现缺页

  • 相关阅读:
    [noip2018]day1
    [CF1110d]JONGMAH
    BZOJ 2733 [HNOI2012]永无乡
    BZOJ 3123 [SDOI2013] 森林
    Nowcoder 练习赛26E 树上路径
    Luogu 2575 高手过招-SG函数
    BZOJ 1123[POI2008]BLO-Tarjan
    Nowcoder OI赛制测试2 F 假的数学题
    Luogu 2467[SDOI2010]地精部落
    Luogu 2216[HAOI2007]理想的正方形
  • 原文地址:https://www.cnblogs.com/douzujun/p/6431690.html
Copyright © 2011-2022 走看看