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

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

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


7.1 Linux同步概述

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

临界区

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

问题:

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

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

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

思考:

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


7.2 内核同步机制

原子操作已经讲过.

中断屏蔽:

自旋锁:(spin lock)

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

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

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

信号量:

P/V操作

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

参考:

内核中的调度与同步


相关推荐
顶点多余几秒前
Linux中进程间通信 ---管道篇
linux·运维·服务器
zzzsde3 分钟前
【Linux】进程控制(2):进程等待&&进程替换
linux·服务器·网络
moxiaoran57536 分钟前
使用springboot+flowable实现一个简单的订单审批工作流
java·spring boot·后端
longxibo8 分钟前
【Ubuntu datasophon1.2.1 二开之八:验证实时数据入湖】
大数据·linux·clickhouse·ubuntu·linq
IT_陈寒12 分钟前
JavaScript 闭包陷阱:90%开发者踩过的5个坑,你中招了吗?
前端·人工智能·后端
Java面试题总结13 分钟前
go从零单排之方法
开发语言·后端·golang
ZHOUPUYU18 分钟前
PHP性能分析与调优:从定位瓶颈到实战优化
开发语言·后端·html·php
稻草猫.22 分钟前
MyBatis-Plus高效开发全攻略
java·数据库·后端·spring·java-ee·mybatis·mybatis-plus
恋红尘24 分钟前
K8S 服务发现-叩丁狼
linux·docker·kubernetes
IMPYLH27 分钟前
Linux 的 dd 命令
linux·运维·服务器