一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Semaphore(信號(hào)量)和Mutex(互斥)之間做選擇?

麥克泰技術(shù) ? 來源:麥克泰技術(shù) ? 2024-03-05 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在單CPU系統(tǒng)中,處理器是一個(gè)共享資源。在多個(gè)進(jìn)程之間共享處理器時(shí),處理器的使用由調(diào)度程序控制,不存在競(jìng)爭(zhēng)問題。但對(duì)于系統(tǒng)的其它資源而言,情況并非如此。不同的任務(wù)可能需要同時(shí)使用同一硬件外設(shè)或內(nèi)存區(qū)域。如果不控制這些公共資源的訪問,系統(tǒng)中很快就會(huì)出現(xiàn)資源爭(zhēng)用問題。

89b9932c-daa0-11ee-a297-92fbcf53809c.png

如何在Semaphore(信號(hào)量)和Mutex(互斥)之間做選擇,應(yīng)考慮以下的問題:

1、資源類型:

- 多個(gè)實(shí)例:如果多個(gè)任務(wù)可以同時(shí)訪問資源,請(qǐng)使用信號(hào)量。

- 單個(gè)實(shí)例:如果一次只有一個(gè)任務(wù)需要訪問資源,請(qǐng)使用互斥。

2、訪問模式:

-非排他性訪問:如果多個(gè)任務(wù)可以同時(shí)訪問資源,請(qǐng)使用信號(hào)量。

- 獨(dú)家訪問:如果只有一個(gè)任務(wù)需要獨(dú)家訪問資源,請(qǐng)使用互斥。

3、所有權(quán)要求:

- 需要所有權(quán):如果您需要強(qiáng)制執(zhí)行所有權(quán),請(qǐng)使用互斥,確保只有獲得互斥的任務(wù)才能釋放它。

- 無需所有權(quán):如果所有權(quán)不是問題,請(qǐng)使用信號(hào)量。

4、性能:

-開銷:由于所有權(quán)跟蹤和優(yōu)先級(jí)反轉(zhuǎn)預(yù)防機(jī)制,與信號(hào)量相比,Mutex通常具有更高的開銷。

- 速度:對(duì)于簡(jiǎn)單的同步任務(wù),信號(hào)量通常更快。

5、優(yōu)先反轉(zhuǎn):

-優(yōu)先級(jí)反轉(zhuǎn):Mutexes具有防止優(yōu)先級(jí)反轉(zhuǎn)的機(jī)制(例如優(yōu)先級(jí)繼承),這在實(shí)時(shí)系統(tǒng)中可能很重要。

-無優(yōu)先級(jí)反轉(zhuǎn):信號(hào)量沒有防止優(yōu)先級(jí)反轉(zhuǎn)的內(nèi)置機(jī)制。

6、復(fù)雜性:

- 簡(jiǎn)單性:在基本同步任務(wù)中,信號(hào)量更易于使用和理解。

- 復(fù)雜性:由于所有權(quán)和優(yōu)先級(jí)反轉(zhuǎn)考慮,Mutex可能會(huì)更加復(fù)雜。

小結(jié)

-信號(hào)量:用于對(duì)資源的非排他性訪問,以及當(dāng)一個(gè)資源的多個(gè)實(shí)例可以同時(shí)訪問時(shí)。

- 互斥:用于獨(dú)家訪問資源,當(dāng)一次只能訪問一個(gè)任務(wù)訪問資源時(shí)。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235244
  • 信號(hào)量
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    8568

原文標(biāo)題:如何在Semaphore和Mutex之間做選擇?

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【安富萊】【RTX操作系統(tǒng)教程】第15章 互斥信號(hào)量

    第15章 互斥信號(hào)量 本章節(jié)開始講解RTX的另一個(gè)重要的資源共享機(jī)制---互斥信號(hào)量Mutex,即Mutual Exclusion的縮寫)
    發(fā)表于 01-30 17:40

    轉(zhuǎn):第23章 FreeRTOS互斥信號(hào)量

    本章節(jié)講解FreeRTOS重要的資源共享機(jī)制---互斥信號(hào)量Mutex,即MutualExclusion的縮寫)。注意,建議初學(xué)者學(xué)習(xí)完前兩個(gè)章節(jié)的信號(hào)量后再學(xué)習(xí)本章節(jié)的
    發(fā)表于 09-06 14:58

    第15章 互斥信號(hào)量

    轉(zhuǎn)rtx操作系統(tǒng) 本章節(jié)開始講解RTX的另一個(gè)重要的資源共享機(jī)制---互斥信號(hào)量Mutex,即Mutual Exclusion的縮寫)。注意,建議初學(xué)者學(xué)習(xí)完上個(gè)章節(jié)的信號(hào)量后再學(xué)習(xí)
    發(fā)表于 10-06 16:40

    芯靈思SinlinxA33開發(fā)板的Linux內(nèi)核信號(hào)量學(xué)習(xí)

    init_MUTEX_LOCKED (struct semaphore *sem);該函數(shù)也用于初始化一個(gè)互斥鎖,但它把信號(hào)量sem的值設(shè)置為0,等同于sema_init (stru
    發(fā)表于 02-20 15:50

    芯靈思SinlinxA64開發(fā)板 Linux內(nèi)核信號(hào)量學(xué)習(xí)

    信號(hào)量,并設(shè)置信號(hào)量sem的值為valvoid init_MUTEX (struct semaphore *sem);該函數(shù)用于初始化一個(gè)互斥
    發(fā)表于 03-15 16:10

    信號(hào)量互斥信號(hào)量該怎么選擇?

    既然說信號(hào)量可能會(huì)導(dǎo)致優(yōu)先級(jí)反轉(zhuǎn),那全都在工程里使用互斥信號(hào)不就行了?還要信號(hào)量干啥?大家一起用互斥信號(hào)
    發(fā)表于 08-26 03:14

    例程使用互斥信號(hào)量初始化如何設(shè)置?

    OS_MUTEXTEST_MUTEX; //定義一個(gè)互斥信號(hào)量//創(chuàng)建一個(gè)互斥信號(hào)量OSMutexCreate((OS_
    發(fā)表于 06-02 16:22

    信號(hào)量互斥鎖的區(qū)別

    互斥用于線程的互斥,信號(hào)線用于線程的同步。這是互斥信號(hào)
    發(fā)表于 11-13 17:43 ?1.3w次閱讀
    <b class='flag-5'>信號(hào)量</b>和<b class='flag-5'>互斥</b>鎖的區(qū)別

    詳解互斥信號(hào)量的概念和運(yùn)行

    1 、互 斥 信 號(hào) 1.1 互斥信號(hào)量的概念及其作用 互斥信號(hào)量的主要作用是對(duì)資源實(shí)現(xiàn)互斥
    的頭像 發(fā)表于 10-22 11:57 ?1.2w次閱讀
    詳解<b class='flag-5'>互斥</b><b class='flag-5'>信號(hào)量</b>的概念和運(yùn)行

    FreeRTOS 隊(duì)列 信號(hào)量 互斥

    文章目錄前言Queue 隊(duì)列semaphore 信號(hào)量Mutex 互斥微信公眾號(hào)前言FreeRTOS STM32CubeMX配置 內(nèi)存管理
    發(fā)表于 12-09 09:51 ?0次下載
    FreeRTOS 隊(duì)列 <b class='flag-5'>信號(hào)量</b> <b class='flag-5'>互斥</b><b class='flag-5'>量</b>

    ThreadX(六)------信號(hào)量semaphore

    APItx_semaphore_createtx_semaphore_deletetx_semaphore_gettx_semaphore_puttx_semaphore_put_notifysemaphore_demo概述ThreadX提供32位計(jì)數(shù)信號(hào)量,范圍在0到4
    發(fā)表于 12-28 19:26 ?7次下載
    ThreadX(六)------<b class='flag-5'>信號(hào)量</b><b class='flag-5'>semaphore</b>

    使用Arduino在FreeRTOS中實(shí)現(xiàn)信號(hào)量互斥的方式

    信號(hào)量互斥互斥)是用于同步、資源管理和保護(hù)資源免受損壞的內(nèi)核對(duì)象。在本教程的前半部分,我們將了解Semaphore背后的理念,以及如何以及在何處使用它。
    的頭像 發(fā)表于 08-16 15:34 ?4586次閱讀
    使用Arduino在FreeRTOS中實(shí)現(xiàn)<b class='flag-5'>信號(hào)量</b>和<b class='flag-5'>互斥</b><b class='flag-5'>量</b>的方式

    Free RTOS的互斥信號(hào)量

    二進(jìn)制信號(hào)量互斥非常相似,但確實(shí)有一些細(xì)微的區(qū)別。互斥體包含優(yōu)先級(jí)繼承機(jī)制,而二進(jìn)制信號(hào)量沒有。這使得二進(jìn)制
    的頭像 發(fā)表于 02-10 15:36 ?1552次閱讀
    Free RTOS的<b class='flag-5'>互斥</b><b class='flag-5'>信號(hào)量</b>

    使用Linux信號(hào)量實(shí)現(xiàn)互斥點(diǎn)燈

    信號(hào)量常用于控制對(duì)共享資源的訪問,有計(jì)數(shù)型信號(hào)量和二值信號(hào)量之分。初始化時(shí)信號(hào)量值大于1的,就是計(jì)數(shù)型信號(hào)量,計(jì)數(shù)型
    的頭像 發(fā)表于 04-13 15:12 ?1068次閱讀
    使用Linux<b class='flag-5'>信號(hào)量</b>實(shí)現(xiàn)<b class='flag-5'>互斥</b>點(diǎn)燈

    Semaphore信號(hào)量概念及其介紹

    信號(hào)量Semaphore。信號(hào)量主要用于控制和保護(hù)任務(wù)對(duì)特定資源的訪問。
    的頭像 發(fā)表于 07-25 15:40 ?2298次閱讀
    <b class='flag-5'>Semaphore</b><b class='flag-5'>信號(hào)量</b>概念及其介紹