CN103853605B - 线程管理方法及其电子装置 - Google Patents
线程管理方法及其电子装置 Download PDFInfo
- Publication number
- CN103853605B CN103853605B CN201210495326.7A CN201210495326A CN103853605B CN 103853605 B CN103853605 B CN 103853605B CN 201210495326 A CN201210495326 A CN 201210495326A CN 103853605 B CN103853605 B CN 103853605B
- Authority
- CN
- China
- Prior art keywords
- time
- thread
- registered
- interval
- threads
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种线程管理方法及其电子装置。所述的方法适用于此电子装置,并包括下列步骤。取得目前时间作为基准时间,并计算此电子装置的处理器距离下一醒来时间点的间隔时间。在达到此间隔时间之前,释放此处理器。当达到间隔时间时或接收到此处理器的一通知信号时,则取得一最新时间作为目前时间,并针对电子装置的多个已注册线程,分别检查此目前时间是否满足这些已注册线程的多个预设时间条件。此外,当此目前时间满足一已注册线程的预设时间条件时,唤醒此已注册线程。最后记录目前时间为基准时间并重复以上步骤。
Description
技术领域
本发明是有关于一种线程管理机制,且特别是有关于利用执行时间调度技术来实现的一种线程管理方法及其电子装置。
背景技术
目前在电子装置上的应用程序趋于多元化且有通常需要同时段运作多个的线程。当独自运作的各线程需要运作时,操作系统会唤醒处理器来执行一或多个需被处理的线程,因此处理器的使用时段可能会太密集,而减少处理器进入休眠的时间,进而消耗过多功率。
图1A至图1C为绘示一种线程与处理器的执行时序的示意图。请参照图1A,横轴为时间轴且向右为时间增加,而时间轴上的时间点A1~A6为线程A需要被执行的执行时间,由图1A可观察到线程A的执行周期,例如为100ms。请参照图1B,时间轴上的时间点B1~B3为线程B需要被执行的执行时间,由图1B可观察到线程B的执行周期,例如为200ms。
线程A与线程B为各自独立运作的线程。当线程A与线程B都需要被执行时,皆会唤醒处理器在适当的时间点执行线程A与线程B。图1C绘示当线程A与线程B没有经过适当时间调度管理的执行时序的示意图,由图1C可观察到处理器最短每隔50ms即需要处理线程A或线程B,如此运作频率太高而有高峰执行时段太密集的问题,且处理器没有足够时间进入休眠模式,导致较高功率消耗。因此,如何有效调度多个线程以改善处理器的功率消耗,仍为此领域中需解决的问题。
发明内容
本发明提供一种线程管理方法及其电子装置,可经由操作系统中的一线程管理者来规划调度存储器中的多个线程的执行时间,以降低处理器的使用频率,进而减少不必要的功率消耗。
本发明提出一种线程管理方法。根据本发明的一实施例,所述的方法适用于一电子装置,并包括下列步骤。首先,取得目前时间,并计算处理器距离下一醒来时间点的间隔时间。再者,在达到此间隔时间之前,释放此处理器。另外,当判断达到间隔时间时或接收到处理器的第一通知信号,则取得第一最新时间以更新目前时间,并记录目前时间作为基准时间,接着针对此线程中的多个已注册线程,分别检查此目前时间是否满足存储器所包括的多个已注册线程的预设时间条件。此外,当判断目前时间满足这些已注册线程中的一第一已注册线程的预设时间条件时,唤醒并执行此第一已注册线程。
本发明提出一种电子装置。根据本发明的一实施例,所述的电子装置包括了存储器及处理器。此存储器包括操作系统与多个线程,其中此操作系统包括线程管理者。此处理器用来执行此操作系统、此线程管理者与这些线程。再者,线程管理者取得目前时间,并计算处理器距离下一醒来时间点的间隔时间。此线程管理者在达到间隔时间之前,释放此处理器。当线程管理者判断达到间隔时间时或接收到来自处理器的第一通知信号,线程管理者取得第一最新时间来更新目前时间,记录目前时间作为基准时间,并针对存储器内的多个已注册线程,分别检查目前时间是否满足这些已注册线程的预设时间条件。当判断目前时间满足这些已注册线程中的一第一已注册线程的预设时间条件时,线程管理者唤醒此第一已注册线程。
基于上述,本发明的实施例提出线程管理方法及其电子装置。经由线程管理者注册多个线程,根据各线程的执行间隔的对应的预设时间条件,来规划处理器的执行流程,并将对应预设时间条件被满足的线程唤醒,以增加处理器被释放的时间,进而达到节省功率消耗的功效。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A至图1C是绘示一种线程与处理器的执行时序的示意图。
图2是根据本发明的一实施例所绘示一种电子装置的功能方块图。
图3是根据本发明的一实施例所绘示一种线程管理方法的流程图。
图4A至图4C是根据本发明的一实施例所绘示一种线程管理方法的流程图。
图5是根据本发明的一实施例所绘示一种计算适合间隔方法的流程图。
图6是根据本发明的一实施例所绘示一种检查目前时间符合线程的预设条件的方法的流程图。
图7是根据本发明的一实施例所绘示另一种检查目前时间符合线程预设条件的方法的流程图。
[主要元件标号说明]
20:电子装置
210:存储器
211:操作系统
212:线程管理者
213:驱动程序单元
214:应用程序单元
215、216:程序单元
220:处理器
A1~A6、B1~B6:时间点
S301~S308、S401~S407、S501~S511、S601~S604、S701~S704:步骤
具体实施方式
图2是根据本发明的一实施例所绘示一种电子装置的功能方块图。请参照图2,此电子装置20包括存储器210及处理器220。存储器210连接至处理器220,用以储存操作系统211、驱动程序单元213、应用程序单元214、程序单元215及程序单元216的程序码分别对应的多个线程等,由处理器220处理执行。另外,操作系统211包括一线程管理者(threadmanager)212,可以由处理器220执行,用来管理此电子装置20中多个线程的执行时序。处理器220例如为中央处理器或具有多个处理器核心组合的处理器电路。
更清楚说明,此线程管理者212可以注册此电子装置20中多个线程,但并非此电子装置20中所有线程都会向线程管理者212注册。线程管理者212可以包括一数据库(未绘示),用来记录已注册线程与其对应的预设时间条件。线程管理者212取得目前时间(current tick),此目前时间可以为处理器提供的系统时间。线程管理者212利用目前时间计算处理器220距离下一醒来时间点的间隔时间。再者,此线程管理者212使处理器220在到达间隔时间之前处于被释放的状态。此即,此线程管理者212在间隔时间之前释放处理器220,不执行已注册线程。当处理器220不处理线程管理者212的已注册线程时,此即被释放状态,处理器220可以进入休眠,或是处理器220执行非注册的线程。
当线程管理者212判断在尚未到达间隔时间之前,假若接收到来自处理器220的第一通知信号(或作第一通知信息),则此线程管理者212取得一第一最新时间来更新所述目前时间,并记录所述目前时间为一基准时间。所述基准时间为代表此处理器220最近一次(或作最后一次)执行完成已注册线程中的任何一线程的结束时间。接着,线程管理者212可以针对存储器210中多个线程中的多个已注册线程,分别检查已更新的目前时间是否满足这些已注册线程的多个预设时间条件。此外,当线程管理者212检查到目前时间满足这些已注册线程中的一已注册线程的预设时间条件时,此线程管理者212会唤醒此一已注册线程,并由处理器220来执行此第一已注册线程。例如,所述已注册线程的预设时间条件包括:已注册线程的一理想间隔时间(idealinterval)、一最大容许间隔时间(maximum interval)与一最小容许间隔时间(minimum interval)。
图3是根据本发明的一实施例所绘示一种线程管理方法的流程图。请同时参照图2与图3,此线程管理方法300起始于步骤S301。在步骤S301中,线程管理者212取得目前时间(例如,利用预设函数软件取得系统时间),并计算处理器220从现在开始到下一醒来时间点之间的一段间隔时间。具体的线程管理者212计算间隔时间方法将参照图5来详细描述。
在步骤S302,在此段间隔时间中,线程管理者212使处理器220处于被释放的状态以使其可进行其它任务或处于省电状态(例如,进入休眠模式)。接着,在步骤S303中,线程管理者212判断是否在到达间隔时间之前有接收到来自处理器220的第一通知信号,此第一通知信号例如为处理器220因被其它非注册线程唤醒而产生的通知信号,用来通知线程管理者212处理器220没有在休眠模式。在步骤S303中,假若线程管理者212有接收到此第一通知信号,则在步骤S303之后执行步骤S305;假若线程管理者212没有接收到此第一通知信号,则在步骤S303之后执行步骤S304。
在步骤S304中,线程管理者212进一步判断目前时间是否已达到上述所计算处理器220的下一个醒来时间点,此即是否到达在步骤S301计算的间隔时间。在步骤S304中,假若线程管理者212判断已到达间隔时间,则在步骤S304之后执行步骤S305;假若线程管理者212判断尚未到达下一醒来时间点,则处理器220继续保持被释放状态而不执行任何一已注册线程,并在步骤S304之后返回执行步骤S303作重新确认。
由上述可知,在判断到达所计算下一醒来时间点或接收到来自处理器220的第一通知信号时,皆会执行步骤S305。在此步骤S305中,处理器220已开始执行存储器210中的一或多个线程,这些线程可以为已注册线程或非注册线程。因此,为了更新处理器220的执行时间纪录,在步骤S305中,线程管理者212取得一第一最新时间以更新所述目前时间,并记录所述目前时间为一基准时间,所述基准时间代表此处理器220最近一次(或作最后一次)执行完成已注册线程中的任何一个线程的结束时间(或作last roundtickcount)。
在步骤S305之后接续进行步骤S306。在步骤S306中,线程管理者212判断是否有尚未检查过的已注册线程。在步骤S306中,当线程管理者212判断仍有尚未检查过的已注册线程,则在步骤S306之后进行步骤S307;当线程管理者212判断没有尚未检查过的已注册线程,则在步骤S306之后返回进行步骤S301,重新计算一间隔时间,并使处理器220再度回到被释放的状态。。
在步骤S307中,线程管理者212由尚未被检查的一或多个已注册线程中,选取一已注册线程来判断目前时间是否满足已注册线程的预设时间条件。在步骤S307中,当线程管理者212判断目前时间没有满足当前被检查的已注册线程的预设时间条件,则在步骤S307之后返回执行步骤S305,更新目前时间并重新设定基准时间;当线程管理者212判断目前时间已满足当前被检查的已注册线程的预设时间条件,则在步骤S307之后执行步骤S308。在步骤S308中,由线程管理者212唤醒此已注册线程,并由处理器220执行已注册线程的相关步骤(或作让线程进行对应工作)。
从另一角度来看,步骤S305、S306、S307整体可视为分别检查此目前时间是否满足线程管理者212记录的多个已注册线程各自的预设时间条件。
假若处理器220是因为线程管理者212到达间隔时间而被唤醒运作,则详细的判断方式将利用图6来描述。假若线程管理者212在到达间隔时间之前因为接收到处理器220的第一通知信号,详细的判断方式将利用图7来描述。
图4A至图4C是根据本发明的一实施例所绘示另一种线程管理方法的流程图。请同时参照图2、图4A至图4C,在此实施例中,图4B的步骤S301至步骤S308类似于图3的步骤S301至步骤S308,因此相关的详细技术内容可以参照图3,在此不重新描述这些技术内容。
请参照图2与图4A,在步骤S401中,在操作系统211中创建一线程管理者212,此线程管理者212的程序码被储存于存储器210内,当处理器220处理线程管理者212的相关程序的程序码时,线程管理者212可以调度已注册的一或多个线程,并规划处理器220的使用时间,进而使已注册线程的执行时间,尽量与处理器220的省电模式周期一致。如此可以降低处理器220由省电模式(或作休眠模式)被唤醒的频率,或者减少处理器220的忙碌时间。
所述注册这些已注册线程的步骤可以包括,利用一表格(如下表1所述)、存储器210中的一数据结构(未绘示)或存储器210中的一数据库(未绘示)分别记录这些已注册线程的理想间隔时间(Interval(ideal))、最大容许间隔时间(Interval(max))与最小容许间隔时间(Interval(min)),其中为了使线程具有实行弹性度,线程管理者212记录的最大容许间隔时间与最小容许间隔时间之间的差值大于或等于处理器的睡眠模式单位时间(或作CPU_IDLE_REQUIRE_TIME)。
在此实施例中,存储器中仍有未向线程管理者212注册的线程,这些线程不受线程管理者212的控制或管理,因此当这些未注册线程的其中之一运作时,会导致处理器220发出第一通知信号以知会线程管理者212处理器220已处于忙碌状态,或由休眠模式被唤醒。
在步骤S403中,线程管理者212判断是否有驱动程序或应用程序需要周期性读取/写入数据或周期性执行对应工作,或是否有新的线程被产生且向线程管理者212进行注册。在步骤S403中,假若线程管理者212判断没有发生上述事件(对应于不同线程要被执行的条件),则反复执行步骤S403作重新的确认;假若线程管理者212判断有发生上述事件,则在步骤S403之后执行步骤S301,后续在图4B中的步骤S301至步骤S308的技术内容请参照图3。此即,由于在步骤S403中有线程需要执行对应工作,或是否有新的线程被产生且向线程管理者212进行注册,因此在步骤S403之后线程管理者212需要重新取得目前时间,并据此计算处理器220从现在的时间点到下一醒来时间点之间的间隔时间。
请参照图2与图4C,在步骤S308之后接续进行步骤S405。在步骤S405中,被唤醒的已注册线程自行判断是否完成工作。在步骤S405中,当此已注册线程已完成工作,在步骤S405之后接续进行步骤S407;当此已注册线程尚未完成工作,在步骤S405之后反复执行步骤S405以重新确认。
值得注意的是,在步骤S308中,当一已注册线程被唤起而执行相关操作后,会进入步骤S405反复判断此线程是否完成相关操作,又或者在完成所有相关操作后才进入步骤S405;若已完成相关操作,则此已注册线程会在步骤S407中送出第二通知信号至线程管理者212,并接续进行步骤S301,以取得一第二最新时间以更新目前时间,并利用所述目前时间来重新计算处理器220距离下一次醒来时间点的另一间隔时间。
以下将参照表1作为范例来详细描述预设时间条件可以包括的已注册线程的一理想间隔时间、一最大容许间隔时间与一最小容许间隔时间。
表1
表1详列线程1~线程4的多个预设时间条件。请参照表1,在表1的线程1~线程4例如为驱动程序单元213、应用程序单元214、程序单元215与程序单元216的预设时间条件。这些预设时间条件可在线程管理者212注册这些线程时记录,且之后被用来计算适合的间隔时间。
线程1~线程4的间隔时间(理想的)、间隔时间(最大的)与间隔时间(最小的)皆为处理器的睡眠模式单位时间的倍数,在表1中仅列出睡眠模式单位时间的倍数值(或作乘数),且单位皆为毫秒(ms)。最后一次被执行时间(lasttick)则也被修整运算(round)为睡眠模式单位时间的倍数。举例说明,线程1的最后一次被执行时间为150ms,而其理想的间隔时间为5倍睡眠模式单位时间,最大可容许间隔时间为8倍睡眠模式单位时间,而最小可容许间隔时间为0倍睡眠模式单位时间,此即在执行完线程1后最小间隔时间为处理器220立即再一次处理线程1。
其它线程2~线程4的理想的间隔时间,最大可容许间隔时间,以及最小可容许间隔时间可参照表1而得知。举例来说,假定处理器的睡眠模式单位时间为50ms,线程管理者212可由表1推算下一次唤醒线程1的理想的间隔时间为150+50*5=400ms;可由表1推算下一次唤醒线程1的最大可容许的间隔时间为150+50*8=550ms;可由表1推算下一次唤醒线程1的最小可容许的间隔时间为150+50*0=150ms。依照上述原理可推算出线程2~线程4的间隔时间(理想的)、间隔时间(最大的)与间隔时间(最小的)。
在此值得一提的是,表1中各线程的最后执行时间会持续地因线程管理者212取得最新的目前时间而被更新。
图5是根据本发明的一实施例所绘示一种计算适合间隔时间方法的流程图。请参照图5,所述计算适合间隔时间方法详细描述步骤S301的技术内容,并起始于步骤S501。在步骤S501中,线程管理者212可以取得一第二最新时间以更新目前时间,并将所述目前时间减去最近一次处理器220执行任何一已注册线程的结束时间(或作基准时间)以取得一时间差值作为第一时间差值。
接着,在步骤S502中,线程管理者212对此第一时间差值进行一修整运算,以将此第一时间差值调整成睡眠模式单位时间的一倍数,以成为睡眠模式单位时间与第一乘数的乘积的第二时间差值。在此,第一乘数为一倍率。例如,假若睡眠模式单位时间为50,则此修整运算以25为单位,假若第一时间差值大于或等于25,则取第一乘数为1,因此第二时间差值为50。假若睡眠模式单位时间为50,则此修整运算以25为单位,假若第一时间差值小于25,则取第一乘数为0而成第二时间差值0。如此一来,时间差值被调整为睡眠模式单位时间的倍数,使得处理器220有足够时间进入休眠模式。
在步骤S503中,线程管理者212将睡眠模式单位时间的倍数的第二时间差值加上所述基准时间而得到第三时间差值,其中此第三时间差值为刚执行完或刚被加入的一已注册线程的最近一次执行时间或注册时间(参照图4A及图4C进入步骤S301的时机,即为已注册线程注册时间或执行结束时间)。因此,在步骤S504中,线程管理者212还可以用此第三时间差值分别更新由基准时间到第二最新时间之间的新加入的一或多个线程的最近一次注册时间,或更新由基准时间到第二最新时间之间已注册线程的其中之一刚被执行的最近一次执行时间。如此一来,部分已注册线程的最近一次注册时间,或最近一次执行时间,会被调整为相同时间点。
在步骤S505中,线程管理者212将新加入线程(或作新注册线程)的已更新的注册时间或刚被执行的已注册线程的最近一次执行时间分别加上对应的最大容许间隔时间,并得到多个间隔时间。
在步骤S506中,线程管理者212由这些间隔时间值中,选择一最小的间隔时间值作为处理器的一下一次最早醒来时间点,并据此更新所述间隔时间。所述间隔时间为,处理器220由目前时间到下一次醒来的一最早醒来时间点的一段间隔时间。在所述间隔时间中线程管理者212使处理器220处于被释放状态。而此间隔时间的计算方式详细步骤介绍如下。
在步骤S507中,线程管理者212将此最早醒来时间点减去所述目前时间而得到一间隔时间为第四时间差值,此第四时间差值为目前时间与处理器220下次需醒来时间点之间的一时间差值。接着,在步骤S508中,线程管理者212将此第四时间差值修整运算成为睡眠模式单位时间的一倍数而得第五时间差值,其中,第五时间差值为睡眠模式单位时间乘以第二乘数的乘积值。
在步骤S509中,线程管理者212判断此第二乘数是否为零。在步骤S509中,当线程管理者212判断此第二乘数为零,则在步骤S509之后执行步骤S510;在步骤S509中,当线程管理者212判断此第二乘数不为零,则在步骤S509之后执行步骤S511。
在步骤S510中,线程管理者212以未经过修整运算的第四时间差值作为间隔时间。在步骤S511中,线程管理者212,以经过修整运算的第五时间差值作为间隔时间,以取得处理器220的最佳时间利用。
图6是根据本发明的一实施例所绘示一种检查目前时间是否符合线程预设时间条件的方法的流程图。请同时参照图2与图6,在此实施例中,当到达间隔时间后,处理器220结束被释放的状态。在步骤S601中,线程管理者212分别对所有已注册线程,分别取得目前时间减去所有已注册线程的对应的最近一次执行时间而得到多个时间差值。
接着,在步骤S602中,线程管理者212分别针对这些已注册线程,判断所计算出的这些时间差值是否大于或等于这些已注册线程所对应的预设理想间隔时间。此即,在步骤S602中,线程管理者212分别判断已注册线程的对应时间差值是否大于或等于其对应的预设理想间隔时间。在步骤S602中,若线程管理者判断一已注册线程的对应时间差值大于或等于对应的预设理想间隔时间,则在步骤S602之后进行步骤S604。此即,线程管理者212判定目前时间符合已注册线程的预设时间条件。在步骤S604中,线程管理者212唤醒此已注册线程,并由处理器220执行此已注册线程的对应操作。
在步骤S602中,假若线程管理者212判断一已注册线程的对应时间差值小于对应的预设理想间隔时间,则在步骤S602之后进行步骤S603。在步骤S603中,线程管理者212判定目前时间不符合已注册线程的预设时间条件。
图7是根据本发明的一实施例所绘示另一种检查目前时间是否符合线程预设时间条件的方法的流程图。请同时参照图2与图7,在此实施例中,由于线程管理者212接收到来自处理器220的第一通知信号,而得知处理器220结束其释放状态。所述第一通知信号发生的情况例如为当使用者有输入操作时,处理器220因处理输入操作的线程被唤醒,因此线程管理者212要重新调度处理器下次要醒来的间隔时间,以使得线程预计被执行的时间与处理器下次要醒来的间隔时间尽量一致。或者,使线程预计被执行的时间同步化于处理器下次要醒来的间隔时间。在步骤S701中,线程管理者212取得所述目前时间,并利用目前时间分别减去这些已注册线程所对应的最后一次执行时间,以取得多个时间差值。
接着,在步骤S702中,线程管理者212分别针对这些已注册线程,判断这些时间差值是否大于或等于这些已注册线程的对应最小理想间隔时间。此即相似于在步骤S602中,线程管理者212分别判断已注册线程的对应时间差值是否大于或等于其对应的预设理想间隔时间。
在步骤S702中,假若线程管理者212判断时间差值小于这些已注册线程的对应最小理想间隔时间,则于步骤S702之后接续进行步骤S703。此即,线程管理者212判定目前时间不符合已注册线程的预设时间条件。在步骤S702中,假若线程管理者212判断时间差值大于这些已注册线程的对应最小理想间隔时间,则于步骤S702之后接续进行步骤S704。在步骤S704中,线程管理者212唤醒此已注册线程,并由处理器220执行此已注册线程的对应操作。
在图7的实施例中,当线程管理者212尽快调整各已注册线程的时间调度与处理器220的执行周期一致时,即可以降低跳频(frequency hopping)的情况,因此才会在步骤S702中选择利用对应最小理想间隔时间来判断目前时间是否符合已注册线程的预设时间条件。
本发明另提供一种计算机程序产品,此计算机程序产品储存一计算机可执行程序,其用以执行上述线程管理方法的各个步骤,此计算机程序产品基本上是由多个程序码片段所组成的(例如建立组织图程序码片段、签核窗体程序码片段、设定程序码片段、以及部署程序码片段),并且这些程序码片段在加载通信装置中并执行之后,即可完成上述线程管理方法的步骤与上述电子装置的功能。
综上所述,本发明的多个实施例提出线程管理方法及其电子装置。经由操作系统中的线程管理者以注册多个线程,根据各线程的执行间隔的对应的预设时间条件,来规划处理器的执行流程,或弹性因应非注册线程唤醒处理器情况,提前唤醒符合预设时间条件的线程。如此一来,可以增加处理器被释放的时间,减少处理器由休眠模式进入忙碌模式的频率,进而达到节省功率消耗的功效。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求范围所界定者为准。
Claims (22)
1.一种线程管理方法,用于一电子装置,所述电子装置包括一处理器与一存储器,所述存储器包括多个线程,该多个线程包括多个已注册线程及多个未注册线程,所述的方法包括:
取得一目前时间,并计算该处理器距离下一醒来时间点的一间隔时间;
在达到该间隔时间之前,释放该处理器;
当达到该间隔时间之前接收到该处理器的一第一通知信号,则取得一第一最新时间以更新该目前时间,记录该目前时间为一基准时间,并针对该多个线程中的该多个已注册线程,分别检查该目前时间是否满足该多个已注册线程的多个预设时间条件,其中该第一通知信号为该处理器被该多个未注册线程唤醒而产生的一通知信号并用来通知处理器不在一休眠模式;以及
当该目前时间满足该多个已注册线程中的一第一已注册线程的预设时间条件时,唤醒该第一已注册线程。
2.根据权利要求1所述的线程管理方法,其中在计算该处理器距离下一次醒来时间点的该间隔时间之前,所述线程管理方法还包括:
创建一线程管理者;以及
利用该线程管理者以注册该些线程中的部分线程为该些已注册线程。
3.根据权利要求2所述的线程管理方法,其中判断达到该间隔时间时或接收到该第一通知信号的步骤包括:
判断在到达该间隔时间之前是否接收该处理器的该第一通知信号,其中该处理器经由该第一通知信号告知该线程管理者目前该处理器已醒来。
4.根据权利要求1所述的线程管理方法,其中分别检查该目前时间是否满足该些已注册线程的该些预设时间条件的步骤包括:
当判断该目前时间无法满足目前检查的该第一已注册线程的预设时间条件时,选取尚未检查的一第二已注册线程,并取得一第二最新时间以更新该目前时间。
5.根据权利要求1所述的线程管理方法,其中在唤醒该第一已注册线程的步骤之后,所述线程管理方法还包括:
当接收该第一已注册线程的一第二通知信号时,取得一第二最新时间以更新该目前时间,重新计算该处理器距离下一次醒来时间点的另一间隔时间,其中该第一已注册线程经由该第二通知信号告知该线程管理者该第一已注册线程已完成其执行程序。
6.根据权利要求4所述的线程管理方法,其中分别检查该目前时间是否满足该些已注册线程的该些预设时间条件的步骤包括:
当判断该目前时间都无法满足该些已注册线程的该些预设时间条件时,重新执行取得该目前时间,并计算该处理器距离下一醒来时间点的该间隔时间的步骤。
7.根据权利要求1所述的线程管理方法,其中针对该些线程中的多个已注册线程,分别检查该目前时间是否满足该些已注册线程的多个预设时间条件的步骤包括:
当达到该间隔时间时,分别取得该目前时间减去该些已注册线程的对应最后一次执行时间,以取得多个时间差值;以及
分别针对该些已注册线程判断该些时间差值是否大于或等于该些已注册线程的对应预设理想间隔时间;
当该些已注册线程中的该第一已注册线程的对应时间差值大于或等于其对应预设理想间隔时间时,判定该目前时间满足该第一已注册线程的对应预设时间条件;以及
当该些已注册线程中的该第一已注册线程的对应时间差值小于其预设理想间隔时间时,判定该目前时间没有满足其对应预设时间条件。
8.根据权利要求1所述的线程管理方法,其中针对该些线程中的多个已注册线程,分别检查该目前时间是否满足该些已注册线程的多个预设时间条件的步骤包括:
当达到该间隔时间前接收到该第一通知信号时,分别取得该目前时间减去该些已注册线程的对应最后一次执行时间,以取得多个时间差值;以及
分别针对该些已注册线程判断该些时间差值是否大于该些已注册线程的对应预设最小间隔时间;
当该些已注册线程中的该第一已注册线程的对应时间差值大于等于其对应预设最小间隔时间时,判定该目前时间满足该第一已注册线程的对应预设时间条件;以及
当该些已注册线程中的该第一已注册线程的对应时间差值小于等于其对应预设理想间隔时间时,判定该目前时间没有满足其对应预设时间条件。
9.根据权利要求2所述的线程管理方法,其中注册该些已注册线程的步骤包括:
分别记录该些已注册线程的一理想间隔时间、一最大容许间隔时间与一最小容许间隔时间,其中该最大容许间隔时间与该最小容许间隔时间的一差值大于等于该处理器的一睡眠模式单位时间。
10.根据权利要求9所述的线程管理方法,其中计算该间隔时间的步骤包括:
取得一第二最新时间以更新该目前时间,将该目前时间减去该基准时间以取得一第一时间差值,其中该基准时间为该处理器最近一次执行该些已注册线程的任何一者的结束时间点;
对该第一时间差值进行一修整运算,以取得该睡眠模式单位时间乘上一第一乘数的乘积为一第二时间差值;
将该第二时间差值加上该基准时间以产生一第三时间差值,利用该第三时间差值分别更新在该基准时间到该第二最新时间之间的一或多个新注册线程的注册时间或该些已注册线程中的一第一已注册线程的最后一次执行时间;
分别将该些新注册线程的最后一次注册时间或该第一已注册线程的最后一次执行时间加上对应的最大容许间隔时间,以取得多个估测间隔时间;以及
取得该些估测间隔时间中的一最小估测时间值为该处理器下一次醒来的一最早醒来时间点。
11.根据权利要求10所述的线程管理方法,其中计算该间隔时间的步骤还包括:
将该最早醒来时间点减去该目前时间以取得一第四时间差值,并将该间隔时间更新为该第四时间差值;
对该第四时间差值进行该修整运算,以取得该睡眠模式单位时间乘上一第二乘数的乘积为一第五时间差值;
判断该第二乘数是否为0;
当该第二乘数为0时,更新该间隔时间为该第四时间差值;以及
当该第二乘数大于0时,更新该间隔时间为该第五时间差值。
12.一种电子装置,包括:
一存储器,包括一操作系统与多个线程,其中该多个线程包括多个已注册线程及多个未注册线程,该操作系统包括一线程管理者;以及
一处理器,用来执行该操作系统、该线程管理者与该些线程,其中:
该线程管理者取得一目前时间,并计算该处理器距离下一醒来时间点的一间隔时间;
该线程管理者在达到该间隔时间之前,释放该处理器;
当该线程管理者在达到该间隔时间之前接收到该处理器的一第一通知信号,该线程管理者取得一第一最新时间来更新该目前时间,记录该目前时间为一基准时间,并针对该些线程中的该多个已注册线程,分别检查该目前时间是否满足该些已注册线程的多个预设时间条件,其中该第一通知信号为该处理器被该多个未注册线程唤醒而产生的一通知信号并用来通知处理器不在一休眠模式;以及
当该目前时间满足该些已注册线程中的一第一已注册线程的预设时间条件时,该线程管理者唤醒该第一已注册线程。
13.根据权利要求12所述的电子装置,其中:
该线程管理者注册该些线程中的部分线程为该些已注册线程;以及
该线程管理者分别记录该些已注册线程的一理想间隔时间、一最大容许间隔时间与一最小容许间隔时间,其中该最大容许间隔时间与该最小容许间隔时间的一差值大于等于该处理器的一睡眠模式单位时间。
14.根据权利要求12所述的电子装置,其中该线程管理者还判断在到达该间隔时间之前是否接收该处理器的该第一通知信号,其中该处理器经由该第一通知信号告知该线程管理者目前该处理器已醒来。
15.根据权利要求12所述的电子装置,其中当该线程管理者判断该目前时间无法满足目前检查的该第一已注册线程的预设时间条件时,该线程管理者选取尚未检查的一第二已注册线程,取得一第二最新时间来更新该目前时间,重新计算该处理器距离下一次醒来时间点的另一间隔时间。
16.根据权利要求12所述的电子装置,其中,当该线程管理者接收该第一已注册线程的一第二通知信号时,该线程管理者取得一第二最新时间来更新该目前时间,重新计算该处理器距离下一次醒来时间点的另一间隔时间,其中该第一已注册线程经由该第二通知信号告知该线程管理者该第一已注册线程已完成其执行程序。
17.根据权利要求15所述的电子装置,其中当该线程管理者判断该目前时间都无法满足该些已注册线程的该些预设时间条件时,该线程管理者取得一第三最新时间以更新该基准时间,并重新计算该处理器距离下一次醒来时间点的另一间隔时间。
18.根据权利要求12所述的电子装置,其中:
当达到该间隔时间时,该线程管理者分别取得该目前时间减去该些已注册线程的对应最后一次执行时间,以取得多个时间差值;以及
该线程管理者分别针对该些已注册线程判断该些时间差值是否大于该些已注册线程的对应预设理想间隔时间;
当该线程管理者判断该些已注册线程中的该第一已注册线程的对应时间差值大于其对应预设理想间隔时间时,该线程管理者判定该目前时间满足该第一已注册线程的对应预设时间条件;以及
当该线程管理者判断该些已注册线程中的该第一已注册线程的对应时间差值小于等于其预设理想间隔时间时,该线程管理者判定该目前时间没有满足其对应预设时间条件。
19.根据权利要求12所述的电子装置,其中:
当达到该间隔时间前接收到该第一通知信号时,该线程管理者分别取得该目前时间减去该些已注册线程的对应最后一次执行时间,以取得多个时间差值;以及
该线程管理者分别针对该些已注册线程判断该些时间差值是否大于该些已注册线程的对应最小理想间隔时间;
当该线程管理者判断该些已注册线程中的该第一已注册线程的对应时间差值大于其对应预设理想间隔时间时,该线程管理者判定该目前时间满足该第一已注册线程的对应预设时间条件;以及
当该线程管理者判断该些已注册线程中的该第一已注册线程的对应时间差值小于等于其对应预设理想间隔时间时,该线程管理者判定该目前时间没有满足其对应预设时间条件。
20.根据权利要求13所述的电子装置,其中该线程管理者分别记录该些已注册线程的一理想间隔时间、一最大容许间隔时间与一最小容许间隔时间,其中该最大容许间隔时间与该最小容许间隔时间的一差值大于等于该处理器的一睡眠模式单位时间。
21.根据权利要求20所述的电子装置,其中:
该线程管理者取得一第二最新时间以更新该目前时间,将该目前时间减去该基准时间以取得一第一时间差值,其中该基准时间为该处理器最近一次执行该些已注册线程的任何一者的结束时间点;
该线程管理者对该第一时间差值进行一修整运算,以取得该睡眠模式单位时间乘上一第一乘数的乘积为一第二时间差值;
该线程管理者将该第二时间差值加上该基准时间以产生一第三时间差值,利用该第三时间差值分别更新在该基准时间到该第二最新时间之间的一或多个新注册线程的注册时间或该些已注册线程中的一第一已注册线程的最后一次执行时间;
该线程管理者分别将该些新注册线程的最后一次注册时间或该第一已注册线程的最后一次执行时间加上对应的最大容许间隔时间,以取得多个估测间隔时间;以及
该线程管理者取得该些估测间隔时间中的一最小估测时间值为该处理器的下一次醒来的一最早醒来时间点。
22.根据权利要求21所述的电子装置,其中:
该线程管理者将该最早醒来时间点减去该目前时间以取得一第四时间差值,并将该间隔时间更新为该第四时间差值;
该线程管理者对该第四时间差值进行该修整运算,以取得该睡眠模式单位时间乘上一第二乘数的乘积为一第五时间差值;
该线程管理者判断该第二乘数是否为0;
当该第二乘数为0时,该线程管理者更新该间隔时间为该第四时间差值;以及
当该第二乘数不为0时,该线程管理者更新该间隔时间为该第五时间差值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210495326.7A CN103853605B (zh) | 2012-11-28 | 2012-11-28 | 线程管理方法及其电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210495326.7A CN103853605B (zh) | 2012-11-28 | 2012-11-28 | 线程管理方法及其电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853605A CN103853605A (zh) | 2014-06-11 |
CN103853605B true CN103853605B (zh) | 2017-06-09 |
Family
ID=50861293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210495326.7A Active CN103853605B (zh) | 2012-11-28 | 2012-11-28 | 线程管理方法及其电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853605B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122870A (zh) * | 2007-09-30 | 2008-02-13 | 金蝶软件(中国)有限公司 | 一种线程唤醒控制方法和系统 |
EP2137627A1 (en) * | 2007-04-17 | 2009-12-30 | Xmos Ltd | Timed ports |
CN101627367A (zh) * | 2007-02-21 | 2010-01-13 | 高通股份有限公司 | 按需多线程多媒体处理器 |
CN101853180A (zh) * | 2010-05-25 | 2010-10-06 | 中兴通讯股份有限公司 | 一种实现应用管理的方法及非智能移动终端 |
CN101964724A (zh) * | 2010-08-30 | 2011-02-02 | 华为技术有限公司 | 通信单板的节能方法和一种通信单板 |
-
2012
- 2012-11-28 CN CN201210495326.7A patent/CN103853605B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101627367A (zh) * | 2007-02-21 | 2010-01-13 | 高通股份有限公司 | 按需多线程多媒体处理器 |
EP2137627A1 (en) * | 2007-04-17 | 2009-12-30 | Xmos Ltd | Timed ports |
CN101122870A (zh) * | 2007-09-30 | 2008-02-13 | 金蝶软件(中国)有限公司 | 一种线程唤醒控制方法和系统 |
CN101853180A (zh) * | 2010-05-25 | 2010-10-06 | 中兴通讯股份有限公司 | 一种实现应用管理的方法及非智能移动终端 |
CN101964724A (zh) * | 2010-08-30 | 2011-02-02 | 华为技术有限公司 | 通信单板的节能方法和一种通信单板 |
Also Published As
Publication number | Publication date |
---|---|
CN103853605A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103502946B (zh) | 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统 | |
US20140344599A1 (en) | Method and System for Power Management | |
CN104094191A (zh) | 实时系统中的动态功率管理 | |
CN104516475A (zh) | 用于管理多核片上系统上的全局芯片功率的方法和装置 | |
CN111401691B (zh) | 业务进度监控方法、装置及计算机可读存储介质 | |
CN108154252A (zh) | 用于预估流程完成时间的方法和装置 | |
CN106959895A (zh) | 快速释放线程的资源调度方法和系统 | |
CN109144680A (zh) | 一种时钟滴答中断设置方法及装置 | |
CN109298270A (zh) | 一种基于用电量判定设备故障检测方法及其检测系统 | |
CN105892629A (zh) | 基于多内核的屏幕唤醒方法、装置和移动终端 | |
CN102929381B (zh) | 电子系统及其电源管理方法 | |
CN102099762A (zh) | 用于功率管理的系统和方法 | |
CN116955455B (zh) | 适用于辐射监测系统的处理方法及平台 | |
CN104111850A (zh) | 一种降低微控制单元mcu功耗的方法及系统 | |
CN107465801A (zh) | 管理设备闹钟的方法及装置 | |
CN105101371B (zh) | 一种手机省电管理方法 | |
CN103853605B (zh) | 线程管理方法及其电子装置 | |
US20150261290A1 (en) | Systems and Methods for Messaging-based Fine Granularity System-on-a-Chip Power Gating | |
CN112967017B (zh) | 一种会议管理方法、装置、设备以及存储介质 | |
CN109859069A (zh) | 一种发电机组的能耗报警管理方法及装置 | |
CN106407074A (zh) | 消息推送方法及系统 | |
CN116502864B (zh) | 配电网应急电源车调度方法、装置、电子设备和存储介质 | |
CN102546999B (zh) | 基于业务模型降低设备功耗的方法、控制装置以及系统 | |
CN103700184B (zh) | 多光谱点验钞机多层次睡眠模式的控制方法 | |
CN115578008A (zh) | 一种全域计量资产调整方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |