码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RTOS编程中的原子操作


    RTOS编程中的原子操作

    一、什么是原子操作

            原子操作(Atomic operation)是指一种不可分割的操作,在整个操作过程中都不会被打断。

    二、为什么需要原子操作

            在一些可能 会被系统调度、中断等事件打断的场景的编程中,我们需要原子操作的支持来保障操作的原子性。

            同时原子操作还可以在多线程编程中,保障多线程间的并发执行不出现数据竞争问题;在一些程序的同步、并发控制中,提供有效支撑。

            在RTOS编程中,为了实现对临界区资源进行保护,常规的会通过 开关全局中断,调度器上锁等方式来进行处理。如果采用原子操作来替代这些处理,就能够大幅度提高临界区代码的执行效率、提升系统的运行效率,降低编程的复杂度。

    三、RTOS是如何支持原子操作的

            一般来说RTOS为了实现原子操作支持,都会借助芯片平台的硬件指令来进行,并为用户侧提供原子操作函数来供用户使用。

            因为RTOS的原子操作支持依赖具体平台的原子操作指令与相关指令来实现,所以哪些平台有该支持呢?常规来说,采用ARM指令集的绝大多数内核、采用 RV32 指令集的大部分内核、采用 RV64 指令集的大部分内核都提供原子操作支持。

    • 硬实现:

            所谓硬实现就是使用与具体平台(aarch64、arm、riscv)紧密相关的具体原语指令进行操作,如:aarch64中的LSE扩展和ldxr、stxr;arm中的同步原语(ldrex、ldrexb、ldrexh、ldrexd、strex、strexb、strexh、strexd);riscv中的amo指令(amoswap、amoadd、amoand、amoor、amoxor、amomx、amomaxu、amomin、amominu)。

    • 软实现:

            所谓软实现就是通过软件关中断的方式对操作段进行保护,操作结束后再开启中断。

     

     

     

  • 相关阅读:
    计算机毕业设计node.js+vue在线日程管理系统
    求职应聘找工作的同学,在线测评怎么过?
    【好文推荐】openGauss索引推荐功能测试
    k8s--基础--14--deployment
    神经网络入门(上)
    南大通用数据库-Gbase-8a-学习-20-GBaseGMonitor
    剑指 Offer 57. 和为s的两个数字【查找排序】
    Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
    2022数学建模国赛如何安排进度?川川学长精心讲解
    读书笔记-《ON JAVA 中文版》-摘要3
  • 原文地址:https://blog.csdn.net/smallerxuan/article/details/134095785
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号