源码技术
php
java
python
Linux
当前位置:
首页
>
Linux
>linux内核源码中并发与竞争原理分析
linux内核源码中并发与竞争原理分析
2026-10-11 08:02:35
linux内核源码中并发与竞争原理分析
一、概念
执行单元
在操作系统中可以执行的代码有
内核态线程
、
中断处理函数
,这些代码我们称为操作系统中的可执行单元。
共享资源
可以被多个执行单元访问的资源称为共享资源
临界资源
临界资源
是一次仅允许一个执行单元使用的共享资源。
临界区
每个执行单元访问临界资源的那段代码称为临界区(criticalsection)。
SMP
SMP是一种紧耦合、共享存储的系统模型,它的特点是
多个CPU
使用共同的系统总线,因此可访问共同的外设和储存器。
二、什么是并发与竞态
并发(Concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(RaceConditions)
并发:多个执行单元同时进行或多个执行单元微观串行执行,宏观并行执行
竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量)的访问而导致的竞争状态竞态形成的三个条件:
必须有多个执行单元:中断(软中断、硬中断)、内核线程
必须有共享资源: 全局变量
必须同时访问:资源的同时访问
三、并发产生的场景
3.1、多CPU之间的并发
CPU_A 运行的程序访问临界资源和CPU_B运行的程序访问是同一个临界资源,产生竞态。
3.2、单CPU之间进程间的并发
由于现在的操作系统都是多任务的,即多进程,一个进程在运行的时候,不是一直占用CPU资源直到它结束,而是每个进程都有一个时间片,如果时间片用完了操作系统就调度另外一个进程执行。进程A和进程B访问是同一个临界资源,此时产生竞态
3.3、单CPU上进程和中断之间的并发
在一个进程执行的过程中,如果硬件上产生了中断请求,此时操作系统必须放弃进程的执行,去执行中断处理函数,进行中断处理。
此时进程访问的临界资源和中断访问的临界资源是同一个资源产生竞态。
3.4、单CPU上中断之间的并发
在Linux系统中中断上半部函数执行的时候是屏蔽中断的,下半部函数执行的时候中断是使能的,如果在下半部函数执行的过程中,有一个硬件中断到来,打断了下半部的函数,恰好这个中断访问的临界资源和下半部访问的是同个临界资源,这样就产生了竞态。
3.5、多CPU中断与中断之间
CPU A产生了中断执行的中断处理函数与CPU_B产生了中断执行的中断处理函数,访问的临界资源是同一个临界资源,这样就产生了竞态。
四、并发与竞争
主要归结为三类:
进程与进程之间:单核上的抢占,多核上的SMP1.
进程与中断之间:中断又包含了上半部与下半部,中断总是能打断进程的执行流
中断与中断之间:外设的中断可以路由到不同的CPU上,它们之间也可能带来竞态
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:596563534@qq.com 。
一图看懂Pythonweb全栈开发技术栈
【网络安全】五个核弹级漏洞三周杀到:Linux 内核三连 + NGINX 十八年 Critical!!!AI 挖洞工具怎么选?
最新文章
一图看懂Pythonweb全栈开发技术栈
Linux内核高危漏洞曝光:SSH密钥与root密码可被轻易窃取、艾滋病疫苗产品开发获国家立项、比亚迪全固态电池1218k...
带你玩转Linux网络服务-DHCP
Linux内核编译三板斧
学计算不会Linux到底行不行?
【python 编程三级通关秘籍】从基础到进阶的关键一跃!
科研绘图配色 | 用 Python 画出马卡龙色
7python之专家诊断慢查询及并发执行研究
嵌入式 Linux U-Boot 完整启动流程 + 各阶段作用
螺旋矩阵超细讲解,逐行吃透 Python 刷题代码
热门文章
119-基于Python的各类企业排行数据可视化分析系统
Linux :一部从个人兴趣项目演变为全球基础设施的传奇
Linux学习笔记day1
AI时代,你的Linux服务器真的安全吗?一份让黑客绝望的安全加固指南
学习python根本不用慌
Linux GDB调试命令详解|后端必备调试工具
Python学习是第一课 Python介绍
普通用户1行命令拿root?Linux又爆史诗级漏洞!| Dirty Frag全解析:覆盖9年内核版本 全主流发行版中招(附PO
Linux老鸟私藏命令清单、建议收藏
背完linux常用命令,让你解放双手
随机文章
10个月宝宝每天需要喝多少奶粉?
Ollama在Linux上安装的详细记录
别只盯Python!Node.js才是当下AI落地的“关键推手”- AI基础知识之六
【C#vsPython·第一阶段】 字符串处理:Python 让你少写一半代码
遇到Python模块导入报错就和女朋友一样,别讲道理,先把环境捋一遍
零基础学Python|别怕,这本“保姆级”电子书带你轻松入门!
150道Python编程习题
完整350道Python代码题(附解析)
小白必看|Python爬虫能干啥?一篇讲透+零门槛上手,省时间、能变现!
小白也能学会的Python表格处理教程
分享Python150个常用函数,小白必备!