From efbbb28ff794087df5dcbd3e5c8ed63992287e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Mon, 22 Jan 2024 15:22:18 +0000 Subject: [PATCH] =?UTF-8?q?update=20=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3/C?= =?UTF-8?q?osyOS=E5=8E=9F=E7=90=86=E4=B8=8E=E5=BA=94=E7=94=A8.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- 说明文档/CosyOS原理与应用.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/说明文档/CosyOS原理与应用.md b/说明文档/CosyOS原理与应用.md index 8d20913..52a8b2d 100644 --- a/说明文档/CosyOS原理与应用.md +++ b/说明文档/CosyOS原理与应用.md @@ -114,17 +114,19 @@ CosyOS的 **任务调度时机** 分为 **定时调度** 与 **临时调度**。 * **临时调度**
**一、自动调度**
当满足特定条件时,由系统自动触发的临时性的任务调度。
- **1、** 当前任务被阻塞、挂起、超时、停止、删除时,会立即触发任务调度。
- **2、** 恢复任务时,如果恢复后该任务可以运行并且它的优先级高于当前任务的优先级,会立即触发任务调度。
+ **1、** 当前任务被阻塞、挂起、删除时,会立即触发任务调度。
+ **2、** 恢复任务时,如果该任务被恢复后可以运行并且它的优先级高于当前任务的优先级,会立即触发任务调度。
**3、** 设置任务优先级时,如果该任务可以运行并且它的新优先级高于当前任务的优先级,会立即触发任务调度。
**4、** 设置阻塞时间为零或清除阻塞时,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,会立即触发任务调度。
- **5、** 归还互斥信号量完成时(已退出最外层),如果发生过优先级继承(该任务的优先级被提升),会恢复该任务的原优先级,并立即触发任务调度。
- **6、** 归还二值/计数信号量时,如果有任务因获取该信号量而阻塞,会立即触发任务调度。
- **7、** 给予二值/计数信号量时,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
- **8、** 发送私信时,如果该任务因接收私信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
- **9、** 发送飞信时,如果有任务因接收该信箱的飞信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
- **A、** 发送邮件时,如果有任务因接收该邮箱的邮件而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
- **B、** 发送消息时,如果有任务因接收该队列的消息而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **5、** 归还互斥信号量完成时,如果发生了优先级继承(任务优先级被提升),会恢复该任务的原优先级,并立即触发任务调度。
+ **6、** 归还二值信号量时,如果有任务因获取该信号量而阻塞,会立即触发任务调度。
+ **7、** 归还计数信号量时,如果有任务因获取该信号量而阻塞,会立即触发任务调度。
+ **8、** 给予二值信号量时,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **9、** 给予计数信号量时,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **A、** 发送私信至某任务时,如果该任务因接收私信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **B、** 发送飞信时,如果有任务因接收该信箱的飞信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **C、** 发送邮件时,如果有任务因接收该邮箱的邮件而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
+ **D、** 发送消息时,如果有任务因接收该队列的消息而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务调度。
**二、手动调度**
由用户手动触发的临时性的任务调度,包括任务级任务调度和中断级任务调度。
当无法满足自动调度条件,用户又期望特定线程能够更及时的处理事件,可采用手动调度。