Linux内核分析与应用7-内核同步

本系列是对 陈莉君 老师 Linux 内核分析与应用 的学习与记录。讲的非常之好,推荐观看

留此记录,蜻蜓点水,可作抛砖引玉


7.1 Linux同步概述

竞态条件,也称竞争条件,race condition

临界区

原子操作,Linux专门有一个atomic_t结构体

问题:

在多核系统中遇到原子操作,在系统层面上原子操作还是原子的吗?在核级还是原子的吗?

死锁:所有的任务都在相互等待,但他们永远不会释放已占有的资源,于是任何任务都无法继续执行

死锁的避免: 加锁的顺序是关键

思考:

死锁是一种小概率事件还是大概率事件?如果内核出现死锁,该如何应对?


7.2 内核同步机制

原子操作已经讲过.

中断屏蔽:

自旋锁:(spin lock)

专为多处理器并发而引入的一种锁,在内核中大量应用于中断处理部分

在短期时间内,进行轻量级的锁定

同一时刻,只能为一个处理器所持有, 防止多处理器并发访问临界区,防止内核抢占造成的竞争

信号量:

P/V操作

经典实例: 生产者-消费者并发实例

参考:

内核中的调度与同步


相关推荐
Thera7773 分钟前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++
阿梦Anmory8 分钟前
Ubuntu配置代理最详细教程
linux·运维·ubuntu
爬山算法10 分钟前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
云姜.23 分钟前
线程和进程的关系
java·linux·jvm
WeiXiao_Hyy28 分钟前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
苏渡苇34 分钟前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
long3161 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
小Tomkk1 小时前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊1 小时前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
木卫二号Coding1 小时前
第七十九篇-E5-2680V4+V100-32G+llama-cpp编译运行+Qwen3-Next-80B
linux·llama