怎么理解直接程序控制和中断方式?

直接程序控制 

看完之后是不是依然一头雾水?来看下面两个例子

无条件传送

假设你正在使用键盘打字。当你敲击键盘上的一个键时,键盘会立即产生一个信号(即输入数据),并且这个信号会立即被电脑接收。在这个过程中,电脑并没有去查询键盘是否准备好发送数据,而是直接接收了这个信号。因为键盘这种输入设备非常简单,它总是准备好发送数据给电脑。

程序查询控制

假设你正在使用电脑看电影,并且想要通过键盘上的某个按键来控制电影的播放或暂停。当你按下这个按键时,电脑并不会立即响应,而是会首先查询这个按键是否确实被按下了(即查询外设状态)。如果按键确实被按下,并且电影播放软件也准备好接收这个指令(即外设准备好接收数据),那么电脑才会执行相应的操作(如暂停或播放电影)。

在这个过程中,电脑需要花费一定的时间(比如几个微秒或毫秒)去查询按键的状态和电影播放软件的状态。虽然这个时间对于人类来说非常短暂,但对于电脑来说却是可以感知的。

中断方式

想象一下你正在使用电脑编写一个文本编辑器,并且你正在通过键盘输入文字。在这种情况下,键盘输入可以视为一个中断源,因为它会在你按下键时产生中断请求。

  1. 正常工作状态
    当文本编辑器在屏幕上等待用户输入时,CPU正在执行其他任务,比如处理图形界面、响应其他用户操作等。此时,键盘处于空闲状态,等待用户按下按键。

  2. 中断请求
    一旦你按下键盘上的一个键,键盘控制器会检测到这个事件,并生成一个中断请求信号。这个信号会被发送到CPU的中断控制器(也称为中断处理器或中断服务程序)。

  3. 中断响应
    CPU在接收到中断请求后,会暂停当前正在执行的任务(即保存当前的状态和上下文),并跳转到中断服务程序(也称为中断处理程序或中断服务例程)去处理这个中断请求。对于键盘输入的中断,中断服务程序会读取键盘控制器中的按键信息,并将其传递给操作系统或应用程序。

  4. 中断处理
    操作系统或应用程序在接收到键盘输入的按键信息后,会进行相应的处理。在这个例子中,文本编辑器会将按键信息转换为对应的字符,并将其插入到编辑器的文本缓冲区中。

  5. 恢复执行
    当中断处理完成后,中断服务程序会恢复CPU之前的状态和上下文,并将控制权交还给CPU。CPU会从之前被打断的地方继续执行原来的任务。

总结

虽然都是I/O输入/输出,但是中断方式CPU无须等待,利用率得到大大提升。

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值