控制程序、控制装置、以及控制方法与流程

文档序号:11802889阅读:267来源:国知局
控制程序、控制装置、以及控制方法与流程
本发明涉及控制任务的执行的控制程序、控制装置、以及控制方法。

背景技术:
以往,在多个终端间,进行经由无线通信的分散处理技术的利用。例如,在移动电话等终端中,由于是电池驱动的系统,所以经由无线通信进行分散处理的情况下,若在该处理中电池用完,则不能够继续该处理。于是,已知一种基于各终端的电池余量来决定分配进程的分配目标的终端的技术(例如,参照下述专利文献1、2。)。具体而言,控制为对电池余量是阈值以下的终端不分配进程。专利文献1:日本特开2005-141669号公报专利文献2:日本特开2006-246202号公报然而,在以往技术中,仅在进程的分配时进行电池余量的判定,如果电池余量只超过阈值一点点,也基于终端的负荷来分配进程。即、对具有运算能力较高的CPU的终端分配较多的进程,所以存在消耗较多的电力、电池余量快速减少的问题点。在分散处理中,各终端进行分散处理以外的任务的执行的情况下,存在因这些任务的执行而使电池余量用完的情况,存在无法保证完成在分散处理中所分配的任务的问题点。

技术实现要素:
本发明的目的在于,为了消除上述的以往技术的问题点,提供一种能够抑制因任务的执行而带来电池的消耗的控制程序、控制装置、以及控制方法。根据本发明的一观点,提供一种如下的控制程序、控制装置、以及控制方法,即、在第1终端执行任务时,对上述第1终端的电池余量成为阈值以下的情况进行检测,在检测出上述第1终端的电池余量成为上述阈值以下的情况下,使上述任务的执行停止,并向可与上述第1终端进行通信的第2终端发送上述任务的识别信息,在发送了上述任务的识别信息后,从上述第2终端接收与上述任务的执行可能性有关的信息,并将和接收到的与执行可能性有关的信息对应的信息发送给上述第2终端。根据本控制程序、控制装置、以及控制方法,获得能够抑制因任务的执行而带来电池的消耗的效果。附图说明图1是表示本发明的一个例子的说明图。图2是表示多个终端的硬件的框图。图3是表示各存储器内的数据例的说明图。图4是表示表400的说明图。图5是表示表500的说明图。图6是表示任务限制表600的一个例子的说明图。图7是表示电力控制表700的一个例子的说明图。图8是表示电力成本表800的说明图。图9是各终端的功能框图。图10是表示在终端#0中任务为执行中的例子的说明图。图11是表示图10中的任务表1100的说明图。图12是表示图10中的任务表1200的说明图。图13是表示终端#0的电池余量较低的例子的说明图。图14是表示转移对象任务的决定例的说明图。图15是表示在转移目标终端有代码的任务的转移例子的说明图。图16是表示在转移目标终端无代码的任务的转移例子的说明图。图17是表示图16中的任务表1100的说明图。图18是表示图16中的任务表1200的说明图。图19是表示任务切换的检测例1的说明图。图20是表示任务切换的检测例2的说明图。图21是表示任务的执行结束的检测例的说明图。图22是表示转移后的终端#0中的电池余量的检查例的说明图(其1)。图23是表示转移后的终端#0中的电池余量的检查例的说明图(其2)。图24是表示转移后的终端#1中的电池余量的检查例的说明图。图25是表示控制装置的控制处理顺序的流程图(其1)。图26是表示控制装置的控制处理顺序的流程图(其2)。图27是表示控制装置的控制处理顺序的流程图(其3)。图28是表示控制装置的控制处理顺序的流程图(其4)。图29是表示控制装置的控制处理顺序的流程图(其5)。图30是表示控制装置的控制处理顺序的流程图(其6)。图31是表示控制装置的控制处理顺序的流程图(其7)。具体实施方式以下参照附图,详细地对本发明所涉及的控制程序、控制装置、以及控制方法的优选实施方式进行说明。图1是表示本发明的一个例子的说明图。终端#0的OS在终端#0执行动态图像压缩处理与动态图像拍摄处理时,执行:(1)每隔一定时间检查终端#0的电池余量,从而对该电池余量成为阈值以下进行检测。而且,在终端#0的OS检测出电池余量变为阈值以下的情况下,例如,执行:(2)使动态图像压缩处理与动态图像拍摄处理中的动态图像压缩处理的执行停止。此处,只使动态图像压缩处理的执行停止,将动态图像压缩处理作为转移对象,但也可以同时使动态图像拍摄处理的执行也停止,也将动态图像拍摄处理作为转移对象。而且,终端#0的OS执行:(3)向可与终端#0进行无线通信的终端#1发送动态图像压缩处理的识别信息。终端#1的OS基于动态图像压缩处理的识别信息从存储器检索动态图像压缩处理的代码。此处,假设未检索出动态图像压缩处理的代码。而且,终端#1的OS执行:(4)将动态图像压缩处理的代码与动态图像压缩处理的执行结果的发送请求发送给终端#0。若终端#0的OS接收到动态图像压缩处理的代码与动态图像压缩处理的执行结果的发送请求,则判断为终端#1能够执行动态图像压缩处理,执行:(5)将动态图像压缩处理的代码与动态图像压缩处理的执行结果发送给终端#1。若终端#1的OS接收到动态图像压缩处理的代码与动态图像压缩处理的执行结果,则判断为接收到动态图像压缩处理的执行指示。而且,终端#1的OS执行:(6)将动态图像压缩处理的代码与动态图像压缩处理的执行结果保存于存储器,(7)并执行动态图像压缩处理。(多个终端的硬件)图2是表示多个终端的硬件的框图。图2中,终端#0以及终端#1分别是控制装置。终端#0具有电源供给电路201、CPU(CentralProcessingUnit:中央处理器)202、通信I/F203、时钟供给电路204、和存储器205。各部通过总线206而分别连接。终端#1具有电源供给电路211、CPU(CentralProcessingUnit)212、通信I/F213、时钟供给电路214、和存储器215。各部通过总线216而分别连接。CPU202与CPU212担当各终端的整体控制。CPU202执行具有控制程序的OS221。另外,OS221为了按顺序执行被分配给CPU202的任务而具有就绪队列222。在就绪队列222中积累等待执行的任务,例如,OS221从就绪队列222中按顺序取出任务,执行。而且,OS221执行对终端#0的电池余量进行监控的API(ApplicationProgramInterface:应用程序接口)223。OS221能够利用该API223对电池余量进行检查。另外,OS231为了将被分配给CPU212的任务以积累的顺序执行而具有就绪队列232。在就绪队列232中积累等待执行的任务,例如,OS231从就绪队列232中以积累的顺序取出任务,执行。而且,OS231执行对终端#0的电池余量进行监控的API233。OS231能够利用该API233对电池余量进行检查。在本实施方式中,假设终端#0的电池与终端#1的电池的电池容量相同。电源供给电路201向终端#0内的各部供给电源。电源供给电路201具有寄存器,并能够基于设定于该寄存器的值来切换赋予各部的电源电压的值。例如,与赋予CPU202的电源电压的值对应的寄存器是2位的寄存器,根据设定于该寄存器的值,从0.4[V]、0.6[V]、0.8[V]、1.1[V]中选择电源电压的值。OS221针对电源供给电路201将电源电压的值设定为0.4[V],具体而言,是表示例如,OS221将与CPU202的电源电压的值对应的寄存器设定为与0.4[V]对应的值。时钟供给电路204向终端#0内的各部供给时钟。时钟供给电路204具有寄存器,并能够基于设定于该寄存器的值来切换赋予各部的时钟的频率。例如,与赋予CPU202的时钟的频率对应的寄存器是2位的寄存器。根据在与赋予CPU202的时钟的频率对应的寄存器中设定的值来选择赋予CPU202的时钟的频率。具体而言,例如,从相对于以CPU202的标准定义的时钟的频率为100[%]的频率、70[%]的频率、50[%]的频率、30[%]的频率中选择时钟的频率。OS221针对时钟供给电路204将时钟的频率设定为相对于以CPU202的标准定义的时钟的频率为30[%]的频率表示OS221将该寄存器设定为与该30[%]对应的值。电源供给电路211向终端#1内的各部供给电源。电源供给电路211为与上述的电源供给电路201相同的构成,省略其说明。时钟供给电路214向终端#1内的各部供给时钟。时钟供给电路214成为与上述的时钟供给电路相同的构成,省略其说明。通信I/F203与通信I/F213例如能够通过adhoc通信进行无线通信。具体而言,存储器205与存储器215例如具有ROM(ReadOnlyMemory:只读存储器)、RAM(RandomAccessMemory:随机存取存储器)、快闪ROM等。例如,快闪ROM存储引导程序,ROM存储应用软件,RAM作为各终端的CPU的工作区而使用。通过将存储在各存储器中的程序加载至各CPU,使该各CPU执行被编码的处理。图3是表示各存储器内的数据例的说明图。存储器205具有任务#0的代码~任务#3的代码、表400、任务限制表600、电力控制表700、电力成本表800、和任务表1100。存储器215具有任务#0的代码、任务#2的代码、表500、电力控制表700、任务表1200、任务限制表、和电力成本表。图4是表示表400的说明图。表400具有许可终端的项目401和转移目标终端的项目402。在许可终端的项目401保持有允许分配的终端的识别信息。许可终端的项目401由终端的利用者进行设定。对于转移目标终端的项目402而言,在电池余量状态变为低或者中时,由OS221设定使执行中的任务、就绪队列222内的任务转移的转移目标的终端的识别信息。图5是表示表500的说明图。表500具有许可终端的项目501和转移目标终端的项目502。在许可终端的项目501保持有允许分配的终端的识别信息。许可终端的项目501由终端的利用者进行设定。对于转移目标终端的项目502而言,在电池余量的状态变为低或者中时,由OS231设定使执行中的任务、就绪队列232内的任务转移的转移目标的终端的识别信息。图6是表示任务限制表600的一个例子的说明图。任务限制表600具有任务识别信息的项目601、实时限制的项目602、和频率的项目603。在任务识别信息的项目601中保持有终端#0具有代码的任务的识别信息。在实时限制的项目602中保持有实时限制。所谓实时限制是指在几[ms]以内使任务的执行结束的限制。“-”的情况下,表示不存在实时限制。在频率的项目603中保持有将以CPU202的标准定义的时钟的频率的几[%]的频率赋予CPU202。另外,在存在实时限制的情况下不降低频率,所以在实时限制的项目602是100[ms]以及200[ms]的情况下,频率的项目603的值成为100[%]。另外,存储器215内的任务限制表是具有与任务限制表600相同的项目的表,具有与终端#1具有代码的任务有关的信息。图7是表示电力控制表700的一个例子的说明图。在本实施方式中,根据赋予CPU202的时钟的频率来决定电源电压。因此,若时钟的频率下降,则电源电压也降低。电力控制表700具有频率的项目701和电源电压的项目702。具体而言,例如,在本实施方式中,在将供给给CPU202的时钟的频率设定为所定义的频率的70[%]的情况下,电源电压设定为0.8[V]。图8是表示电力成本表800的说明图。电力成本表800例如具有任务识别信息的项目801、执行中数据大小的项目802、代码大小的项目803、电力成本(执行中数据)的项目804、电力成本的项目(执行中数据+代码)805、系数的项目806、和每1个包的通信电力成本的项目807。任务识别信息的项目801中保持有任务的识别信息。执行中数据大小的项目802中保持有任务的执行中数据大小的最大值。代码大小的项目803中保持有任务的代码的大小。电力成本的项目804中保持有将任务的执行中数据发送给其他终端所消耗的电力。电力成本的项目805中保持有将任务的执行中数据与任务的代码发送给其他终端所消耗的电力。系数的项目806中保持有利用者规定的系数。每1个包的通信电力成本的项目807中保持有将每1个包发送给其他终端所消耗的电力。此处,对转移电力成本的计算进行说明。·转移电力成本=包量×1个包的通信电力成本·包量(执行中数据+代码的情况下)=(任务的代码大小+执行中数据大小)/包大小·包量(执行中数据)=(执行中数据大小)/包大小利用者预先设定1个包的通信电力成本。若1个包是128Byte,则1包是1024位。·1包=128Byte=1024bit·每单位时间的消耗电力:2.4Wh·上行的频带速度:384[Kbps]·1个包的通信电力成本=1024/384K×(2.4/60/60=1.78×10^-6[W]=1.78[μW]此处,例如,执行中数据是4KByte,则1个包的通信电力成本是1.5[μW]。·转移电力成本(仅发送执行中数据的情况下)=4×1024/128×1.5=48[μw]另外,任务表1100以及任务表1200是表示是否是正在执行分配给各终端的任务的信息。例如,若OS221接受任务的分配指示或来自其他终端的任务的执行指示,则在任务表1100登记接受到各指示的任务。后述任务表1100以及任务表1200的详细例。(各终端的功能框图)图9是各终端的功能框图。在本实施方式中,作为具有检测部901、停止部902、第1发送部903、接收部904、和第2发送部905的控制装置,以终端#0为例进行说明。存储在存储器205中的OS221具有检测部901~第2发送部905。该终端#0的CPU202加载该OS221来执行被编码在该OS221中的处理,从而实现检测部901~第2发送部905的处理。另外,在本实施方式中,作为具有接收部911、设定部912、执行部913、检测部914、和发送部915的控制装置,以终端#1为例进行说明。存储在存储器215中的OS231具有接收部911~发送部915,该终端#1的CPU212加载该OS231来执行被编码在该OS231中的处理,从而实现接收部911~发送部915的处理。在终端#0执行任务时,检测部901对终端#0的电池余量成为阈值以下进行检测。在通过检测部901检测出终端#0的电池余量变为阈值以下的情况下,停止部902使任务的执行停止。在通过检测部901检测出终端#0的电池余量变为阈值以下的情况下,第1发送部903向可与终端#0进行通信的终端#1发送任务的识别信息。在通过第1发送部903发送了任务的识别信息之后,接收部904从终端#1接收与任务的执行可能性有关的信息。第2发送部905将和被接收部904接收的与执行可能性有关的信息对应的信息发送给终端#1。另外,与执行可能性有关的信息表示不具有任务的代码的情况下,第2发送部905将任务的代码以及任务的执行指示发送给终端#1。另外,在与执行可能性有关的信息表示具有任务的代码的情况下,第2发送部905将任务的执行指示发送给终端#1。另外,第2发送部905将任务的执行结果发送给终端#1。另外,在由接收部904接收到的与任务的执行可能性有关的信息表示终端#1不能执行任务的情况下,停止部902不停止任务的执行。即使在通过检测部901检测出终端#0的电池余量变为阈值以下,在任务具有从任务的执行开始起的执行期限的情况下,第1发送部903不向终端#1发送任务的识别信息。此处,将从任务的执行开始起的执行期限称为实时限制。即使在通过检测部901检测出终端#0的电池余量变为阈值以下,在任务具有实时限制的情况下,停止部902不停止任务的执行。检测部901对电池余量成为比阈值小的其他阈值以下进行检测。在通过检测部901检测出电池余量变为其他阈值以下的情况下,即使任务具有实时限制,第1发送部903也向终端#1发送任务的识别信息。以下,将阈值称为阈值1,将其他阈值作为阈值2。另外,在本实施方式中,若终端#0的电池余量变为阈值2以下,则终端#0的电池余量状态被设定为低,若终端#0的电池余量比阈值2大且为阈值1以下,则终端#0的电池余量状态被设定为中。接收部911接收从终端#0向终端#1的任务的执行指示。执行部913执行由接收部911接收到执行指示的任务。检测部914对执行部913执行任务时,终端#1的电池余量成为阈值以下进行检测。在本实施方式中,基于转移电力成本来决定阈值。在通过检测部914检测出电池余量变为阈值以下的情况下,发送部915将任务的执行结果发送给终端#0。另外,在由接收部911接收到执行指示的任务不具有从任务的执行开始起的执行期限的情况下,设定部912针对向终端#1的CPU212供给时钟的供给源,将时钟的频率设定为与任务对应的频率。另外,在由接收部911接收到执行指示的任务不具有从任务的执行开始起的执行期限的情况下,设定部912针对向终端#1的CPU212供给电源电压的供给源,将电源电压的值设定为与任务对应的电源电压的值。另外,在设定部912进行设定后,执行部913执行接收到的任务。以以上为基础,使用附图详细地进行说明。图10是表示在终端#0中任务是执行中的例子的说明图。首先,对终端#0分配任务#0~任务#3。在就绪队列222中登记任务#1~任务#3。在OS221中,任务#0是执行中。终端#0的电池余量是终端#0的电池容量的40[%],终端#1的电池余量是终端#1的电池容量的95[%]。图11是表示图10中的任务表1100的说明图。任务表1100具有任务识别信息的项目1101、分配源终端的项目1102、和状态的项目1103。任务识别信息的项目1101中保持有任务的识别信息。分配源终端的项目1102中保持有分配源的终端的识别信息。状态的项目1103中保持有任务的状态。任务的状态是执行中、待机中、和转移3个状态。在图10中,任务#0是执行中,在就绪队列222中登记有任务#1~任务#3,所以任务#1~任务#3是待机中。另外,若OS221检测出任务切换,则更新任务表1100内的状态的项目。并且,若OS221检测出任务的执行结束,则从任务表1100删除与执行结束的任务有关的描述。图12是表示图10中的任务表1200的说明图。任务表1200具有任务识别信息的项目1201、分配源终端的项目1202、和状态的项目1203。任务识别信息的项目1201中保持有任务的识别信息。分配源终端的项目1202中保持有任务的分配源的终端的识别信息。状态的项目1203中保持有任务的状态。在图10中,未分配任何的任务,所以任务表1200中也未登记任何的任务。图13是表示终端#0的电池余量较低的例子的说明图。在各终端中,OS以一定时间周期检查电池余量。若OS221检查终端#0的电池余量,则因为电池余量是电池容量的40[%],所以检测出电池余量是阈值2以下。而且,OS221执行:(1)将终端#0的电池余量状态设定为中。接下来,OS221执行:(2)经由通信I/F203向终端#1发送终端#0的识别信息。若OS231经由通信I/F213接收终端#1的识别信息,则执行:(3)检索检索表500的许可终端的项目501内是否保持有接收的终端#0的识别信息。此处,在表500的许可终端的项目501内登记有终端#0的识别信息。而且,OS231执行:(4)经由通信I/F213向终端#0发送转移许可。若OS221接收来自终端#1的转移许可,则执行:(5)在表400的转移目标终端的项目402设定终端#1。图14是表示转移对象任务的决定例的说明图。接下来,OS221从分配给终端#0的任务中选择登记有转移电力成本的任务。关于是否登记有各任务的转移电力成本,OS221参照电力成本表800。而且,由于电池余量状态是中,所以OS221从选择的任务中将无实时限制的任务作为转移对象任务。关于各任务是否具有实时限制,OS221通过执行(6)参照任务限制表600能够判断。此处,任务#2与任务#3成为转移对象任务。接下来,OS221执行:(7)从就绪队列222中删除任务#2与任务#3。图15是表示在转移目标终端中有代码的任务的转移例子的说明图。OS221执行:(1)经由通信I/F203发送任务#2的识别信息。若OS231经由通信I/F213接收任务#2的识别信息,则执行:(2)从存储器215基于任务#2的识别信息来检索任务#2的代码。由于任务#2的代码被存储在存储器215中,所以OS231执行:(3)经由通信I/F213向终端#0发送任务#2的执行中数据的发送请求。此处,所谓执行中数据是至各任务的发送时为止的执行结果。而且,若OS221经由通信I/F203接收任务#2的执行中数据的发送请求,则执行:(4)经由通信I/F203向终端#1发送任务#2的执行中数据。此处,OS221同时也发送在执行任务#2时可设定的时钟的频率。OS231经由通信I/F213接收任务#2的执行中数据,并执行:(5)向存储器215保存任务#2的执行中数据。此处,OS231同时也接收执行任务#2时可设定的时钟的频率,并保存至存储器215。而且,OS231执行:(6)向就绪队列232积累任务#2。并且,OS231在任务表1200中登记与任务#2有关的信息。由此,任务#2从终端#0被转移至终端#1。而且,OS221经由通信I/F203向终端#1发送任务#2的转移完成。OS221将任务表1100的与任务#2有关的状态的项目1103变更为转移。图16是表示在转移目标终端中无代码的任务的转移例子的说明图。接下来,OS221执行:(1)经由通信I/F203发送任务#3的识别信息。若OS231经由通信I/F213接收任务#3的识别信息,则执行:(2)从存储器215检索任务#3的代码。由于任务#3的代码未存储在存储器215中,所以OS231执行:(3)经由通信I/F213向终端#0发送任务#3的代码与任务#3的执行中数据的发送请求。而且,若OS221经由通信I/F203接收任务#3的代码与任务#3的执行中数据的发送请求,则执行(4)经由通信I/F203向终端#1发送任务#3的代码与任务#3的执行中数据。此处,OS221同时也发送执行任务#3时可设定的时钟的频率。OS231经由通信I/F213接收任务#3的代码与任务#3的执行中数据,并执行(5)保存至存储器215。此处,OS231同时也接收执行任务#3时可设定的时钟的频率,并保存至存储器215。而且,OS231执行:(6)将任务#3积蓄到就绪队列232。并且,OS231向任务表1200登记与任务#3有关的信息。由此,任务#3从终端#0被转移至终端#1。而且,OS221经由通信I/F203向终端#0通知任务#3的转移完成。OS221将任务表1100的与任务#3有关的状态的项目1103变更为转移。OS221经由通信I/F203向终端#1通知全部的转移对象任务的转移完成。图17是表示图16中的任务表1100的说明图。在任务表1100中,与任务#2和任务#3有关的状态的项目1103被设定为转移。图18是表示图16中的任务表1200的说明图。在任务表1200中登记有与任务#2有关的信息和与任务#3有关的信息。若以任务#2为例,则在分配源终端的项目1202中保持有终端#0的识别信息,在状态的项目1203中保持有是待机中的情况。图19是表示任务切换的检测例1的说明图。此处,在终端#1中,举出任务#2通过任务切换而成为执行中的例子进行说明。OS231执行:(1)若检测出任务切换,则(2)基于任务限制表600来判断切换后的任务#2是否具有实时限制。由于任务#2不具有实时限制,所以OS231从任务限制表600的频率的项目603获取任务#2的频率的比率。OS231基于获取的频率的比率从电力控制表700获取电源电压。此处,任务#2的频率的比率是50[%],所以电源电压的值是0.6[V]。而且,OS231执行:(3)针对电源供给电路211,将赋予给CPU212的电源电压的值设定为0.6[V]。OS231执行:(4)针对时钟供给电路214,将赋予给CPU212的时钟的频率设定为以标准定义的频率的50[%]。例如,如果以标准定义的频率是100[MHz],则赋予给CPU212的频率被设定为50[MHz]。图20是表示任务切换的检测例2的说明图。此处,在终端#1中,举出以任务#3通过任务切换而成为执行中的例子进行说明。OS231执行:(1)若检测出任务切换,则(2)基于任务限制表来判断切换后的任务#3是否具有实时限制。由于在任务限制表600中不存在与任务#3有关的信息,所以使用接收的频率的比率。OS231基于接收的频率的比率从电力控制表700获取电源电压。此处,任务#3的频率的比率是30[%],所以电源电压的值是0.4[V]。而且,OS231针对电源供给电路211,执行:(3)将赋予给CPU212的电源电压的值设定为0.4[V]。OS231针对时钟供给电路214,执行:(4)将赋予给CPU212的时钟的频率设定为以标准定义的频率的30[%]。图21是表示任务的执行结束的检测例的说明图。OS231执行:(1)若检测出任务#3的执行结束,则(2)根据任务表1200确定任务#3的分配源终端。由于任务#3的分配源终端是终端#0,所以OS231执行:(3)经由通信I/F213向终端#0发送任务#3的执行结果。若OS221经由通信I/F203接收任务#3的执行结果,则执行:(4)将任务#3的执行结果保存至存储器205。另一方面,OS231针对电源供给电路211,执行:(5)将赋予给CPU221的电源电压的值设定为1.1[V]。并且,OS231针对时钟供给电路214,执行:(6)将赋予给CPU221的时钟的频率设定为以标准定义的最大频率。图22是表示转移后的终端#0中的电池余量的检查例的说明图(其1)。OS221检测计时中断,并判断是否经过一定时间。在OS221判断为经过一定时间的情况下,执行:(1)检查终端#0的电池余量,(2)经由通信I/F203向终端#1发送电池余量的检查请求。若OS231经由通信I/F213接收电池余量的检查请求,则执行:(3)检查电池余量,(4)经由通信I/F213向终端#0发送电池余量。图23是表示转移后的终端#0中的电池余量的检查例的说明图(其2)。OS221执行:(5)判断终端#1的电池余量是否是终端#0的电池余量以下。此处,终端#1的电池余量是30[%],终端#0的电池余量是35[%],所以终端#1的电池余量是终端#0的电池余量以下。而且,OS221执行:(6)经由通信I/F203向终端#1发送任务#2以及任务#3的执行停止与任务#2以及任务#3的执行中数据的回收请求。若OS231接收任务#2以及任务#3的执行停止与任务#2以及任务#3的执行中数据的回收请求,则执行:(7)使任务#2的执行停止,并从就绪队列232删除任务#3,由此使任务#3的执行停止。而且,OS231执行:(8)经由通信I/F213向终端#0发送任务#2的执行中数据和任务#3的执行中数据。接下来,若OS221经由通信I/F203接收任务#2的执行中数据和任务#3的执行中数据,则执行:(9)将各执行中数据保存至存储器205。而且,OS221执行:(10)经由通信I/F203向终端#1发送对执行中数据保存完毕的情况。若OS231经由通信I/F213接收对执行中数据保存完毕的情况,则执行:(11)从存储器215删除任务#2的执行中数据和任务#3的执行中数据。图24是表示转移后的终端#1中的电池余量的检查例的说明图。OS231执行:(1)按一定时间周期对终端#1的电池余量进行检查。OS231执行:(2)从任务表1200确定从终端#0转移出的任务。而且,OS231执行:(3)基于通信电力成本与电池余量来判断是否将转移出的任务返还给终端#0。具体而言,OS231基于电力成本表对从终端#0转移出的任务的执行中数据的发送电力成本的合计进行计算。接下来,OS231比较终端#1的电池余量与计算出的合计值×系数,并判断终端#1的电池余量是否比合计值×系数小。此处,系数使用保持在电力成本表中的值。在OS231判断为终端#1的电池余量比合计值×系数小的情况下,执行:(4)经由通信I/F213向终端#0发送从终端#0转移出的任务的执行中数据。而且,OS231执行:(5)从就绪队列232删除从终端#0转移出的任务。而且,OS221经由通信I/F203接收任务#2的执行中数据与任务#3的执行中数据。OS221执行:(6)将任务#2的执行中数据与任务#3的执行中数据保存至存储器205,(7)将任务#2与任务#3积累于就绪队列222。在本实施方式中,终端#0执行检测部901~第2发送部905的处理,但终端#1也可以同时执行检测部901~第2发送部905的处理。另外,在本实施方式中,为了容易理解,仅以终端#0和终端#1两个终端进行了说明,也可以在3个以上的终端间基于电池余量使任务转移。(控制装置的控制处理顺序)图25~31是表示控制装置的控制处理顺序的流程图。首先,终端#0设为timer0=0(步骤S2501),设为cycle0=5[mins](步骤S2502),判断是否检测出计时中断(步骤S2503)。接下来,在终端#0判断为未检测出计时中断的情况下(步骤S2503:“否”),返回到步骤S2503。在终端#0判断为检测出计时中断的情况下(步骤S2503:“是”),判断是否是timer0<cycle0(步骤S2504)。在终端#0判断为timer0<cycle0的情况下(步骤S2504:“是”),进行timer0的递增(步骤S2505),返回到步骤S2503。此处,表示每隔5分钟进行电池余量的检查的例子。timer0的递增是终端#0在每次计时中断时对timer0加上中断时间间隔,对5分钟的经过进行计数。接下来,在终端#0判断为不是timer0<cycle0的情况下(步骤S2504:“否”),进行电池余量的检查(步骤S2506),判断是否是电池余量≤阈值2(例如,电池容量的10[%])(步骤S2507)。在终端#0判断为电池余量≤阈值2的情况下(步骤S2507:“是”),设定为电池余量状态=低(步骤S2510),移至步骤S2511。在终端#0判断为不是电池余量≤阈值2的情况下(步骤S2507:“否”),判断是否是电池余量≤阈值1(例如,电池容量的50[%])(步骤S2508)。在终端#0判断为不是电池余量≤阈值1的情况下(步骤S2508:“否”),返回到步骤S2501。在终端#0判断为电池余量≤阈值1的情况下(步骤S2508:“是”),设定为电池余量状态=中(步骤S2509),移至步骤S2511。在步骤S2511中,终端#0发送终端的识别信息(步骤S2511),终端#1接收终端的识别信息(步骤S2512),终端#1判断是否在许可终端中登记有接收到的终端的识别信息(步骤S2513)。此处,终端#0向终端#1发送终端#0的识别信息,终端#1从表内的许可终端的项目检索终端#0的识别信息。而且,在终端#1判断为在许可终端中登记有接收到的终端的识别信息的情况下(步骤S2513:“是”),发送转移许可(步骤S2514),移至步骤S2535。另一方面,在终端#1判断为在许可终端未登记有接收到的终端的识别信息的情况下(步骤S2513:“否”),发送转移拒绝(步骤S2515),并结束一系列的处理。另一方面,接着步骤S2514或者步骤S2515,终端#0判断是否接收到转移许可或者转移拒绝(步骤S2516)。在终端#0判断为未接收到转移许可或者转移拒绝的情况下(步骤S2516:“否”),返回到步骤S2516。在终端#0判断为接收到转移许可或者转移拒绝的情况下(步骤S2516:“是”),判断是否接收到转移许可(步骤S2517)。在终端#0判断为未接收到转移许可(接收了转移拒绝)的情况下(步骤S2517:“否”),结束一系列的处理。另一方面,在终端#0判断为接收到转移许可的情况下(步骤S2517:“是”),将发送了转移许可的终端设定为转移目标终端(步骤S2518),移至步骤S2519。接下来,终端#0判断执行中的任务以及待机中的任务中是否存在未选择的任务(步骤S2519)。在终端#0判断为执行中的任务以及待机中的任务中存在未选择的任务的情况下(步骤S2519:“是”),从未选择的任务中选择一个任务作为选择任务(步骤S2520)。终端#0判断是否登记有选择任务的转移电力成本(步骤S2521)。在终端#0判断为未登记有选择任务的转移电力成本的情况下(步骤S2521:“否”),返回步骤S2519。在终端#0判断为登记有选择任务的转移电力成本的情况下(步骤S2521:“是”),判断电池余量状态是否是中(步骤S2522)。在终端#0判断为电池余量状态是中的情况下(步骤S2522:“是”),判断选择任务是否无实时限制(步骤S2523)。在终端#0判断为选择任务不是无实时限制的情况下(步骤S2523:“否”),返回到步骤S2519。在终端#0判断为选择任务是无实时限制的情况下(步骤S2523:“是”),将选择任务设定为转移对象任务(步骤S2524)。终端#0从就绪队列删除选择任务(步骤S2525),返回到步骤S2519。另一方面,在电池余量状态不是中的情况下(步骤S2522:“否”),移至步骤S2524。即、如果电池余量状态是中,则使登记有转移电力成本的任务中的无实时限制的任务转移至终端#1,但如果电池余量状态是低,则使登记有转移电力成本的全部任务转移至终端#1。另外,在终端#0判断为执行中的任务以及待机中的任务中不存在未选择的任务的情况下(步骤S2519:“否”),移至步骤S2526。在步骤S2526中,终端#0判断是否存在未发送的转移对象任务(步骤S2526)。在终端#0判断为存在未发送的转移对象任务的情况下(步骤S2526:“是”),从未发送的转移对象任务中选择一个转移对象任务(步骤S2527),并发送选择出的转移对象任务的识别信息(步骤S2528)。终端#1判断是否接收到任务的识别信息或者任务的转移结束(步骤S2535),在判断为未接收到任务的识别信息以及任务的转移结束的情况下(步骤S2535:“否”),返回到步骤S2535。在终端#1判断为接收到任务的识别信息的情况下(步骤S2535:任务的识别信息),判断存储器中是否保持有接收到识别信息的任务的代码(步骤S2536)。在终端#1判断为存储器中保持有接收到识别信息的任务的代码的情况下(步骤S2536:“是”),发送任务的执行中数据的发送请求(步骤S2537),移至步骤S2539。在终端#1判断为在存储器中未保持有接收到识别信息的任务的代码的情况下(步骤S2536:“否”),发送任务的执行中数据以及任务的代码的发送请求(步骤S2538),移至步骤S2539。终端#0判断是否接收到发送请求(步骤S2529),在判断为未接收到发送请求的情况下(步骤S2529:“否”),返回到步骤S2529。另一方面,在终端#0判断为接收到发送请求的情况下(步骤S2529:“是”),获取转移对象任务的执行时的时钟频率(步骤S2530)。而且,终端#0判断接收的发送请求是否只是执行中数据的发送请求(步骤S2531)。在终端#0判断为接收的发送请求只是执行中数据的发送请求的情况下(步骤S2531:“是”),发送转移对象任务的执行中数据和转移对象任务的时钟频率(步骤S2532),返回到步骤S2526。在终端#0判断为接收的发送请求不仅是执行中数据的发送请求的情况下(步骤S2531:“否”),发送转移对象任务的执行中数据、转移对象任务的代码、和转移对象任务的时钟频率(步骤S2533)。而且,在步骤S2533之后,返回到步骤S2526。在终端#0判断为不存在未发送的转移对象任务的情况下(步骤S2526:“否”),发送转移完成(步骤S2534),移至步骤S2543。另一方面,在步骤S2539中,终端#1判断是否接收到数据(步骤S2539),在判断为未接收到数据的情况下(步骤S2539:“否”),返回到步骤S2539。在终端#1判断为接收到数据的情况下(步骤S2539:“是”),保存接收到的数据(步骤S2540),并在就绪队列积累任务(步骤S2541)。终端#1在任务表登记时钟频率(步骤S2542),返回到步骤S2535。接下来,终端#0设定为timer1=0(步骤S2543),设定为cycle1=5[mins](步骤S2544),并判断是否检测出事件产生(步骤S2545)。在终端#0判断为未检测出事件产生的情况下(步骤S2545:“否”),返回到步骤S2545。在终端#0判断为检测出计时中断的情况下(步骤S2545:计时中断),判断是否是timer1<cycle1(步骤S2546)。在终端#0判断为timer1<cycle1的情况下(步骤S2546:“是”),进行timer1的递增(步骤S2547),返回到步骤S2545。在终端#0判断为不是imer1<cycle1的情况下(步骤S2546:“否”),进行电池余量的检查(步骤S2548),并进行电池余量的检查请求通知(步骤S2549),返回到步骤S2543。另外,在步骤S2545中,在终端#0判断为从终端#1接收到电池余量的情况下(步骤S2545:接收电池余量),判断是否是终端#0的电池余量≥终端#1的电池余量(步骤S2550)。在终端#0判断为终端#0的电池余量≥终端#1的电池余量的情况下(步骤S2550:“是”),发送转移对象任务的执行停止与执行中数据的回收(步骤S2551),返回到步骤S2545。在终端#0判断为不是终端#0的电池余量≥终端#1的电池余量的情况下(步骤S2550:“否”),返回到步骤S2545。另外,在步骤S2545中,在终端#0判断为从终端#1接收到执行结果的情况下(步骤S2545:接收执行结果),将接收到的执行结果保存于存储器(步骤S2552)。而且,终端#0使接收到执行结果的任务的执行开始(步骤S2553),返回到步骤S2545。另外,在步骤S2545中,在终端#0判断为从终端#1接收到执行中数据的情况下(步骤S2545:接收执行中数据),将执行中数据保存于存储器(步骤S2554)。终端#0将回收了执行中数据的任务积累于就绪队列(步骤S2555),返回到步骤S2545。在步骤S2535的转移完成的情况之后,终端#1设定为timer2=0(步骤S2556),设定为cycle2=100[ms](步骤S2557)。而且,终端#1判断是否检测出事件产生(步骤S2558)。在终端#1判断为未检测出事件产生的情况下(步骤S2558:“否”),返回到步骤S2558。在终端#1判断为接收到电池余量的检查请求的情况下(步骤S2558:电池余量的检查请求),进行电池余量的检查(步骤S2559),向请求源终端发送电池余量(步骤S2560)。另外,在步骤S2558中,在终端#1判断为接收到执行停止请求的情况下(步骤S2558:执行停止),使已转移的任务的执行停止(步骤S2561),并将执行中数据发送给转移源终端(步骤S2562)。另外,在步骤S2558中,在终端#1判断为检测出任务切换的情况下(步骤S2558:任务切换),进行与切换后的任务对应的频率、电源电压的设定(步骤S2563)。而且,终端#1使该任务的执行开始(步骤S2564)。另外,在步骤S2558中,在终端#1判断为检测出任务的执行结束的情况下(步骤S2558:任务的执行结束),判断执行结束的任务的分配源终端是否是其他终端(步骤S2565)。在终端#1判断为分配源终端不是其他终端的情况下(步骤S2565:“否”),返回到步骤S2558。在终端#1判断为分配源终端是其他终端的情况下(步骤S2565:“是”),将执行结果发送给分配源终端(步骤S2566),将频率、电源电压设定为初始值(步骤S2567),返回到步骤S2558。另外,在步骤S2558中,在终端#1判断为检测出计时中断的情况下(步骤S2558:计时中断),判断是否是timer2<cycle2(步骤S2568)。在终端#1判断为timer2<cycle2的情况下(步骤S2568:“是”),进行timer2的递增(步骤S2569),返回到步骤S2558。另一方面,在终端#1判断为不是timer2<cycle2的情况下(步骤S2568:“否”),进行电池余量的检查(步骤S2570),获取转移后的任务的执行中数据的通信电力成本(步骤S2571)。而且,终端#1判断是否是电池余量<转移后的任务的执行中数据的通信电力成本的合计值×系数(步骤S2572)。在终端#1判断为不是电池余量<转移后的任务的执行中数据的通信电力成本的合计值×系数的情况下(步骤S2572:“否”),返回到步骤S2556。另一方面,在终端#1判断为电池余量<转移后的任务的执行中数据的通信电力成本的合计值×系数的情况下(步骤S2572:“是”),将转移后的任务的执行中数据发送给转移源终端(步骤S2573)。而且,从就绪队列中删除转移后的任务(步骤S2574),返回到步骤S2556。如以上说明,根据控制程序、控制装置、以及控制方法,若执行任务时第1终端的电池余量变为阈值以下,则使该任务的执行停止,并将该任务的识别信息发送给第2终端,使第2终端执行。即、通过将执行中的任务转移至第2终端,能够抑制因任务的执行而带来第1终端的电池消耗,并能够防止该任务的执行结果的消失。另外,即使第2终端不具有该任务的代码,通过将任务的代码发送给第2终端,能够使任务转移至第2终端,并能够抑制第1终端的电池消耗。另外,与执行可能性有关的信息表示具有任务的代码的情况下,通过将任务的执行指示发送给第2终端,能够使任务转移至第2终端,并能够抑制第1终端的电池消耗。另外,通过将任务的执行结果发送给第2终端,即使是执行结果存在继续性的任务,也能够使任务转移至第2终端,并能够抑制第1终端的电池消耗。另外,在第2终端不能执行该任务的情况下,不停止该任务的执行,从而能够不使任务的执行中断而控制第1终端中的任务的执行。另外,即使第1终端的电池余量变为阈值以下,如果执行中的任务具有从任务的执行开始起的执行期限,则不使该任务转移至第2终端,从而不使执行中的任务中断,而能够遵守该任务的执行期限。另外,第1终端的电池余量变为比阈值小的其他阈值以下的情况下,如果执行中的任务具有从任务的执行开始起的执行期限,则使该任务转移至第2终端。由此,能够防止第1终端的电池用尽,并能够防止因第1终端的电池用尽而使执行中的任务的执行结果消失的情况。如以上说明,根据控制程序、控制装置、以及控制方法,在第2终端执行从第1终端接收到执行指示的任务时,对第2终端的电池余量成为阈值以下进行检测。而且,在检测出第2终端的电池余量变为阈值以下的情况下,将该接收到的任务的执行结果发送给第1终端,从而能够防止任务的执行结果的消失。如以上说明,根据控制程序、控制装置、以及控制方法,如果从第1终端接收到执行指示的任务不具有从任务的执行开始起的执行期限,则使赋予给CPU的电源电压的值下降。由此,能够使第2终端省电化,并能够防止第2终端的电池消耗。如以上说明,根据控制程序、控制装置、以及控制方法,如果从第1终端接收到执行指示的任务不具有从任务的执行开始起的执行期限,则使赋予给CPU的时钟频率的值下降。由此,能够使第2终端省电化,并能够防止第2终端的电池消耗。符号说明901、914检测部902停止部903第1发送部904、911接收部905第2发送部912设定部913执行部915发送部
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1