uc/os-iii學習筆記-任務同步(訊號量、時間標誌組)
任務同步
兩種方式:訊號量、事件標誌組。
訊號量的同步簡而言之就是任務或者ISR傳送訊號量,某任務等待該訊號量,收到後進入就緒態準備執行。
事件標誌組就是一個任務與多個任務發生同步。
訊號量
訊號量在我的博文–資源管理中有提到過,具體可以看下:
與資源管理中不同的是,資源管理是為了獨佔共享資源,是上一把鎖,而任務同步則是釋放出訊號量,在等待區等待該訊號量的任務就會進入到就緒態準備執行。
事件標誌組
有時候一個任務需要與多個事件同步,這個時候就需要使用事件標誌組。事件標誌組與任務之間有兩種同步機制:“或”同步和“與”同步。
“或”同步:等待多個事件時,任何一個事件發生 ,任務都被同步,這個就稱為“或”同步。
“與”同步:當所有的事件都發生時任務才被同步,這種同步機制被稱為“與”同步。
在UCOSIII中事件標誌組為OS_FLAG_GRP
,如果需要使用事件標誌組的時候需要將OS_CFG_FLAG_EN
置1,
具體函式操作就補貼上來了,自己看看原始碼就好,很容易懂的。
相關文章
- uc/os-iii學習筆記-資源管理(中斷、訊號、訊號量、互斥訊號量)筆記
- 【iCore3 雙核心板_ uC/OS-III】例程七:訊號量——任務同步
- uc/os-iii學習筆記-訊息傳遞筆記
- 【iCore3 雙核心板_ uC/OS-III】例程九:任務訊號量
- uc/os-iii學習筆記---同時等待多個核心物件筆記物件
- 【iCore4 雙核心板_uC/OS-II】例程六:訊號量——任務同步
- Activiti 學習筆記13:分配組任務筆記
- 【iCore3 雙核心板_ uC/OS-III】例程八:互斥訊號量
- 【iCore3 雙核心板_ uC/OS-III】例程十一:任務訊息佇列佇列
- 【iCore3 雙核心板_ uC/OS-III】例程六:訊號量——共享資源
- perl學習筆記---標量筆記
- RT-Thread學習筆記2-互斥量與訊號量thread筆記
- 《組合語言》王爽,學習筆記(標誌暫存器下)組合語言筆記
- swoole學習手記(四)非同步任務task非同步
- 【iCore3 雙核心板_ uC/OS-III】例程四:時間管理
- Swift多執行緒:GCD進階,單例、訊號量、任務組Swift執行緒GC單例
- Activiti 學習筆記12:分配個人任務筆記
- Tornado非同步筆記(1):非同步任務非同步筆記
- 學習筆記(2):go輕量級分散式與微服務-實現程式的訊號通訊2筆記Go分散式微服務
- Adaptive AUTOSAR 學習筆記 16 - 時間同步和網路管理APT筆記
- “React元件間通訊”學習筆記React元件筆記
- Linux 學習筆記--任務計劃 crontabLinux筆記
- Shell學習筆記_時間計算筆記
- 學習筆記-----一時間函式筆記函式
- 【iCore3 雙核心板_ uC/OS-III】例程二:任務的建立與刪除
- 非同步任務神器 Celery 簡明筆記非同步筆記
- 【iCore3 雙核心板_ uC/OS-III】例程一:認識 uC/OS-III
- 【iCore3 雙核心板_ uC/OS-III】例程三:任務的掛起與恢復
- python學習之訊號量Python
- PHP學習筆記4:標量型別的宣告PHP筆記型別
- 3|程式間通訊--有名管道學習筆記筆記
- 機器學習|從未標記的視訊中學習跨模態時間表示機器學習
- 定時任務框架學習心得框架
- rt-thread學習筆記——8、建立訊號量thread筆記
- python學習筆記--web即時通訊Python筆記Web
- 程式間通訊——POSIX 有名訊號量與無名訊號量
- 學習筆記1——數字基帶訊號編碼筆記
- [筆記]laravel定時任務的實現筆記Laravel