当前位置:网站首页>Zephyr Learning note 2, Scheduling
Zephyr Learning note 2, Scheduling
2022-07-04 07:17:00 【Mayiqx】
Chapitre II:Scheduler(Scheduling).
L'ordonnanceur basé sur les priorités du noyau permet le partage de Threads pour les applicationsCPU.
Le thread passe de l'état d'exécution à l'état en attente ou en attente,Par exemplek_sem_take()Ouk_sleep().
Le thread passe à l'état prêt,Par exemple, en utilisantk_sem_give()Ouk_thread_start().
Renvoie le contexte du thread après le traitement de l'interruption,Quand le thread en cours d'exécution appellek_yield()Heure.
Lorsque le thread démarre activement une opération qui se convertit en état suspendu ou en attente,Il va dormir..
Collaborative
Préemption
Scheduler Locking
Les Threads préemptibles qui ne veulent pas être préemptés lors de l'exécution d'opérations critiques peuvent être appelés park_sched_lock().Une fois les opérations critiques terminées,Le thread préemptable doit appelerk_sched_unlock()Pour rétablir son état préemptif normal.
Thread Sleeping
k_sleep()
k_wakeup()
Le thread peut appelerk_busy_wait() Pour effectuer une attente chargée , L'attente retarde son traitement pour la période spécifiée ,Et nonCPU Jeter à un autre fil prêt .
CPU Idling
static k_sem my_sem;
void my_isr(void *unused)
{
k_sem_give(&my_sem);
}
void main(void)
{
k_sem_init(&my_sem, 0, 1);
/* wait for semaphore from ISR, then do related work */
for (;;) {
/* wait for ISR to trigger work to perform */
if (k_sem_take(&my_sem, K_NO_WAIT) == 0) {
/* ... do processing */
}
/* put CPU to sleep to save power */
k_cpu_idle();
}
}
边栏推荐
- The crackdown on Huawei prompted made in China to join forces to fight back, and another enterprise announced to invest 100 billion in R & D
- A real penetration test
- js 常用时间处理函数
- 2022-021ARTS:下半年开始
- tornado项目之路由装饰器
- The final week, I split
- 2022 - 021arts: début du deuxième semestre
- [Mori city] random talk on GIS data (I)
- 移动适配:vw/vh
- Novel website program source code that can be automatically collected
猜你喜欢
Xcode 14之大变化详细介绍
Selenium ide plug-in download, installation and use tutorial
What is the use of cloud redis? How to use cloud redis?
Valentine's Day is coming! Without 50W bride price, my girlfriend was forcibly dragged away...
Bottom problem of figure
window上用.bat文件启动项目
《剑指Offer》第2版——力扣刷题
BasicVSR++: Improving Video Super-Resolutionwith Enhanced Propagation and Alignment
There is no Chinese prompt below when inputting text in win10 Microsoft Pinyin input method
The important role of host reinforcement concept in medical industry
随机推荐
BibTex中参考文献种类
【GF(q)+LDPC】基于二值图GF(q)域的规则LDPC编译码设计与matlab仿真
Crawler (III) crawling house prices in Tianjin
Improve the accuracy of 3D reconstruction of complex scenes | segmentation of UAV Remote Sensing Images Based on paddleseg
BasicVSR++: Improving Video Super-Resolutionwith Enhanced Propagation and Alignment
How to share the source code anti disclosure scheme
There is no Chinese prompt below when inputting text in win10 Microsoft Pinyin input method
[freertos] freertos Learning notes (7) - written freertos bidirectionnel Link LIST / source analysis
Introduction to deep learning Ann neural network parameter optimization problem (SGD, momentum, adagrad, rmsprop, Adam)
2022年6月小结
Campus network problems
The important role of host reinforcement concept in medical industry
[Valentine's day] - you can change your love and write down your lover's name
用于压缩视频感知增强的多目标网络自适应时空融合
Flink memory model, network buffer, memory tuning, troubleshooting
【森城市】GIS数据漫谈(一)
云Redis 有什么用? 云redis怎么用?
手写简易版flexible.js以及源码分析
Latex中的单引号,双引号如何输入?
输入年份、月份,确定天数