面试题答案
一键面试实时进程调度算法权衡分析
-
最早截止时间优先(EDF)
- 可调度性:EDF 根据任务的截止时间来调度,优先执行截止时间最早的任务。只要系统的总利用率不超过100%,理论上能保证所有任务都在截止时间内完成,具有较好的可调度性。例如,在一个多媒体播放系统中,音频和视频数据的处理任务都有各自的截止时间,EDF能合理安排任务顺序以确保音视频的流畅播放。
- 资源利用率:由于总是优先处理紧急任务,资源会集中在临近截止时间的任务上,使得系统资源能被充分利用。不过,如果任务到达时间分布不均匀,可能出现资源短时间过度集中使用,长时间部分闲置的情况。
- 任务响应及时性:能快速响应截止时间紧迫的任务,保证任务及时得到处理。但对于截止时间较晚的任务,可能会出现较长等待时间。
-
单调速率调度(RMS)
- 可调度性:RMS基于任务周期来分配优先级,周期越短优先级越高。对于周期性任务系统,如果所有任务的利用率之和满足一定条件(如利用率之和小于 ( n(2^{1/n}-1) ),n为任务数量),系统可调度。在工业控制场景中,周期性的数据采集和控制任务可以通过RMS有效调度。
- 资源利用率:因为优先级固定,资源使用相对稳定。但由于优先保障高优先级(短周期)任务,可能导致低优先级(长周期)任务资源获取不足。
- 任务响应及时性:高优先级任务能及时响应,但低优先级任务响应可能延迟较大,特别是在高优先级任务负载较重时。
可能面临的挑战及解决方案
-
挑战
- 任务抖动:在EDF中,任务优先级随截止时间动态变化,可能导致任务执行顺序频繁改变,产生抖动。RMS中,低优先级任务可能长时间得不到执行机会,影响系统整体性能。
- 过载处理:当系统任务总利用率超过可调度范围时,如何保证关键任务的执行成为难题。
- 资源竞争:多任务共享资源时,可能出现资源争用导致任务阻塞,错过截止时间。
-
解决方案
- 任务抖动:可以引入松弛时间分配机制,在任务截止时间允许的情况下,适当调整任务执行顺序,减少抖动。对于RMS,可以采用基于反馈的动态优先级调整,在保证高优先级任务的同时,适当提升低优先级任务的执行机会。
- 过载处理:采用预留资源策略,为关键任务预留一定的资源,确保过载时关键任务仍能执行。或者使用任务降级策略,在过载时降低非关键任务的性能要求以保证关键任务。
- 资源竞争:使用资源分配协议,如优先级继承协议,当高优先级任务因等待资源被阻塞时,暂时提升占用资源的低优先级任务的优先级,使其尽快释放资源,减少高优先级任务的阻塞时间。