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

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

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


7.1 Linux同步概述

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

临界区

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

问题:

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

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

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

思考:

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


7.2 内核同步机制

原子操作已经讲过.

中断屏蔽:

自旋锁:(spin lock)

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

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

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

信号量:

P/V操作

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

参考:

内核中的调度与同步


相关推荐
程序员书虫5 分钟前
Spring 依赖注入一次讲透:`@Autowired`、`@Resource`、`@Qualifier`、`@Primary` 到底怎么选
java·后端·面试
Lugas Luo13 分钟前
DVR 存储工具深度分析报告 (测试与产品视角)
linux·嵌入式硬件·测试工具
SamDeepThinking21 分钟前
Spring Bean作用域的设计与使用
java·后端·面试
杨云龙UP23 分钟前
ODA-Oracle实践记录:通过Navicat导出导入表CSV文件并清理重复数据,处理OA待办延迟刷新问题_20260416
linux·运维·服务器·数据库·sql·mysql·oracle
前端一课31 分钟前
《NestJS 从入门到资深》书稿(Markdown)
后端
Memory_荒年36 分钟前
Java + FFmpeg:从“玩具”到“工业级”的音视频实战
后端
Oliver_LaVine40 分钟前
java项目启动报错:CreateProcess error=206, 文件名或扩展名太长
java·linux·jenkins
D4c-lovetrain1 小时前
Linux个人心得27 (redis哨兵模式实战)
linux·redis·bootstrap
楼田莉子2 小时前
Linux网络:IP协议
linux·服务器·网络·c++·学习·tcp/ip