关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
浅析Linux中断系统
[复制链接]
作者:
镀心诣
版块:
›
嵌入式操作系统
›
linux
发布时间:
2020-10-12 12:07:08
1603
0
返回列表
镀心诣
当前离线
注册会员
注册会员, 积分 141, 距离下一级还需 59 积分
注册会员
注册会员, 积分 141, 距离下一级还需 59 积分
积分
141
发消息
楼主
电梯直达
镀心诣
发表于 2020-10-12 12:07:08
|
只看该作者
|
倒序浏览
|
阅读模式
我们日常使用的电子产品,对于稍微复杂一点的系统来讲,都少不了中断系统。中断的出现避免了任务轮询带来的时间延时,让任务执行起来更加快捷,实时性更强。今天小编就来聊聊Linux系统的中断。
定义及分类
中断一般是指处理器(CPU)在执行程序的过程中,发生了某一些突发的事件,这时CPU会暂停正在执行的程序,转而去处理突发事件,处理完毕后又返回原来的程序断点处继续执行之前的程序。中断可以根据不同的方式进行分类,根据其来源可分为内部中断和外部中断,也就是中断是不是由CPU的内部产生的,比如内部计数器的溢出;根据中断是否可以屏蔽可以分为可屏蔽中断和不可屏蔽中断,通过设置中断控制器来控制中断是否被执行;中断向量的不同可以分为向量中断和非向量中断,向量可以理解为中断的入口地址,向量中断是指中断都有不同的入口地址,根据不同的地址来响应不同的中断,非向量中断是指所有中断共享一个入口地址,根据相应的标志位来区分不同的中断。
Linux中断架构
对一般的单片机来讲,中断相对来讲简单一点,只需要编写中断处理程序即可。对于Linux系统来讲内核在调度任务的时候会遇到占用资源时间较长的事件,这时中断就会失去它的意义。所以Linux的中断是采用分开执行的方式进行,分为顶半部和底半部。顶半部主要处理紧急的事件,当中断来的时候直接读取相对应的寄存器的标志位,判断是哪个中断响应,然后判断完毕之后进行清除,并将中断加入到底半部的中断队列中。底半部承担了中断90%的任务,相对来讲比较耗时,并且可以被更高级的中断打断。这样设计不仅可以响应更多的中断,而且防止内核block更多的线程。
结尾
总而言之,中断的设计不仅让我们的系统更加完善而且让我们的设备更加人性化,更加适应不同的应用场景。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
值得推荐的五款免费网络漏洞扫描器
•
如何使用semanage和避免禁用SELinux?
•
4个使用频率超高的Linux监控工具,你值得拥有
•
Stm32时钟简介
•
STM32的DMA简介
•
Linux视频教程之如何有效学习Linux命令
•
用Bash读写文件|Linux中国
•
简单架设LINUXVPS服务器
•
2021最新100GJava学习资料,从入门到精通!
•
Linux5.14内核主线预计可与RaspberryPi400兼容
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表