众筹|浅析Linux中断系统
文章图片
我们日常使用的电子产品 , 对于稍微复杂一点的系统来讲 , 都少不了中断系统 。 中断的出现避免了任务轮询带来的时间延时 , 让任务执行起来更加快捷 , 实时性更强 。 今天小编就来聊聊Linux系统的中断 。
定义及分类中断一般是指处理器(CPU)在执行程序的过程中 , 发生了某一些突发的事件 , 这时CPU会暂停正在执行的程序 , 转而去处理突发事件 , 处理完毕后又返回原来的程序断点处继续执行之前的程序 。 中断可以根据不同的方式进行分类 , 根据其来源可分为内部中断和外部中断 , 也就是中断是不是由CPU的内部产生的 , 比如内部计数器的溢出;根据中断是否可以屏蔽可以分为可屏蔽中断和不可屏蔽中断 , 通过设置中断控制器来控制中断是否被执行;中断向量的不同可以分为向量中断和非向量中断 , 向量可以理解为中断的入口地址 , 向量中断是指中断都有不同的入口地址 , 根据不同的地址来响应不同的中断 , 非向量中断是指所有中断共享一个入口地址 , 根据相应的标志位来区分不同的中断 。
【众筹|浅析Linux中断系统】
Linux中断架构对一般的单片机来讲 , 中断相对来讲简单一点 , 只需要编写中断处理程序即可 。 对于Linux系统来讲内核在调度任务的时候会遇到占用资源时间较长的事件 , 这时中断就会失去它的意义 。 所以Linux的中断是采用分开执行的方式进行 , 分为顶半部和底半部 。 顶半部主要处理紧急的事件 , 当中断来的时候直接读取相对应的寄存器的标志位 , 判断是哪个中断响应 , 然后判断完毕之后进行清除 , 并将中断加入到底半部的中断队列中 。 底半部承担了中断90%的任务 , 相对来讲比较耗时 , 并且可以被更高级的中断打断 。 这样设计不仅可以响应更多的中断 , 而且防止内核block更多的线程 。
结尾总而言之 , 中断的设计不仅让我们的系统更加完善而且让我们的设备更加人性化 , 更加适应不同的应用场景 。
推荐阅读
- 众筹|日本人真会玩!3天众筹60万元来造“机器猫”,会说话摇尾巴的那种
- wse2|中钨优品|?二硒化钨浅析
- 地平论|苏格兰男子众筹,希望将地平论者送上太空,亲眼看到地球是球状
- 汉字为何比英文强?浅析汉字发展
- 汉语|浅析网络流行语的缩略现象
- Games游戏|众筹失败的游戏续作,没有游戏的游戏,创意秒杀许多垃圾游戏
- 皮肤|夺钟汉良初吻的甜妹女神,50岁满脸纹路、亿万网友众筹求do脸
- 浅析工业显示屏价格和普通显示屏价格差
- 小米有品|小米有品众筹可视吸黑头仪:边看边吸 非常解压
- NGA玩家社区|魔兽世界9.0:装备压缩后的主属性与护甲机制浅析