内核中的竞态产生的原因和解决方法
产生原因:
由于多进程对临界资源的抢占
根本原因:
1、对于单核处理器而言,内核支持抢占就会出现竞态
2、对于多核处理器而言,是核与核的竞态
3、进程与中断间存在竞态
4、arm开发板不会出现中断与中断间的竞态(目前);NVIC支持中断的嵌套,存在中断间的竞态
解决方法:
1、中断屏蔽
2、自旋锁
3、信号量
4、互斥体
5、原子操作
1、中断屏蔽
就是关闭中断,不过关闭的时间是纳秒(ns)级的;
2、自旋锁
一个进程抢占了临界资源(上锁),别的进程会在原地等待(自旋状态),直到解锁;
特点:
1、自旋状态会消耗cpu资源
2、自旋锁会出现死锁现象(如两次上锁,一次解锁)
3、自旋锁支持进程的上下文切换,也支持中断的上下文切换(由于特点4和中断屏蔽)
4、自旋锁适用于临界资源较小的场景,锁内不能有耗时操作,也不能有copy_from/to_user此类函数(由于特点1)
3、信号量
原理类似自旋锁,但有所区别,信号量的+-来抢占临界资源,抢占不到资源的进程会进入休眠态;
特点:
1、休眠态不消耗cpu资源,但是运行态<--->休眠态的过程中会消耗cpu资源
2、信号量不会出现死锁现象
3、信号量支持进程的上下文切换,但不支持中断的上下文切换
4、不论临界资源较大或较小,信号量都适用
4、互斥体
与信号量极度相似,区别在于互斥体不是立即进入休眠态,它会等待一段时间,如果这段时间内临界资源被释放,他就不进入休眠态,不然才进入休眠态;
5、原子操作
将进程占用临界资源这个过程看作一个整体来防止竞态的出现,内部是个变量(原子变量),通过对原子变量的+-1与0比较来确定对临界资源的占用。
相关文章:
内核中的竞态产生的原因和解决方法
产生原因: 由于多进程对临界资源的抢占 根本原因: 1、对于单核处理器而言,内核支持抢占就会出现竞态 2、对于多核处理器而言,是核与核的竞态 3、进程与中断间存在竞态 4、arm开发板不会出现中断与中断间的竞态(目前&am…...
【微服务】Elasticsearch文档索引库操作(二)
🚗Es学习第二站~ 🚩Es学习起始站:【微服务】Elasticsearch概述&环境搭建(一) 🚩本文已收录至专栏:微服务探索之旅 👍希望您能有所收获 一.索引库操作 索引库就类似数据库表,mapping映射就类…...
【论文速递】NAACL2022-DEGREE: 一种基于生成的数据高效事件抽取模型
【论文速递】NAACL2022-DEGREE: 一种基于生成的数据高效事件抽取模型 【论文原文】:DEGREE A Data-Efficient Generation-Based Event Extraction Mode 【作者信息】:I-Hung Hsu , Kuan-Hao Huang, Elizabeth Boschee ÿ…...
C++类和对象(下)
✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 I do not believe in taking the right decision. I take a decision and make it right. 我不相信什么正确的决定。我都是先做决定,然后把…...
Java常见的六种线程池、线程池-四种拒绝策略总结
点个关注,必回关 一、线程池的四种拒绝策略: CallerRunsPolicy - 当触发拒绝策略,只要线程池没有关闭的话,则使用调用线程直接运行任务。 一般并发比较小,性能要求不高,不允许失败。 但是,由于…...
Node=>Express中间件分类 学习4
1.中间件分类 应用级别的中间件路由级别的中间件错误级别的中间件Express 内置的中间件第三方的中间件 通过app.use()或app.get()或app.post()绑定到app实力上的中间件,叫做应用级别的中间件 …...
在阿里当外包,是一种什么工作体验?
上周和在阿里做外包的朋友一起吃饭,朋友吃着吃着,就开启了吐槽模式。 他一边喝酒一边说,自己现在做着这份工作,实在看不到前途。 看他状态不佳,问了才知道,是手上的项目太磨人。 他们现在做的项目&#…...
Vue3快速入门【二】
Vue3快速入门一、传值父传子,子传父v-model二、插槽2.1、匿名插槽2.2、具名插槽2.3、插槽作用域2.4、插槽作用域案例2.4.1、初始布局2.4.2、插槽使用2.4.3、点击编辑按钮获取本行数据(插槽作用域的使用)2.4.4、类型书写优化2.4.5、全局接口抽…...
C++-类和对象(上)
类和对象(上)一,构造函数1,概念2,特性二,析构函数1,概念2,特性三,拷贝构造1,概念2,特性四,运算符重载1,概念2,…...
CAPL(vTESTStudio) - DoIP - TCP接收_04
TCP接收 函数介绍 TcpOpen函数...
联合培养博士经历对于国内就业有优势吗?
2023年国家留学基金委(CSC)申请在即,很多在读博士在关心申报的同时,也对联培经历能否有助于国内就业心中存疑,故此知识人网小编重点解答此问题。之前,我们在“CSC联合培养-国内在读博士出国的绝佳选择”一文…...
测试左移之需求质量
测试左移的由来 缺陷的修复成本逐步升高 下面是质量领域司空见惯的一张图,看图说话,容易得出:大部分缺陷都是早期引入的,同时大部分缺陷都是中晚期发现的,而缺陷发现的越晚,其修复成本就越高。因此&#…...
【数据结构初阶】第三节.顺序表详讲
文章目录 前言 一、顺序表的概念 二、顺序表功能接口概览 三、顺序表基本功能的实现 四、四大功能 1、增加数据 1.1 头插法: 1.2 尾插法 1.3 指定下标插入 2、删除数据 2.1 头删 2.2 尾删 2.3 指定下标删除 2.4 删除首次出现的指定元素 3、查找数据…...
新手小白适合做跨境电商吗?
今天的跨境电商已经逐渐成熟,靠运气赚钱的时代早已过去,馅饼不可能从天上掉下来,尤其是你想做一个没有货源的小白劝你醒醒。做跨境电商真的不容易,要想做,首先要分析自己是否适合做。米贸搜整理了以下资料,…...
Python搭建自己[IP代理池]
IP代理是什么:ip就是访问网页数据服务器位置信息,每一个主机或者网络都有一个自己IP信息为什么要使用代理ip:因为在向互联网发送请求中,网页端会识别客户端是真实用户还是爬虫程序,在今天以互联网为主导的世界中&#…...
pandas——plot()方法可视化
pandas——plot()方法可视化 作者:AOAIYI 创作不易,如果觉得文章不错或能帮助到你学习,记得点赞收藏评论哦 在此,感谢你的阅读 文章目录pandas——plot()方法可视化一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤…...
【Three.js基础】坐标轴辅助器、requestAnimationFrame处理动画、Clock时钟、resize页面尺寸(二)
🐱 个人主页:不叫猫先生 🙋♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…...
C++之完美转发、移动语义(forward、move函数)
完美转发1. 在函数模板中,可以将自己的参数“完美”地转发给其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。2. C11标准引入了右值引用和移动语义,所以,能否实现完美转发&…...
LeetCode刷题系列 -- 48. 旋转图像
给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix [[1,2,3],[4,5,6],[7,8,9]]输出&#…...
在多线程环境下使用哈希表
一.HashTable和HashMapHashTable是JDK1.0时创建的,其在创建时考虑到了多线程情况下存在的线程安全问题,但是其解决线程安全问题的思路也相对简单:在其众多实现方法上加上synchronized关键字(效率较低),保证…...
OpenClaw+GLM-4.7-Flash:个人博客内容自动生成与发布
OpenClawGLM-4.7-Flash:个人博客内容自动生成与发布 1. 为什么选择这个技术组合 去年夏天,我发现自己陷入了写作瓶颈——每周要产出3篇技术博客,但80%的时间都消耗在资料收集和格式调整上。直到发现OpenClawGLM-4.7-Flash这个组合ÿ…...
apt-offline终极指南:离线环境下的APT包管理解决方案
apt-offline终极指南:离线环境下的APT包管理解决方案 【免费下载链接】apt-offline Offline APT Package Manager 项目地址: https://gitcode.com/gh_mirrors/ap/apt-offline 你是否曾面临这样的困境?服务器在安全隔离的网络中,无法直…...
RWKV7-1.5B-g1a多场景落地:HR部门用它自动生成岗位JD要点与面试问题清单
RWKV7-1.5B-g1a多场景落地:HR部门用它自动生成岗位JD要点与面试问题清单 1. 为什么HR部门需要AI助手 招聘工作中有大量重复性文案工作,比如: 为不同岗位编写职位描述(JD)设计结构化面试问题整理岗位核心能力要求制作候选人评估标准 传统方…...
【STM32-HAL库】火焰传感器实战:从原理到智能火灾预警系统搭建(基于STM32F407ZGT6)
1. 火焰传感器原理与选型指南 火焰传感器作为火灾预警系统的"眼睛",其核心原理是利用光电效应检测火焰特有的光谱特征。我经手过的工业项目中,90%的火灾误报都源于传感器选型不当。市面上常见的火焰传感器主要分为三类: 红外型&…...
物联网水产养殖监控系统:智能联动,实现养殖设备自动调控
一、应用背景 水产养殖是我国农业经济的重要组成部分,传统养殖模式长期依赖人工巡检、经验判断,存在诸多难以破解的行业痛点,严重制约养殖效益与产业可持续发展。随着物联网、大数据、边缘计算、无线通信技术的成熟,搭建智能化、数…...
3分钟解决机械键盘连击问题:终极开源修复工具完整指南
3分钟解决机械键盘连击问题:终极开源修复工具完整指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾经遇到过这样…...
火狐浏览器必备:Z-Library Finder扩展安装与使用全攻略(附最新下载链接)
火狐浏览器高效获取电子书资源:Z-Library Finder扩展深度指南 在数字阅读日益普及的今天,电子书资源获取工具成为许多阅读爱好者的刚需。对于火狐浏览器用户而言,Z-Library Finder扩展无疑是一款能够极大提升电子书搜索效率的神器。这款工具专…...
3分钟快速找回QQ号:手机号逆向查询终极指南
3分钟快速找回QQ号:手机号逆向查询终极指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记QQ号而无法登录重要应用?或者需要验证手机号与QQ的绑定关系?今天我要介绍的这款Pyth…...
一种路径优化和速度优化算法实现(仿照百度Apollo方案),只提供代码,有相关的readme文...
一种路径优化和速度优化算法实现(仿照百度Apollo方案),只提供代码,有相关的readme文件。 自动驾驶 ,路径优化,速度优化,pnc。 的代码最近在折腾自动驾驶的路径规划模块,发现实际落地…...
ICRS-101机器人手动控制API协议设计与嵌入式实现
1. ICRS_101_API 项目概述ICRS_101_API 是一套面向教育与科研场景的机器人手动控制接口规范,专为 ICRS-101 型教学机器人平台设计。该 API 并非独立运行的固件或中间件,而是一组定义清晰、硬件无关的通信协议与软件抽象层,其核心目标是为上位…...
