目录
多任务处理
任务调度
任务的调度策略
优先级不同
优先级相同
多任务处理
通俗来讲就是 能够在同一时间 同时 进行多个任务的处理,这就时多任务处理。
但是,单核处理器一次只能处理一个任务,就是说在while中,任务们只能一个一个来处理
而stm32就是一个单核处理器。
那么,怎样使得stm32进行多任务处理呢?
这就需要制造一种假象,就是通过很快的切换任务,来达到任务都在执行的假象。
这就是并发操作:一个时间只有一个任务在操作。
并行:同时进行多个任务,一个时间可以有多个任务进行操作。
如何进行任务的切换,这就需要考虑任务的调度了。
任务调度
如同 抢占优先级,响应优先级。
就是在任务切换时,任务同样存在优先级,当高优先级的任务准备执行时,任务调度器就会优先调用高优先级的任务。
但是当这个高优先级任务在whlie()时,或者delay()时,我们的调度器就会调用其他的任务来执行,不浪费时间。
任务的调度策略
优先级不同
当高优先级任务来到时,会立即切换任务
优先级相同
每执行一个相同时间切换任务
当同优先级任务来到时,会进行排队。
当一个任务执行完后,没到达一个完整的时间片,任务任然会立即切换