1048|5

59

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

《奔跑吧Linux内核2:调试与案例分析》读书笔记 初读第二章 [复制链接]

其实我读完整本书,一开始感觉前面几章概念性的解释部分比后面的实操部分困难。但是后来,在做题的时候,我有一道题一开始没有找对方法,就是arm64的栈架构那道题目(注,答案其实在第一卷)然后我还想尝试去读一下代码,准备用代码来还原图形结构,我就感觉读代码也是真的困难。很多时候学习上做的只是一些很浅的修修补补的工作,真正实操起来,就要有种恨自己怎么不是冯诺依曼转世的感觉了。

如果有人问,那你看很多字的解释部分也晕,你看代码也晕,你什么时候不晕?可能我看整本书的时候都是晕的吧= =,这一定是最近的甲流的错,不是我的错。

所以说有时候读书还是得迎难而上,但也要学会投机取巧。

然后就来摘抄一点第二章的概念咯,第二章也是关于中断的部分,中断管理。

中断其实应该是做工程师很早会接触的一个概念吧,比如第一次开始学单片机的时候,就会学到的按键中断实验,就是非常典型的硬件中断。

这一章我印象比较深刻的是中断号的这个概念。

在Linux系统中注册中断接口函数使用的是Linux软件内核中断号(irq号)而不是硬件中断号。因此硬件中断号和这个虚拟号是有映射关系的。

至于为什么印象深刻大概是做题涉及了吧...

再摘抄一下软中断和tasket的概念小结

软中断是Linux内核中最常见的一种下半部机制,适合系统对性能和实时响应要求很高的场合,如网络子系统、块设备、高精度定时器、RCU等。

关于软中断,注意以下几点。 软中断类型是静态定义的,Linux内核不希望驱动开发者新增软中断类型。 软中断的回调函数在开中断环境下执行。 同一类型的软中断可以在多个CPU上并行执行。以TASKLET_SOFTIRQ类型的软中断为例,多个CPU可以同时tasklet_schedule,并且多个CPU也可能同时从中断处理返回,然后同时触发和执行TASKLET_SOFTIRQ类型的软中断。

假如有驱动开发者要新增一个软中断类型,那么软中断的处理程序需要考虑同步问题。 软中断的回调函数不能睡眠。 软中断的执行时间点是在中断返回前,即退出硬中断上下文时,首先检查是否有等待的软中断,然后再检查是否需要抢占当前进程。因此,软中断上下文总是抢占进程上下文。

tasklet是基于软中断的一种下半部机制。 tasklet可以静态定义,也可以动态初始化。 tasklet是串行执行的。一个tasklet在tasklet_schedule()函数执行时会绑定某个CPU的tasklet_vec链表,它必须在该CPU上执行完tasklet的回调函数才会和该CPU松绑。 TASKLET_STATE_SCHED和TASKLET_STATE_RUN标志位巧妙地构成了串行执行。

说实话还是没看懂tasket是什么...

此帖出自Linux开发论坛

最新回复

感觉楼主分析的内容还是概念性的东西,比较抽象,需要慢慢了解   详情 回复 发表于 2024-4-22 16:40
点赞 关注

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

说实话还是没看懂tasket是什么...

哈哈,再看两遍,继续大家来分享哈

此帖出自Linux开发论坛
 
 

回复

6534

帖子

9

TA的资源

版主

板凳
 

概念性的解释部分比后面的实操部分困难主要原因最开始接触对其没有任何概念,思维惯性让你往习惯的方向跑偏

此帖出自Linux开发论坛
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 

就是单纯的任务。

一个完整的东西是需要 中断+任务处理,现在把中断先处理了,释放中断,避免长时间不响应其他中断,提高实时性,剩下单纯的任务,放到链里面交给调度就好了。

此帖出自Linux开发论坛

点评

谢谢你的指教!很多直接引用的外文名词有时候让理解难度上了一个层次  详情 回复 发表于 2024-4-26 14:43
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

755

帖子

5

TA的资源

纯净的硅(高级)

5
 

感觉楼主分析的内容还是概念性的东西,比较抽象,需要慢慢了解

此帖出自Linux开发论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

6
 
freebsder 发表于 2024-4-22 10:00 就是单纯的任务。 一个完整的东西是需要 中断+任务处理,现在把中断先处理了,释放中断,避免长时间不响 ...

谢谢你的指教!


很多直接引用的外文名词有时候让理解难度上了一个层次


此帖出自Linux开发论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表