【技术实现步骤摘要】
一种动态调整时钟中断的方法及装置
本专利技术涉及计算机领域,尤其涉及一种动态调整时钟中断的方法及装置。
技术介绍
随着科学技术的进步,尤其是计算机硬件和软件的更新速度越来越快,对计算机的响应和性能的要求也逐渐增高,传统操作系统中广泛应用的周期性时钟中断往往带来许多十分不必要的开销进而影响计算机的性能。在传统操作系统中存在许多硬件计时器,例如RTC(RealTimeClock,实时时钟)、TSC(TimeStampCounter,时间戳计数器)和PIT(ProgrammableIntervalTimer,可程序规划间隔定时器)等。这些硬件计时器通过提供不同频率的时钟来帮助操作系统完成一些常规的功能操作。这些功能操作包括系统时钟的维护,超时错误的处理,时钟中断处理等。其中,最常见的是周期性时钟中断,操作系统依靠周期性时钟中断来进行系统时间维护,时钟同步,进程时间片计算等操作。虽然周期性时钟中断十分必要,但是周期性时钟中断会造成不必要的资源占用,从而对应用的性能带来干扰。尤其是对于并行应用,独占应用,高优先级应用来说,这种干扰不可忽略。如Linux上一个简单的整数加法程序,因为周期性时钟中断带来的延时就长达23%。而对于并行应用SPhot,周期性时钟中断的开销就占系统总开销的46.1%。另外,在多核操作系统的通用解决方案中,系统服务和应用独占核资源执行非常常见,对于这种独占应用或服务来说,周期性时钟中断尤其不能容忍。周期性时钟中断带来的开销包括:硬件时钟中断,硬件时钟中断处理程序和软件时钟中断处理程序三部分的开销。虽然每次时钟中断本身的开销比较小,但由于长尾效应 ...
【技术保护点】
一种动态调整时钟中断的方法,其特征在于,所述方法包括:检测当前任务是否发生任务切换;若所述当前任务未发生任务切换,则获取所述当前任务执行的时间;若所述当前任务执行的时间大于预设门限值,则判断当前的第一时钟中断周期是否小于预设的最大时钟中断周期;若所述当前的第一时钟中断周期小于预设的最大时钟中断周期,则按照第一预设规则,将所述当前的第一时钟中断周期更新为第二时钟中断周期,所述第二时钟中断周期大于第一时钟中断周期,且不大于最大时钟中断周期;若所述当前的第一时钟中断周期等于预设的最大时钟中断周期,则不更新所述当前的第一时钟中断周期。
【技术特征摘要】
1.一种动态调整时钟中断的方法,其特征在于,所述方法包括:检测当前任务是否发生任务切换;若所述当前任务未发生任务切换,则获取所述当前任务执行的时间;若所述当前任务执行的时间大于预设门限值,则判断当前的第一时钟中断周期是否小于预设的最大时钟中断周期;若所述当前的第一时钟中断周期小于预设的最大时钟中断周期,则按照第一预设规则,将所述当前的第一时钟中断周期更新为第二时钟中断周期,所述第二时钟中断周期大于第一时钟中断周期,且不大于最大时钟中断周期;若所述当前的第一时钟中断周期等于预设的最大时钟中断周期,则不更新所述当前的第一时钟中断周期;若所述当前任务发生任务切换,则记录所述当前的第一时钟中断周期为调用时钟中断周期,所述调用时钟中断周期用于指示当被切换任务在响应于操作系统的调度时,再一次被调度执行时的时钟中断周期。2.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,所述获取所述当前任务执行的时间的方法包括:记录在所述当前任务执行的过程中时钟中断的次数;根据所述时钟中断的次数以及所述当前的第一时钟中断周期计算所述当前任务执行的时间。3.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,所述按照第一预设规则,将所述当前的第一时钟中断周期更新为第二时钟中断周期,具体包括:将所述当前的第一时钟中断周期更新为所述第二时钟中断周期,所述第二时钟中断周期为所述第一时钟中断周期的n倍;或者,将所述当前的第一时钟中断周期更新为所述第二时钟中断周期,所述第二时钟中断周期为所述第一时钟中断周期的n倍与预设值的和;或者,将所述当前的第一时钟中断周期更新为所述第二时钟中断周期,所述第二时钟中断周期为预设的先验值。4.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,所述预设的最大时钟中断周期的取值,为最小的高优先级任务时钟、最近堵塞周期、剩余时间片以及预设经验上限值中的最小值;其中,所述最小的高优先级任务时钟周期,为当前就绪队列中优先级高于当前任务的就绪任务的最小时钟周期;所述最近堵塞周期,为当前任务的上一次进行阻塞操作的时长;所述剩余时间片,为初始化任务部署时最初分配的执行时间在当前所剩余的时间。5.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,若所述当前任务发生任务切换,则根据所述当前任务的优先级以及被切换任务的优先级,按照第二预设规则,将所述当前的第一时钟中断周期更新为第三时钟中断周期,所述第三时钟中断周期为默认预设值。6.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,所述若所述当前任务发生任务切换,记录所述当前的第一时钟中断周期为调用时钟中断周期,所述调用时钟中断周期用于指示当所述被切换任务在响应于用户操作操作系统的调度时,再一次被调度执行时的时钟中断周期,具体包括:若所述当前任务的优先级高于所述被切换任务,并且所述当前任务被调用过,则将所述当前的第一时钟中断周期更新为所述调用时钟中断周期;若所述当前任务的优先级高于所述被切换任务的优先级,并且所述当前任务第一次被调用,则将所述当前的第一时钟中断周期更新为第三时钟中断周期,所述第三时钟中断周期为默认预设值;若所述当前任务的优先级低于所述被切换任务的优先级,则将所述当前的第一时钟中断周期更新为所述第三时钟中断周期,所述第三时钟中断周期为默认预设值。7.根据权利要求1所述的动态调整时钟中断的方法,其特征在于,所述方...
【专利技术属性】
技术研发人员:郑晨,陆钢,黄彬,詹剑锋,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。