HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux

这篇具有很好参考价值的文章主要介绍了HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux,OpenHarmony鸿蒙攻城记,harmonyos,华为,OpenHarmony,LiteOS,鸿蒙

一、互斥锁基本概念

互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。

任意时刻互斥锁的状态只有两种,开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有。

多任务环境下往往存在多个任务竞争同一共享资源的应用场景,互斥锁可被用于对共享资源的保护从而实现独占式访问。另外互斥锁可以解决信号量存在的优先级翻转问题。

二、互斥锁运行机制

多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的,需要任务进行独占式处理。互斥锁怎样来避免这种冲突呢?

用互斥锁处理非共享资源的同步访问时,如果有任务访问该资源,则互斥锁为加锁状态。此时其他任务如果想访问这个公共资源则会被阻塞,直到互斥锁被持有该锁的任务释放后,其他任务才能重新访问该公共资源,此时互斥锁再次上锁,如此确保同一时刻只有一个任务正在访问这个公共资源,保证了公共资源操作的完整性。

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux,OpenHarmony鸿蒙攻城记,harmonyos,华为,OpenHarmony,LiteOS,鸿蒙

三、互斥锁开发流程

  • 创建互斥锁 LOS_MuxCreate。

  • 申请互斥锁 LOS_MuxPend。申请模式有三种:无阻塞模式、永久阻塞模式、定时阻塞模式。

    • 无阻塞模式:任务需要申请互斥锁,若该互斥锁当前没有任务持有,或者持有该互斥锁的任务和申请该互斥锁的任务为同一个任务,则申请成功。
    • 永久阻塞模式:任务需要申请互斥锁,若该互斥锁当前没有被占用,则申请成功。否则,该任务进入阻塞态,系统切换到就绪任务中优先级高者继续执行。任务进入阻塞态后,直到有其他任务释放该互斥锁,阻塞任务才会重新得以执行。
    • 定时阻塞模式:任务需要申请互斥锁,若该互斥锁当前没有被占用,则申请成功。否则该任务进入阻塞态,系统切换到就绪任务中优先级高者继续执行。任务进入阻塞态后,指定时间超时前有其他任务释放该互斥锁,或者用户指定时间超时后,阻塞任务才会重新得以执行。
  • 释放互斥锁 LOS_MuxPost。

    • 如果有任务阻塞于指定互斥锁,则唤醒被阻塞任务中优先级高的,该任务进入就绪态,并进行任务调度;
    • 如果没有任务阻塞于指定互斥锁,则互斥锁释放成功。
  • 删除互斥锁 LOS_MuxDelete。

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux,OpenHarmony鸿蒙攻城记,harmonyos,华为,OpenHarmony,LiteOS,鸿蒙

四、互斥锁使用说明

  • 两个任务不能对同一把互斥锁加锁。如果某任务对已被持有的互斥锁加锁,则该任务会被挂起,直到持有该锁的任务对互斥锁解锁,才能执行对这把互斥锁的加锁操作。
  • 互斥锁不能在中断服务程序中使用。
  • LiteOS-M 内核作为实时操作系统需要保证任务调度的实时性,尽量避免任务的长时间阻塞,因此在获得互斥锁之后,应该尽快释放互斥锁。
  • 持有互斥锁的过程中,不得再调用 LOS_TaskPriSet 等接口更改持有互斥锁任务的优先级。

五、互斥锁接口

功能类别 接口函数 描述
创建/删除互斥锁 LOS_MuxCreate 创建互斥锁
LOS_MuxDelete 删除指定互斥锁
申请/释放互斥锁 LOS_MuxPend 申请指定互斥锁
LOS_MuxPost 释放指定互斥锁

六、代码分析(待续…)

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux,OpenHarmony鸿蒙攻城记,harmonyos,华为,OpenHarmony,LiteOS,鸿蒙文章来源地址https://www.toymoban.com/news/detail-829320.html

到了这里,关于HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-ADC

    ADC(Analog to Digital Converter)模数转换器。现实生活中的所有属性(如温度、湿度、光照强度等)都是连续的,即为模拟信号;而单片机或电子计算机所能识别的信号都是离散的数字信号。此时,若是需要使用现实世界中的各种属性,就需要一种设备将模拟信号转换为数字信号

    2024年02月21日
    浏览(42)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-WatchDog

    看门狗(Watchdog),又称看门狗计时器(Watchdog timer),是一种硬件计时设备。一般有一个输入、一个输出,输入叫做喂狗,输出连接到系统的复位端。当系统主程序发生错误导致未及时清除看门狗计时器的计时值时,看门狗计时器就会对系统发出复位信号,使系统从悬停状态

    2024年02月21日
    浏览(41)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO

    轻量系统设备通常需要进行外设控制,例如温湿度数据的采集、灯开关的控制,因此在完成内核开发后,需要进行设备驱动的开发。 主要Hi3861芯片介绍如何运用 IoT 硬件子系统进行轻量系统设备的驱动开发。 在轻量系统的联接模组中,智能家居远程控制能力的实现,最终是通

    2024年02月21日
    浏览(36)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-SPI

    SPI 是串行外设接口(Serial Peripheral Interface)是一种高速的全双工同步的通信总线。 SPI 是由 Motorola 公司开发,用于在主设备和从设备之间进行通信,常用于与闪存、实时时钟、传感器以及模数转换器等进行通信。 SPI 通信通常由主设备发起,通过以下步骤完成一次通信: 通过

    2024年02月22日
    浏览(40)
  • HCIA-HarmonyOS设备开发认证-HarmonyOS简介

    本章主要介绍HarmonyOS分布式操作系统的概念、关键技术与能力以及HarmonyOS典型的应用场景。 学习完成本课程后,您将能够: 了解HarmonyOS的相关概念和产品定位; 了解HarmonyOS的技术架构; 了解HarmonyOS的关键特性。 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。

    2024年01月25日
    浏览(33)
  • HCIA-HarmonyOS设备开发认证-序

    最近涉及到HarmonyOS鸿蒙系统设备开发,在网络上已经有很多相关资料,视频教程,我也移植了公司的一个stm32G474板卡,运行LiteOS-m L0系统。 一面看资料一面移植,遇到不少坑,当看到运行的LOGO时,那是非常激动了。 由于没有系统性的学习,难免遇到不少坑,自己也决定找个

    2024年01月20日
    浏览(41)
  • HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

    低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。 正确(True) 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除

    2024年02月04日
    浏览(53)
  • HCIA-HarmonyOS Application Developer学习笔记

    HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统,它是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 与原生Android 系统对比,HarmonyOS 不仅可以支持手机,还可以支持电脑、智慧屏、穿戴设备、智能家居、车机系

    2024年02月13日
    浏览(27)
  • HCIA-HarmonyOS Application Developer——题目集2

    题目1 1、HarmonyOS的\\\"1+8N”战略中的\\\"1\\\"指的是什么? A、智慧屏 B、平板电脑 C、手表 D、手机 解析:( D ) HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统,是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 题目2

    2024年02月13日
    浏览(26)
  • HCIA-HarmonyOS Application Developer——题目集4

    题目1 1、(多选)对于HarmnyOS设备,传统蓝牙本机管理涉及下列哪些操作? A、扫描和取消扫描周边蓝牙设备 B、打开和关闭蓝牙 C、向远端设备发起配对 D、设置和获取本机蓝牙名称 解析:( ABD ) 传统蓝牙 指的是Bluetooth3.0以下的蓝牙,而 低功耗蓝牙 指的是Bluetooth4.0以上的蓝

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包