计算机中的总线中断概念

  当cpu和其他的输入输出设备交互的时候,应该怎么办呢,科学家们就想出了一个办法,牵一根线,连接每个设备,并把其他设备都编上号,想访问谁了就在总线上“吼一声”;
  轮询:如果把硬盘的某块数据搬到内存,cpu发了命令,然后就每隔段时间就来问一次:好了没有? 硬盘:没有。 “好了没有”, “没有”;这就叫轮询,缺点就是一直占用cpu,直到做完这件事(可以理解为同步)
  中断:这样子比较浪费,科学家们又想了一招,引入一个中断线。就像上边的例子,cup会说:硬盘,你把xxx块搬到内存,搬完了告诉我。硬盘:好的。然后cpu干其他事情去了。硬盘干完事之后在中断线上说:cpu,好了。cpu:我保存下现场,然后办你的事情。但是如果每个i/o设备都发中断请求会乱套的。
  中断控制器:只有中断控制器能跟cpu通讯,其他io设备只能向中断控制器发消息。中断控制器再根据优先级通知cpu先干哪些事情。这里是一种异步的,事件驱动的思想。(比如rxjava)

DMA:当有大的数据量迁移(比如硬盘到内存)的时候,就会用DMA控制器的方式传送。

以上是自己的一些总结,可能会有错误,请大家有问题指正。

你可能感兴趣的:(计算机基础)