mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 19:39:42 +08:00
@@ -116,21 +116,22 @@ CosyOS的 **任务调度时机** 分为 **定时调度** 与 **临时调度**。
|
||||
* **临时调度** <br>
|
||||
**一、自动调度** <br>
|
||||
当满足特定条件时,由系统自动触发的临时性的任务调度。<br>
|
||||
1、启动任务时,会立即触发任务调度。<br>
|
||||
2、设置任务优先级时,会立即触发任务调度。<br>
|
||||
3、归还互斥信号量完成时,如果发生了优先级继承(任务优先级被提升),会恢复该任务的原优先级,并立即触发任务调度。<br>
|
||||
4、当前任务被阻塞、挂起、删除时,将不再具备运行权限,会立即触发任务调度。<br>
|
||||
5、恢复任务时,如果该任务被恢复后为就绪状态,并且它的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
6、设置阻塞时间为零或清除阻塞时,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
7、给予/归还二值信号量时,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
8、给予/归还计数信号量时,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
9、发送私信至某任务时,如果该任务因接收私信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
A、发送飞信时,如果有任务因接收该信箱的飞信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
B、发送邮件时,如果有任务因接收该邮箱的邮件而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
C、发送消息时,如果有任务因接收该队列的消息而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
1、**启动任务时**,会立即触发任务调度。<br>
|
||||
2、**设置任务优先级时**,会立即触发任务调度。<br>
|
||||
3、**归还互斥信号量完成时**,如果发生了优先级继承(任务优先级被提升),会恢复该任务的原优先级,并立即触发任务调度。<br>
|
||||
4、**当前任务被阻塞、挂起、删除时**,将不再具备运行权限,会立即触发任务调度。<br>
|
||||
5、**恢复任务时**,如果该任务被恢复后为就绪状态,并且它的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
6、**设置阻塞时间为零或清除阻塞时**,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
7、**给予/归还二值信号量时**,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
8、**给予/归还计数信号量时**,如果有任务因获取该信号量而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
9、**发送私信至某任务时**,如果该任务因接收私信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
A、**发送飞信时**,如果有任务因接收该信箱的飞信而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
B、**发送邮件时**,如果有任务因接收该邮箱的邮件而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
C、**发送消息时**,如果有任务因接收该队列的消息而阻塞,如果该任务的优先级高于当前任务的优先级,会立即触发任务切换。<br>
|
||||
**二、手动调度** <br>
|
||||
由用户手动触发的临时性的任务调度。<br>
|
||||
当无法满足自动调度条件,用户又期望特定线程能够更及时的运行并处理事件,可采用手动调度方式。<br>
|
||||
典型的应用是事件标志组,当事件的发生线程设置标志位后,如希望事件的处理线程能尽快处理,应采用手动调度方式。<br>
|
||||
|
||||
CosyOS的任务调度策略可最大程度的实现尽可能实时高效的任务切换,使CosyOS的实时性更为优异。<br>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user