一种基于锁的线程管理方法及装置制造方法及图纸

技术编号:7758917 阅读:163 留言:0更新日期:2012-09-14 00:32
本发明专利技术公开了一种基于锁的线程管理方法及装置,包括:在判断是否需要执行锁行为监控后,若确定需要执行锁行为监控,则获得第一锁竞争程度信息;根据所述第一锁竞争程度信息确定需要进行迁移操作的线程,并将所述线程迁移至确定的目标处理器。由于采用了通过动态判断决定锁行为监控的执行与否的技术手段,因此,可以避免出现因持续执行锁行为监控导致的过量占用系统处理资源的问题,进而可以使得在基于锁的线程管理过程中,系统的处理性能不会受到太大的影响。

【技术实现步骤摘要】

本专利技术涉及一种计算机
,尤其涉及一种基于锁的线程管理方法及装置
技术介绍
随着计算机技术的发展,多核或众核架构已经成为当前计算环境的主流趋势。但是,计算机的性能并不是随着计算机系统核数目的增长而呈现线性增长,甚至有时出现随着核数目的增长,性能却随着下降的现象。这种现象称之为核扩展性问题。其中,锁竞争是限制系统在多核架构上并行扩展性的因素之一。特别时发生锁震荡时,系统的性能损失非常大。相应的锁震荡是指很多线程在同时竞争同一个锁,并且不释放CPU,从而导致等待锁的时间远远大于持有锁的时间。 为克服上述问题,目前采用的技术手段是首先,在多种不同的模拟应用场景下,分别监测获得锁竞争发展趋势和热点锁,以及锁震荡临界点相关信息,以获得各个不同的模拟应用场景下的可能会发生锁竞争问题(如锁震荡)的锁。之后,在实际应用场景中基于可能会发生锁竞争问题的锁实时监测每一个线程,在相应的锁的锁竞争达到一定程度但未发生锁震荡之前,将该线程迁移到一组核中,使得竞争锁严重的线程运行在一组核中,以降低锁竞争带来的性能影响。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题上述现有技术需要通过模拟不同的应用场景,并对模拟的应用场景中的锁应用情况进行监测分析,以提前获知可能出现锁竞争问题的锁,实现过程较为复杂。而且,在实际的各应用场景中,通常是对上述提前获的可能出现锁竞争问题的锁实时进行监控,以便在出现锁竞争问题时可以进行相应的线程迁移处理,这种持续的实时监控过程将会占用大量的处理资源,影响系统的处理性能。
技术实现思路
本专利技术的目的是提供一种基于锁的线程管理方法及装置,以避免持续的锁行为监控导致占用系统中大量的处理资源,从而改善系统的处理性能。本专利技术的目的是通过以下技术方案实现的一种基于锁的线程管理方法,包括在判断是否需要执行锁行为监控后,若确定需要执行锁行为监控,则获得第一锁竞争程度信息;根据所述第一锁竞争程度信息确定需要进行迁移操作的线程,并将所述线程迁移至确定的目标处理器。一种基于锁的线程管理装置,包括监控判断单元,用于判断是否需要执行锁行为监控;第一锁竞争程度信息获取单元,用于在所述监控判断单元确定需要执行锁行为监控时,获得第一锁竞争程度信息;线程迁移操作单元,用于根据所述第一锁竞争程度信息获取单元获得的锁竞争程度信息确定需要进行迁移操作的线程,并将所述线程迁移至确定的目标处理器。由上述本专利技术提供的技术方案可以看出,本专利技术实施例提供的一种基于锁的线程管理方法及装置,具体采用了通过动态判断决定锁行为监控的执行与否的技术手段,以避免出现因持续执行锁行为监控导致的过量占用系统处理资源的问题。从而可以使得在基于锁的线程管理过程中,系统的处理性能不会受到太大的影响。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。 图I为本专利技术实施例提供的方法的处理过程示意图;图2为本专利技术实施例提供的判断是否执行锁行为监控的实现过程示意图;图3为本专利技术实施例提供的基于自旋锁的线程处理过程示意图;图4A为本专利技术实施例提供的线程切换的处理过程示意图;图4B为本专利技术实施例提供的调度域划分技术的应用环境示意图;图5A为本专利技术实施例提供的装置的结构示意图一;图5B为本专利技术实施例提供的装置的结构示意图二 ;图5C为本专利技术实施例提供的装置的结构示意图三。具体实施例方式下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。本专利技术实施例,可以实现动态决定是否启动锁行为监控,并在监控过程中根据锁竞争程度信息动态地判断是否进行线程迁移,从而克服了现有技术存在的问题。下面将结合附图对本专利技术实施例作进一步地详细描述。本专利技术实施例提供的一种基于锁的线程管理方法,如图I所示,具体可以包括步骤11,判断是否需要执行锁行为监控,如果需要,执行步骤12,以执行相应的锁行为监控操作,否则,执行步骤13 ;相应的判断是否需要执行锁行为监控的步骤可以包括以下任一种方式方式一获取预定时间段内的锁竞争参数信息,并根据该锁竞争参数信息获得第二锁竞争程度信息,再根据所述第二锁竞争程度信息判断是否需要执行锁行为监控,若该第二锁竞争程度信息指示当前锁竞争达到预定程度,则确定需要执行锁行为监控;这种方式可以设定为预定时间间隔重复执行或指定的时间点重复执行,即以预定时间间隔重复采用该方式一或者在指定的时间点重复执行该方式一,以执行相应的判断是否需要执行锁行为监控的步骤;方式二 获取预定时间段内的锁竞争参数信息,并根据锁竞争参数信息确定锁行为监控的执行时间,再根据该执行时间及当前时间信息判断是否执行锁行为监控,若当前时间信息与所述执行时间一致,则确定需要执行锁行为监控;这种方式可以设定为预定时间间隔重复执行或指定的时间点重复执行,或者,也可以在首次确定了锁行为监控的执行时间后,在每次到达下一次锁行为监控的执行时间时重复执行该方式二,以执行相应的判断是否需要执行锁行为监控的步骤;方式三获取预定时间段内的锁竞争参数信息,并根据锁竞争参数信息确定执行锁行为监控需要经过的时间片跳跃轮数,以根据相应的时间片跳跃轮数判断是否执行锁行为监控,若当前经过的时间片轮数达到所述执行锁行为监控需要经过的时间片跳跃轮数,则确定需要执行锁行为监控;这种方式可以设定为预定时间间隔重复执行行或指定的时间点重复执行,或者,也可以在首次确定了需要执行锁行为监控的时间片后,在每次到达下一次需要执行锁行为监控的时间片时重复执行该方式三,以执行相应的判断是否需要执行锁行为监控的步骤;在上述三种方式中,相应的指定的时间点重复执行具体可以但不限于包括在本 次执行判断是否需要执行锁行为监控的步骤时指定下一次重复执行的时间点,例如,根据获取的锁竞争参数信息指定下一次重复执行的时间点,即确定相应的指定的时间点。其中,上述处理过程中的锁竞争参数信息可以但不限于包括开始尝试持有锁的时间和成功获得锁时的时间,线程被调度到处理器上开始执行的时间和线程所在的处理器被其他线程抢占离开处理器的时间,以及获取锁的时间和释放锁的时间中的至少一项。其中,相应的第二锁竞争程度信息可以包括但不限于锁等待时间、锁持有时间和线程在当前时间段内的实际执行时间中的至少一项;相应的锁等待时间是根据开始尝试持有锁时的时间和成功获得锁时的时间确定,锁持有时间是根据获取锁的时间和释放锁的时间确定,相应的线程在当前时间段内的实际执行时间是指线程被调度到处理器上开始执行的时间与线程所在的处理器被其他线程抢占离开处理器的时间之间的时间间隔。步骤12,若根据步骤11的判断确定需要执行锁行为监控,则记录第一锁竞争程度信息,并执行步骤14;其中,相应的第一锁竞争程度信息可以包括但不限于锁等待时间、锁持有时间和线程在当前时间段内的实际执行时间中的至少一项;且该第一锁竞争程度信息与上述第二锁竞争程度信息可本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘仪阳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1