上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3 V1.5版本中核心线程的实现
4.3.1 概述
在Hello ChinaV1.0中,采用的是基于优先级递减的轮转调度算法,这样既可充分照顾到各个优先级的核心线程,又可保证高优先级的核心线程获得更多的调度机会。但这种调度方式,在时间要求非常严格的实时系统中,却可能存在不足。因为随着运行时间的增加,核心线程的优先级是递减的,当一个处理关键实时任务的核心线程,优先级递减到普通核心线程的优先级的时候,其优先权就与普通核心线程一样。
在V1.5的实现中,增加了另外的严格按照优先级进行的调度算法,只要系统中有更高优先级的线程,较低优先级的核心线程便不会被调度,而且核心线程的优先级不会随着运行时间的增加而降低,这样可充分保证高优先级的任务得到处理,符合实时系统的需要。
在V1.5的实现中,对于调度算法,也以单独的函数模块进行实现,调度程序只是调用这个调度算法函数,获取下一个可调度的核心线程,而不是直接参与调度算法。这样可使得系统很容易地容纳其他调度算法。比如,可通过替代V1.5现有的调度算法实现函数,增加另外的定制调度算法。