zoukankan      html  css  js  c++  java
  • # 操作系统中断

    操作系统中断

    中断的分类

    中断按照触发的来源可以分为两类,内部中断和外部中断。其中内部中断实在cpu内部引起的,也就是说是由当前的进程触发的所以也叫异常。而外部中断也就是由cpu以外的设备触发的。

    外部中断和内部中断

    为什么要有外部中断呢?实际上我们可以由cpu来管理所有的设备,比如IO设备。

    但是现在就会存在一个问题,IO的响应十分的慢,而cpu的处理十分的快,所以我们就不希望缓慢的IO影响快速的cpu,我们希望cpu能够在他本来等待IO的时间里去干更多的事情。

    所以我们的IO设备内部自己就拥有一块控制芯片,他接受了这个IO任务。在他将这任务完成了以后就通过中断通知cpu。

    所以我们也就很容易明白外部中断是异步的,而内部中断由于是当前的运行进程引发的,所以很明显是同步的。

    中断的处理流程

    首先从指令的角度来看起。

    当一条指令执行完成以后,cpu检查是否有需要处理的中断。如果需要处理的中断就保存当前重要的上下文信息(并非完整的上下文信息),然后对照中断向量表(中断向量表是由操作系统预设的,也就是软件提供的)查找对应的中断处理程序,并设置下一条指令为中断处理程序的起始指令。这些都是硬件自动完成的。

    中断处理程序首先保存当前的上下文环境(更完整的),然后处理中断请求。处理完成之后,回复我们保存的之前的运行时环境,简单来说就是处理了一个中断以后一切又回归的原来的位置。这是软件处理的。

    在这里我可以觉得cpu的运行从计算机开机的那一刻起完全就是事件驱动的了。

  • 相关阅读:
    POJ 1795 DNA Laboratory
    CodeForces 303B Rectangle Puzzle II
    HDU 2197 本源串
    HDU 5965 扫雷
    POJ 3099 Go Go Gorelians
    CodeForces 762D Maximum path
    CodeForces 731C Socks
    HDU 1231 最大连续子序列
    HDU 5650 so easy
    大话接口隐私与安全 转载
  • 原文地址:https://www.cnblogs.com/freesfu/p/11768627.html
Copyright © 2011-2022 走看看