Fixed Priority:任务优先级,任务优先级可在运行时修改。
Pre-emptive:抢占,比当前运行任务优先级更高的任务进入ready态时,将当前运行任务切换到ready状态并且执行高优先级任务。
Time Slicing:时间分片,在抢占模式、开启时间片配置下多个任务拥有相同优先级,多个任务共享处理器时间。在每个时间片用完后调度器选择一个该优先级下处于ready状态的任务运行,不用等待运行任务主动放弃cpu。
1、抢占式调度(
Prioritized Pre-emptive Scheduling)
a. 带时间片配置
(with Time Slicing)
具有同优先级的任务运行时只占用一个time slice,当time slice 用完后切换到下一个ready任务。如果在当前的 time slice 发生高优先级抢占现象,再次返回该优先级时则选择下一个ready任务执行,不会再执行上一个任务。
b. 不带时间片配置
(without Time Slicing)
任务会一直运行下去,同优先级的其它任务不会被执行,直到该运行任务主动放弃cpu或者更高优先级任务抢占并返回当前优先级。
2、合作调度(
Co-operative Scheduling)
调度器被配置为非抢占式,选择任务运行时调度器会考虑优先级。多个优先级不同的任务集中的一个运行态任务会一直运行下去,直到该运行任务主动放弃cpu时,处于ready态的最高优先级任务才回被执行。