位置: 编程技术 - 正文

linux中断的上半部和下半部详解(linux 中断 处理)

编辑:rootadmin

推荐整理分享linux中断的上半部和下半部详解(linux 中断 处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux中断系统,linux 中断 处理,linux中断类型,linux中断类型,linux 中断 处理,中断 linux,中断 linux,linux中断处理流程,内容如对您有帮助,希望把文章链接给更多的朋友!

与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快,可以服务更多的中断请求。但是,仅有"登记中断"是远远不够的,因为中断的事件可能很复杂。因此,Linux引入了一个下半部,来完成中断事件的绝大多数使命。下半部和上半部最大的不同是下半部是可中断的,而上半部是不可中断的,下半部几乎做了中断处理程序所有的事情,而且可以被新的中断打断!下半部则相对来说并不是非常紧急的,通常还是比较耗时的,因此由系统自行安排运行时机,不在中断服务上下文中执行。

Linux实现下半部的机制主要有tasklet和工作队列。

Tasklet基于Linux softirq,其使用相当简单,我们只需要定义tasklet及其处理函数并将二者关联:

然后,在需要调度tasklet的时候引用一个简单的API就能使系统在适当的时候进行调度运行:

此外,Linux还提供了另外一些其它的控制tasklet调度与运行的API:

我们先来看一个tasklet的运行实例,这个实例没有任何实际意义,仅仅为了演示。它的功能是:在globalvar被写入一次后,就调度一个tasklet,函数中输出"tasklet is executing":

下半部分的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。在Linux2.6的内核中存在三种不同形式的下半部实现机制:软中断,tasklet和工作队列。

下面将比较三种机制的差别与联系。

软中断:

1、软中断是在编译期间静态分配的。

2、最多可以有个软中断。

3、软中断不会抢占另外一个软中断,唯一可以抢占软中断的是中断处理程序。

linux中断的上半部和下半部详解(linux 中断 处理)

4、可以并发运行在多个CPU上(即使同一类型的也可以)。所以软中断必须设计为可重入的函数(允许多个CPU同时操作),

因此也需要使用自旋锁来保护其数据结构。

5、目前只有两个子系直接使用软中断:网络和SCSI。

6、执行时间有:从硬件中断代码返回时、在ksoftirqd内核线程中和某些显示检查并执行软中断的代码中。

tasklet:

1、tasklet是使用两类软中断实现的:HI_SOFTIRQ和TASKLET_SOFTIRQ。

2、可以动态增加减少,没有数量限制。

3、同一类tasklet不能并发执行。

4、不同类型可以并发执行。

5、大部分情况使用tasklet。

工作队列:

1、由内核线程去执行,换句话说总在进程上下文执行。

2、可以睡眠,阻塞。

gsettings简介及常用操作介绍 先尽力简单地说明一下几个名词之间的关系。gsettings提供了对GSetings的命令行操作。GSetings实际上是一套高级API,用来操作dconf。dconf存储着GNOME3的配置,

linux动态增加LV空间的方法 一直都说LVM可以在线增加空间,一直都没有试过下面小试一下:1.增加硬盘2.创建PV3.添加PV到VG4.扩展LV1.增加硬盘该干嘛干嘛添加后需要重启(有知道不

Linux poll机制详细讲解 所有的系统调用,基于都可以在它的名字前加上sys_前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sy

标签: linux 中断 处理

本文链接地址:https://www.jiuchutong.com/biancheng/361988.html 转载请保留说明!

上一篇:linux命令eval的用法讲解(linux eval命令)

下一篇:linux动态增加LV空间的方法(linux如何加载动态库)

  • 增值税发票综合服务平台怎么下载
  • 税控盘这个月没有反写会怎么样
  • 专票小数点没打印齐能用吗
  • 税务局代个人开发票交什么税
  • 以前年度损益调整影响哪个科目
  • 员工向公司借的备用金到年底未还清
  • 赠送样品视同销售增值税该怎么做账务处理呢?
  • 什么叫经纪代理服务
  • 购买脚手架报价单
  • 跨年度销售退回所得税
  • 购买货物待销售会计分录
  • 中国铁路建设债券
  • 试分析营改增的重大意义
  • 开出的发票什么情况下需要补税?
  • 小规模纳税人隔月可以作废发票吗
  • 财产保险合同的主体变更
  • 6种个人所得税违规手段,财务人再小心别跳坑!
  • 外币报表未分配利润折算
  • 办公室设计费取费标准一览表
  • 会计如何做调整会计分录
  • 银行授信额度如何分配
  • 小规模纳税人0税率
  • 收到质量索赔款怎么入账
  • 电子汇款收入是什么意思
  • 企业资产转移是什么意思
  • 资金筹集业务的会计处理
  • 跨年如何冲减预提费用?
  • 跨年度的费用发票可以入账吗
  • 银行承兑电子汇票到期要怎么操作
  • 超市库存商可以分为几大类
  • PHP:mb_ereg_replace_callback()的用法_mbstring函数
  • 预付购买材料款会引起会计等式
  • kpupgrader.exe是什么
  • php轻松入门视频教程
  • 金融行业如何征收营业税
  • 企业购入设备涉及的税种
  • anaconda更改虚拟环境路径
  • 无形资产的会计处理
  • 一键部署web应用
  • 危废处理需要哪些手续
  • php能开发微信小程序吗
  • wordpress all in one
  • 采购的原材料无保质期
  • 怎样网上抄税
  • 工会经费和残保金不交有什么影响
  • 公司购买绿植入什么科目
  • 社保减免财务账务处理
  • 其他资本公积可以冲减吗
  • 个税免税部分
  • sql2008收缩日志文件
  • 增值税现代服务业包括哪些内容
  • 残疾人就业保证金上年工资总额是说上一年度么
  • 如果租房没有合同怎么办
  • 支付资金占用费的承诺函怎么写
  • 带息票据贴现时,应将其贴现息直接计入
  • 核定征收也需要报税务报表吗?
  • 主营业务毛利率和毛利率
  • 营改增后建筑业开票规定
  • 年底结账会计处理
  • linux给root权限
  • centos 命令大全
  • 深度操作系统中的生活服务类软件有
  • centos6.5mini安装教程
  • win8驱动在哪个文件夹
  • win10使用技巧有什么用
  • win8怎么看windows
  • linux cr3
  • 高危KB3045645!Win7/8.1别安装这个补丁
  • win10系统怎么锁定屏幕
  • 铁嘴银牙剧情简介
  • mac vscode opengl
  • ExtJS 2.0 GridPanel基本表格简明教程
  • jquery编程
  • android 布局
  • 推荐一篇故事并说明理由
  • python利用while循环求1+2+3......+n的和
  • 江苏小孩医保网上缴费
  • 酒店,旅店的营业范围
  • 留学生在美国买房子需要什么条件
  • 国办函和国办发
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设