600|3

59

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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

大家好,我(被迫)来更新第一章了。虽然也是做了题目,但是知识已经光滑地从我脑子上面滑过,我记不清发生了什么了。这里先给大家放一下本书的源码社区链接吧,就是本书跟练实战的实验平台。

runninglinuxkernel_5.0: 奔跑吧linux内核第二版(卷1,卷2,入门篇) 实验平台 (gitee.com)

 

然后在gitee的介绍主页会引导你去关注公众号,回复Linux2之后就会给你一个度盘链接,可以下载免费的资料。有虚拟机镜像,免费视频,所有的插图,还有一些勘误的部分。虚拟机镜像是给我们windows系统的朋友使用的,mac book的朋友使用GPL V2免费授权的virtualbox软件。然后就可以挂载到虚拟机上面了,虚拟机这玩意你懂的,就是内存不够的时候比较折腾人,一顿操作下来我的盘又开始告急了。

 

然后就是读书的部分,大概摘抄一下几个概念的总结吧。自旋锁和排队自旋锁,还有信号量。

 

自旋锁在同一时刻只能被一个内核代码路径持有。如果另外一个内核代码路径试图获取一个已经被持有的自旋锁,那么该内核代码路径需要一直忙等待,直到自旋锁持有者释放该锁。如果该锁没有被其他内核代码路径持有(或者称为锁争用),那么可以立即获得该锁。自旋锁的特性如下。

忙等待的锁机制。操作系统中锁的机制分为两类,一类是忙等待,另一类是睡眠等待。自旋锁属于前者,当无法获取自旋锁时会不断尝试,直到获取锁为止。 同一时刻只能有一个内核代码路径可以获得该锁。 要求自旋锁持有者尽快完成临界区的执行任务。如果临界区中的执行时间过长,在锁外面忙等待的CPU比较浪费,特别是自旋锁临界区里不能睡眠。 自旋锁可以在中断上下文中使用。

 

 

排队自旋锁,继承了MCS算法到自旋锁中,有效解决CPU高速缓存行颠簸问题。没有增加spinlock数据结构的大小,把val分成多个域。

当至于两个CPU试图获取自旋锁时候,使用pending域解决问题。第二个CPU只需要设置pending域然后自旋等待锁释放。当有第三个或者更多CPU来争抢时候需要使用额外MCS节点。第三个CPU会自旋等待锁被释放,即pending域和loscked域被清零,而四个以后的CPU在MCS节点中自旋,等待locked域被置为1,等到前继结点把locked控制器过继给自己才有机会自旋等待自旋锁的释放。

 

信号量有一个有趣的特点,它可以同时允许任意数量的锁持有者。信号量初始化函数为sema_init(struct semaphore *sem, int count),其中count的值可以大于或等于1。当count大于1时,表示允许在同一时刻至多有count个锁持有者,这种信号量叫作计数信号量(counting semaphore);当count等于1时,同一时刻仅允许一个CPU持有锁,这种信号量叫作互斥信号量或者二进制信号量(binary semaphore)。在Linux内核中,大多使用count值为1的信号量。相比自旋锁,信号量是一个允许睡眠的锁。信号量适用于一些情况复杂、加锁时间比较长的应用场景,如内核与用户空间复杂的交互行为等。

查看本帖全部内容,请登录或者注册
此帖出自Linux开发论坛

最新回复

这个相当于组成了一个新的电脑,各种配置也得跟上啊   详情 回复 发表于 2024-4-26 14:46
点赞 关注

回复
举报

6713

帖子

10

TA的资源

版主

沙发
 

一顿操作下来我的盘又开始告急,确实为了装虚拟机分出来一个比较极限的100g盘来,最后感觉用的也不会太多

此帖出自Linux开发论坛

点评

不知道为什么虚拟机就是这么大呢  详情 回复 发表于 2024-4-26 14:41
 
个人签名

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

 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
秦天qintian0303 发表于 2024-4-22 09:24 一顿操作下来我的盘又开始告急,确实为了装虚拟机分出来一个比较极限的100g盘来,最后感觉用的也不会太多

不知道为什么虚拟机就是这么大呢


此帖出自Linux开发论坛

点评

这个相当于组成了一个新的电脑,各种配置也得跟上啊  详情 回复 发表于 2024-4-26 14:46
 
 
 

回复

6713

帖子

10

TA的资源

版主

4
 
crimsonsnow 发表于 2024-4-26 14:41 不知道为什么虚拟机就是这么大呢

这个相当于组成了一个新的电脑,各种配置也得跟上啊

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

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

 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
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
快速回复 返回顶部 返回列表