linux基本概念之中断、轮询

用通俗易懂的语言来阐述一些基本概念,不涉及代码,小白也能看得懂。

中断是什么

意思就是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

中断是一种计算机术语。通俗点说就是停下当前的执行程序转而执行新的程序。 执行完后再返回执行之前的程序。

为什么要有中断

因为外围设备和CPU处理速度不对等。就好比电脑的处理速度和你键盘打字的输入速度,电脑处理速度非常快,如果一直等待你输入,那样非常浪费资源。

更通俗的说,老板说明天给你打电话,然后你明天一直抱着手机等待电话,什么事都不做。这显然不符合我们的处理方式。我可以选择打开手机铃声,老板电话过来了铃声提醒我们接电话。

所以能让设备在需要内核时主动通知内核,是一个聪明的方式,这便是中断。 当你需要使用调用资源时,给他一个信号,CPU便会处理你的信号。

中断和轮询的差异

中断是被动的接收信号,轮询是主动的询问有无信号
通俗的说:中断就是别人打电话给你,你听到铃声,然后放下手中的事去接电话。
轮询就是每隔一段时间,你主动看一下手机有没有短信。

综上所述 轮询:主动 实时 可控
中断:被动 随机 不可控

中断和轮询的使用场合

因为轮询是主动、实时、可控的,所以我们可以用轮询来处理一些比较确定的信号量。
对于随机 不可控的信号量,若是采用轮询,将会错过重要信息,或者浪费大量时间,这时候我们就该用中断。

比如:老板说,明天九点准时通知你。因为时间都确定了,我们只需明天九点查看一下信息就行, 又或者,UP主每天晚上8点更新,我们也只需要每天8点之后去看一下就行,这时候采用轮询。
但是如果他们没说时间,你又不想错过。你要么选择一直等待,要么过一会就看一眼,(这是轮询),这样就浪费了大量的时间。所以对于随机不可控的信号,我们选择中断。

什么是中断上下文

顾名思义:上文就是准备环境,诸如保存现场之类的, 具体如何做到的暂时不用深究,有兴趣自行度娘。
中断下文就是:执行在内核空间的中断服务程序。

说到下文要引入一个概念:中断要即时响应,但是可以不立刻执行。
例如:女朋友打电话来约你逛街,你要马上接,但是可以晚点再为逛街做准备。

综上所述: 中断上文负责响应,中断下文负责处理。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值