JP5354106B2 - 制御プログラム、制御装置、および制御方法 - Google Patents
制御プログラム、制御装置、および制御方法 Download PDFInfo
- Publication number
- JP5354106B2 JP5354106B2 JP2012527514A JP2012527514A JP5354106B2 JP 5354106 B2 JP5354106 B2 JP 5354106B2 JP 2012527514 A JP2012527514 A JP 2012527514A JP 2012527514 A JP2012527514 A JP 2012527514A JP 5354106 B2 JP5354106 B2 JP 5354106B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- terminal
- execution
- remaining battery
- battery level
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000005540 biological transmission Effects 0.000 claims description 48
- 238000001514 detection method Methods 0.000 claims description 36
- 238000013508 migration Methods 0.000 description 55
- 230000005012 migration Effects 0.000 description 55
- 238000004891 communication Methods 0.000 description 50
- 238000012545 processing Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 28
- 238000007906 compression Methods 0.000 description 22
- 238000012546 transfer Methods 0.000 description 18
- 230000006835 compression Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Telephone Function (AREA)
Description
本発明は、タスクの実行を制御する制御プログラム、制御装置、および制御方法に関する。
従来、複数の端末間で、無線通信を介した分散処理技術の利用が行われている。たとえば、携帯電話などの端末では電池駆動のシステムであるため、無線通信を介して分散処理を行う場合、該処理中に電池が切れてしまうと該処理を継続することができなかった。そこで、各端末の電池残量に基づいてプロセスを割り当てる割り当て先の端末を決定する技術が知られている(たとえば、下記特許文献1,2参照。)。具体的には、電池残量が閾値以下である端末にはプロセスが割り当てられないように制御される。
しかしながら、従来技術では、電池残量の判定をプロセスの割り当て時のみに行うため、少しでも電池残量が閾値を超えていれば、端末の負荷に基づいてプロセスを割り当てる。すなわち、演算能力の高いCPUを有する端末には多くのプロセスが割り当てられるため、多くの電力を消耗し、電池残量が早く減少してしまう問題点があった。
分散処理中に各端末が分散処理以外のタスクの実行を行う場合、それらのタスクの実行によって電池残量がなくなってしまう場合があり、分散処理で割り当てられたタスクが完了することを保証できない問題点があった。
本発明は、上述した従来技術による問題点を解消するため、タスクの実行による電池の消耗を抑制することができる制御プログラム、制御装置、および制御方法を提供することを目的とする。
本発明の一観点によれば、第1の端末でタスクが実行中に、前記第1の端末の電池残量が閾値以下となるのを検出し、前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記タスクの実行を停止し、前記第1の端末と通信可能な第2の端末に前記タスクの識別情報を送信し、前記タスクの識別情報が送信されたあと、前記タスクの実行可能性に関する情報を前記第2の端末から受信し、受信された実行可能性に関する情報に応じた情報を前記第2の端末に送信する制御プログラム、制御装置、および制御方法が提供される。
本制御プログラム、制御装置、および制御方法によれば、タスクの実行による電池の消耗を抑制することができるという効果を奏する。
以下に添付図面を参照して、本発明にかかる制御プログラム、制御装置、および制御方法の好適な実施の形態を詳細に説明する。
図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(Central Processing Unit)202と、通信I/F203と、クロック供給回路204と、メモリ205と、を有している。各部は、バス206によってそれぞれ接続されている。端末#1には、電源供給回路211と、CPU(Central Processing Unit)212と、通信I/F213と、クロック供給回路214と、メモリ215と、を有している。各部は、バス216によってそれぞれ接続されている。
図2は、複数の端末のハードウェアを示すブロック図である。図2において、端末#0および端末#1は、それぞれ制御装置である。端末#0には、電源供給回路201と、CPU(Central Processing Unit)202と、通信I/F203と、クロック供給回路204と、メモリ205と、を有している。各部は、バス206によってそれぞれ接続されている。端末#1には、電源供給回路211と、CPU(Central Processing Unit)212と、通信I/F213と、クロック供給回路214と、メモリ215と、を有している。各部は、バス216によってそれぞれ接続されている。
CPU202とCPU212とは、各端末の全体の制御を司る。CPU202は制御プログラムを有するOS221を実行している。また、OS221はCPU202に割り当てられたタスクを順に実行するために、レディーキュー222を有している。レディーキュー222には実行待ちのタスクが積まれており、たとえば、OS221がレディーキュー222から順にタスクを取り出して、実行する。そして、OS221は端末#0の電池残量をモニタするAPI(Application Program Interface)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とは、たとえば、アドホック通信により無線通信を行うことができる。
メモリ205とメモリ215とは、具体的には、たとえば、ROM(Read Only Memory)と、RAM(Random Access Memory)と、フラッシュ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は電池残量状態が低または中となったときに、実行中のタスクやレディーキュー222内のタスクを移行させる移行先の端末の識別情報がOS221により設定される。
図5は、テーブル500を示す説明図である。テーブル500は、許可端末の項目501と移行先端末の項目502とを有している。許可端末の項目501には割り当てを許可する端末の識別情報が保持されている。許可端末の項目501については端末の利用者により設定される。移行先端末の項目502は電池残量の状態が低または中となったときに、実行中のタスクやレディーキュー232内のタスクを移行させる移行先の端末の識別情報がOS231により設定される。
図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パケットあたりの通信電力コストについては利用者があらかじめ設定する。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]
・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]
・移行電力コスト(実行中データのみを送信する場合)=4×1024/128×1.5
=48[μw]
また、タスクテーブル1100およびタスクテーブル1200は、各端末に割り当てられたタスクを実行中であるか否かを示す情報である。たとえば、OS221はタスクの割当指示や他の端末からのタスクの実行指示を受け付けると、各指示を受け付けたタスクをタスクテーブル1100に登録する。タスクテーブル1100およびタスクテーブル1200の詳細例については後述する。
(各端末の機能ブロック図)
図9は、各端末の機能ブロック図である。本実施の形態では、検出部901と、停止部902と、第1の送信部903と、受信部904と、第2の送信部905と、を有する制御装置として端末#0を例に挙げて説明する。検出部901〜第2の送信部905はメモリ205に記憶されているOS221が有している。該端末#0のCPU202が該OS221をロードして該OS221にコーディングされている処理を実行することにより、検出部901〜第2の送信部905の処理が実現される。
図9は、各端末の機能ブロック図である。本実施の形態では、検出部901と、停止部902と、第1の送信部903と、受信部904と、第2の送信部905と、を有する制御装置として端末#0を例に挙げて説明する。検出部901〜第2の送信部905はメモリ205に記憶されているOS221が有している。該端末#0のCPU202が該OS221をロードして該OS221にコーディングされている処理を実行することにより、検出部901〜第2の送信部905の処理が実現される。
また、本実施の形態では、受信部911と、設定部912と、実行部913と、検出部914と、送信部915と、を有する制御装置として端末#1を例に挙げて説明する。受信部911〜送信部915はメモリ215に記憶されているOS231が有し、該端末#1のCPU212が該OS231をロードして該OS231にコーディングされている処理を実行することにより、受信部911〜送信部915の処理が実現される。
検出部901は、端末#0でタスクが実行中に、端末#0の電池残量が閾値以下となるのを検出する。
停止部902は、検出部901により端末#0の電池残量が閾値以下となるのが検出された場合、タスクの実行を停止する。
第1の送信部903は、検出部901により端末#0の電池残量が閾値以下となるのが検出された場合、端末#0と通信可能な端末#1にタスクの識別情報を送信する。
受信部904は、第1の送信部903によりタスクの識別情報が送信されたあと、タスクの実行可能性に関する情報を端末#1から受信する。
第2の送信部905は、受信部904により受信された実行可能性に関する情報に応じた情報を端末#1に送信する。
また、第2の送信部905は、実行可能性に関する情報がタスクのコードを有していないことを示す場合、タスクのコードおよびタスクの実行指示を端末#1に送信する。
また、第2の送信部905は、実行可能性に関する情報がタスクのコードを有していることを示す場合、タスクの実行指示を端末#1に送信する。
また、第2の送信部905は、タスクの実行結果を端末#1に送信する。
また、停止部902は、受信部904により受信されたタスクの実行可能性に関する情報が端末#1でタスクが実行不可であることを示す場合、タスクの実行を停止しない。
第1の送信部903は、検出部901により端末#0の電池残量が閾値以下となるのが検出されても、タスクがタスクの実行開始からの実行期限を有している場合、端末#1にタスクの識別情報を送信しない。ここで、タスクの実行開始からの実行期限をリアルタイム制約と称する。
停止部902は、検出部901により端末#0の電池残量が閾値以下となるのが検出されても、タスクがリアルタイム制約を有している場合、タスクの実行を停止しない。
検出部901は、電池残量が閾値より小さい他の閾値以下となるのを検出する。
第1の送信部903は、検出部901により電池残量が他の閾値以下となるのを検出した場合、タスクがリアルタイム制約を有していても、端末#1にタスクの識別情報を送信する。以下、閾値を閾値1と称し、他の閾値を閾値2とする。
また、本実施の形態では、端末#0の電池残量が閾値2以下となると、端末#0の電池残量状態が低に設定され、端末#0の電池残量が閾値2より大きく閾値1以下となると、端末#0の電池残量状態が中に設定される。
受信部911は、端末#0から端末#1へのタスクの実行指示を受信する。
実行部913は、受信部911により実行指示が受信されたタスクを実行する。
検出部914は、実行部913によりタスクを実行中に、端末#1の電池残量が閾値以下となるのを検出する。本実施の形態では閾値を移行電力コストに基づいて決定している。
送信部915は、検出部914により電池残量が閾値以下となるのが検出された場合、タスクの実行結果を端末#0に送信する。
また、設定部912は、受信部911により実行指示が受信されたタスクがタスクの実行開始からの実行期限を有していない場合、端末#1のCPU212へのクロックの供給源に対して、クロックの周波数をタスクに応じた周波数に設定する。
また、設定部912は、受信部911により実行指示が受信されたタスクがタスクの実行開始からの実行期限を有していない場合、端末#1のCPU212への電源電圧の供給源に対して、電源電圧の値をタスクに応じた電源電圧の値に設定する。
また、実行部913は、設定部912による設定後に、受信されたタスクを実行する。
以上を踏まえて図を用いて詳細に説明する。
図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が実行中であり、タスク#1〜タスク#3がレディーキュー222に登録されているため、タスク#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)端末#0の識別情報を端末#1へ通信I/F203を介して送信する。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)タスク#2の識別情報を通信I/F203を介して送信する。OS231がタスク#2の識別情報を通信I/F213を介して受信すると、(2)メモリ215からタスク#2のコードをタスク#2の識別情報に基づいて検索する。タスク#2のコードはメモリ215に記憶されているため、OS231が(3)タスク#2の実行中データの送信依頼を通信I/F213を介して端末#0へ送信する。ここで、実行中データとは各タスクの送信時までの実行結果である。
そして、OS221がタスク#2の実行中データの送信依頼を通信I/F203を介して受信すると、(4)タスク#2の実行中データを通信I/F203を介して端末#1へ送信する。ここで、同時にタスク#2を実行中に設定可能なクロックの周波数もOS221が送信する。OS231がタスク#2の実行中データを通信I/F213を介して受信し、(5)タスク#2の実行中データをメモリ215へ保存する。ここで、同時にタスク#2を実行中に設定可能なクロックの周波数もOS231が受信し、メモリ215へ保存する。
そして、OS231が(6)タスク#2をレディーキュー232へ積む。さらに、OS231がタスクテーブル1200にタスク#2に関する情報を登録する。これにより、タスク#2が端末#0から端末#1へ移行される。そして、OS221がタスク#2の移行完了を通信I/F203を介して端末#1へ送信する。OS221はタスクテーブル1100のタスク#2に関する状態の項目1103を移行に変更する。
図16は、移行先端末にコードがないタスクの移行例を示す説明図である。つぎに、OS221が(1)タスク#3の識別情報を通信I/F203を介して送信する。OS231がタスク#3の識別情報を通信I/F213を介して受信すると、(2)メモリ215からタスク#3のコードを検索する。タスク#3のコードはメモリ215に記憶されていないため、OS231が(3)タスク#3のコードとタスク#3の実行中データとの送信依頼を通信I/F213を介して端末#0へ送信する。
そして、OS221がタスク#3のコードとタスク#3の実行中データとの送信依頼を通信I/F203を介して受信すると、(4)タスク#3のコードとタスク#3の実行中データとを通信I/F203を介して端末#1へ送信する。ここで、同時にタスク#3を実行中に設定可能なクロックの周波数もOS221が送信する。OS231がタスク#3のコードとタスク#3の実行中データとを通信I/F213を介して受信し、(5)メモリ215へ保存する。ここで、同時にタスク#3を実行中に設定可能なクロックの周波数もOS231が受信し、メモリ215へ保存する。
そして、OS231が(6)タスク#3をレディーキュー232へ積む。さらに、OS231がタスクテーブル1200にタスク#3に関する情報を登録する。これにより、タスク#3が端末#0から端末#1へ移行される。そして、OS221がタスク#3の移行完了を通信I/F203を介して端末#0へ通知する。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)切り替えられたタスク#2がリアルタイム制約を有しているか否かをタスク制約テーブル600に基づいて判断する。タスク#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]であれば、50[MHz]がCPU212へ与える周波数として設定される。
図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)タスク#3の実行結果を通信I/F213を介して端末#0へ送信する。OS221は、タスク#3の実行結果を通信I/F203を介して受信すると、(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)電池残量を端末#0へ通信I/F213を介して送信する。
図23は、移行後の端末#0での電池残量のチェック例を示す説明図(その2)である。OS221が、(5)端末#1の電池残量が端末#0の電池残量以下であるか否かを判断する。ここでは、端末#1の電池残量が30[%]であり、端末#0の電池残量が35[%]であるため、端末#1の電池残量は端末#0の電池残量以下である。そして、OS221が、(6)タスク#2およびタスク#3の実行停止とタスク#2およびタスク#3の実行中データの回収依頼を通信I/F203を介して端末#1へ送信する。
OS231がタスク#2およびタスク#3の実行停止とタスク#2およびタスク#3の実行中データの回収依頼を受信すると、(7)タスク#2の実行を停止し、タスク#3をレディーキュー232から削除することによりタスク#3の実行を停止する。そして、OS231が、(8)タスク#2の実行中データとタスク#3の実行中データとを通信I/F213を介して端末#0へ送信する。つぎに、OS221がタスク#2の実行中データとタスク#3の実行中データとを通信I/F203を介して受信すると、(9)各実行中データをメモリ205へ保存する。
そして、OS221が、(10)実行中データを保存済であることを通信I/F203を介して端末#1へ送信する。OS231が、実行中データを保存済であることを通信I/F213を介して受信すると、(11)タスク#2の実行中データとタスク#3の実行中データとをメモリ215から削除する。
図24は、移行後の端末#1での電池残量のチェック例を示す説明図である。OS231が、(1)一定時間周期ごとに端末#1の電池残量をチェックする。OS231が、(2)タスクテーブル1200から端末#0から移行されたタスクを特定する。そして、OS231が、(3)通信電力コストと電池残量とに基づいて移行されたタスクを端末#0に戻すかを判断する。具体的には、OS231が、電力コストテーブルに基づいて端末#0から移行されたタスクの実行中データの送信電力コストの合計を算出する。
つぎに、OS231が、端末#1の電池残量と算出した合計値×係数とを比較して、端末#1の電池残量が合計値×係数より小さいか否かを判断する。ここで、係数は、電力コストテーブルに保持されている値を用いる。OS231が、端末#1の電池残量が合計値×係数より小さいと判断した場合、(4)端末#0から移行されたタスクの実行中データを通信I/F213を介して端末#0へ送信する。そして、OS231が、(5)端末#0から移行されたタスクをレディーキュー232から削除する。そして、OS221が、タスク#2の実行中データとタスク#3の実行中データとを通信I/F203を介して受信する。OS221が、(6)タスク#2の実行中データとタスク#3の実行中データとをメモリ205へ保存し、(7)タスク#2とタスク#3をレディーキュー222に積む。
本実施の形態では、端末#0が検出部901〜第2の送信部905の処理を実行しているが、同時に端末#1が検出部901〜第2の送信部905の処理を実行してもよい。また、本実施の形態では、理解の容易化のために、端末#0と端末#1との2つの端末のみで説明したが、3以上の端末間で電池残量に基づいてタスクを移行させてもよい。
(制御装置の制御処理手順)
図25〜31は、制御装置の制御処理手順を示すフローチャートである。まず、端末#0が、timer0=0とし(ステップS2501)、cycle0=5[mins]とし(ステップS2502)、タイマー割り込みを検出したか否かを判断する(ステップS2503)。つぎに、端末#0が、タイマー割り込みを検出していないと判断した場合(ステップS2503:No)、ステップS2503に戻る。
図25〜31は、制御装置の制御処理手順を示すフローチャートである。まず、端末#0が、timer0=0とし(ステップS2501)、cycle0=5[mins]とし(ステップS2502)、タイマー割り込みを検出したか否かを判断する(ステップS2503)。つぎに、端末#0が、タイマー割り込みを検出していないと判断した場合(ステップS2503:No)、ステップS2503に戻る。
端末#0が、タイマー割り込みを検出したと判断した場合(ステップS2503:Yes)、timer0<cycle0か否かを判断する(ステップS2504)。端末#0が、timer0<cycle0であると判断した場合(ステップS2504:Yes)、timer0のインクリメントを行い(ステップS2505)、ステップS2503へ戻る。ここでは、5分ごとに電池残量のチェックを行う例を示している。timer0のインクリメントは端末#0がタイマー割り込みごとに割り込み時間間隔をtimer0に加算することであり、5分の経過をカウントしている。
つぎに、端末#0が、timer0<cycle0でないと判断した場合(ステップS2504:No)、電池残量のチェックを行い(ステップS2506)、電池残量≦閾値2(たとえば、電池容量の10[%])であるか否かを判断する(ステップS2507)。端末#0が、電池残量≦閾値2であると判断した場合(ステップS2507:Yes)、電池残量状態=低に設定し(ステップS2510)、ステップS2511へ移行する。
端末#0が、電池残量≦閾値2でないと判断した場合(ステップS2507:No)、電池残量≦閾値1(たとえば、電池容量の50[%])であるか否かを判断する(ステップS2508)。端末#0が、電池残量≦閾値1でないと判断した場合(ステップS2508:No)、ステップS2501へ戻る。端末#0が、電池残量≦閾値1であると判断した場合(ステップS2508:Yes)、電池残量状態=中に設定し(ステップS2509)、ステップS2511へ移行する。
ステップS2511において、端末#0が、端末の識別情報を送信し(ステップS2511)、端末#1が、端末の識別情報を受信し(ステップS2512)、端末#1が、受信した端末の識別情報が許可端末に登録されているか否かを判断する(ステップS2513)。ここでは、端末#0が端末#0の識別情報を端末#1に送信し、端末#1がテーブル内の許可端末の項目から端末#0の識別情報を検索する。
そして、端末#1が、受信した端末の識別情報が許可端末に登録されていると判断した場合(ステップS2513:Yes)、移行許可を送信し(ステップS2514)、ステップS2535へ移行する。一方、端末#1が、受信した端末の識別情報が許可端末に登録されていないと判断した場合(ステップS2513:No)、移行拒否を送信し(ステップS2515)、一連の処理を終了する。
一方、ステップS2514またはステップS2515のつぎに、端末#0が、移行許可または移行拒否を受信したか否かを判断する(ステップS2516)。端末#0が、移行許可または移行拒否を受信していないと判断した場合(ステップS2516:No)、ステップS2516へ戻る。端末#0が、移行許可または移行拒否を受信したと判断した場合(ステップS2516:Yes)、移行許可を受信したか否かを判断する(ステップS2517)。
端末#0が、移行許可を受信していない(移行拒否を受信した)と判断した場合(ステップS2517:No)、一連の処理を終了する。一方、端末#0が、移行許可を受信したと判断した場合(ステップS2517:Yes)、移行許可を送信した端末を移行先端末に設定し(ステップS2518)、ステップS2519へ移行する。
つぎに、端末#0が、実行中のタスクおよび待機中のタスクの中で未選択のタスクがあるか否かを判断する(ステップS2519)。端末#0が、実行中のタスクおよび待機中のタスクの中で未選択のタスクがあると判断した場合(ステップS2519:Yes)、未選択のタスクから1つのタスクを選択タスクとして選択する(ステップS2520)。
端末#0が、選択タスクの移行電力コストが登録されているか否かを判断する(ステップS2521)。端末#0が、選択タスクの移行電力コストが登録されていないと判断した場合(ステップS2521:No)、ステップS2519へ戻る。端末#0が、選択タスクの移行電力コストが登録されていると判断した場合(ステップS2521:Yes)、電池残量状態が中であるか否かを判断する(ステップS2522)。
端末#0が、電池残量状態が中であると判断した場合(ステップS2522:Yes)、選択タスクはリアルタイム制約なしであるか否かを判断する(ステップS2523)。端末#0が、選択タスクはリアルタイム制約なしでないと判断した場合(ステップS2523:No)、ステップS2519へ戻る。端末#0が、選択タスクはリアルタイム制約なしであると判断した場合(ステップS2523:Yes)、選択タスクを移行対象タスクに設定する(ステップS2524)。
端末#0が、選択タスクをレディーキューから削除し(ステップS2525)、ステップS2519へ戻る。一方、電池残量状態が中でない場合(ステップS2522:No)、ステップS2524へ移行する。すなわち、電池残量状態が中であれば、移行電力コストが登録されているタスクのうちリアルタイム制約なしのタスクを端末#1に移行させるが、電池残量状態が低であれば、移行電力コストが登録されているすべてのタスクを端末#1に移行させる。
また、端末#0が、実行中のタスクおよび待機中のタスクの中で未選択のタスクがないと判断した場合(ステップS2519:No)、ステップS2526へ移行する。
ステップS2526において、端末#0が、未送信の移行対象タスクがあるか否かを判断する(ステップS2526)。端末#0が、未送信の移行対象タスクがあると判断した場合(ステップS2526:Yes)、未送信の移行対象タスクから1つの移行対象タスクを選択し(ステップS2527)、選択した移行対象タスクの識別情報を送信する(ステップS2528)。
端末#1が、タスクの識別情報またはタスクの移行完了を受信したか否かを判断し(ステップS2535)、タスクの識別情報およびタスクの移行完了を受信していないと判断した場合(ステップS2535:No)、ステップS2535に戻る。端末#1が、タスクの識別情報を受信したと判断した場合(ステップS2535:タスクの識別情報)、識別情報を受信したタスクのコードをメモリに保持しているか否かを判断する(ステップS2536)。
端末#1が、識別情報を受信したタスクのコードをメモリに保持していると判断した場合(ステップS2536:Yes)、タスクの実行中データの送信依頼を送信し(ステップS2537)、ステップS2539へ移行する。端末#1が、識別情報を受信したタスクのコードをメモリに保持していないと判断した場合(ステップS2536:No)、タスクの実行中データおよびタスクのコードの送信依頼を送信し(ステップS2538)、ステップS2539へ移行する。
端末#0が、送信依頼を受信したか否かを判断し(ステップS2529)、送信依頼を受信していないと判断した場合(ステップS2529:No)、ステップS2529へ戻る。一方、端末#0が、送信依頼を受信したと判断した場合(ステップS2529:Yes)、移行対象タスクの実行時のクロック周波数を取得する(ステップS2530)。そして、端末#0が、受信した送信依頼が実行中データのみの送信依頼であるか否かを判断する(ステップS2531)。
端末#0が、受信した送信依頼が実行中データのみの送信依頼であると判断した場合(ステップS2531:Yes)、移行対象タスクの実行中データと移行対象タスクのクロック周波数とを送信し(ステップS2532)、ステップS2526へ戻る。端末#0が、受信した送信依頼が実行中データのみの送信依頼でないと判断した場合(ステップS2531:No)、移行対象タスクの実行中データと移行対象タスクのコードと移行対象タスクのクロック周波数とを送信する(ステップS2533)。そして、ステップS2533のつぎに、ステップS2526へ戻る。
端末#0が、未送信の移行対象タスクがないと判断した場合(ステップS2526:No)、移行完了を送信し(ステップS2534)、ステップS2543へ移行する。
一方、ステップS2539において、端末#1が、データを受信したか否かを判断し(ステップS2539)、データを受信していないと判断した場合(ステップS2539:No)、ステップS2539に戻る。端末#1が、データを受信したと判断した場合(ステップS2539:Yes)、受信したデータを保存し(ステップS2540)、タスクをレディーキューに積む(ステップS2541)。端末#1が、タスクテーブルにクロック周波数を登録し(ステップS2542)、ステップS2535へ戻る。
つぎに、端末#0が、timer1=0に設定し(ステップS2543)、cycle1=5[mins]に設定し(ステップS2544)、イベント発生を検出したか否かを判断する(ステップS2545)。端末#0が、イベント発生を検出していないと判断した場合(ステップS2545:No)、ステップS2545に戻る。端末#0が、タイマー割り込みを検出したと判断した場合(ステップS2545:タイマー割り込み)、timer1<cycle1であるか否かを判断する(ステップS2546)。
端末#0が、timer1<cycle1であると判断した場合(ステップS2546:Yes)、timer1のインクリメントを行い(ステップS2547)、ステップS2545へ戻る。端末#0が、timer1<cycle1でないと判断した場合(ステップS2546:No)、電池残量のチェックを行い(ステップS2548)、電池残量のチェック依頼通知を行い(ステップS2549)、ステップS2543へ戻る。
また、ステップS2545において、端末#0が、端末#1から電池残量を受信したと判断した場合(ステップS2545:電池残量を受信)、端末#0の電池残量≧端末#1の電池残量であるか否かを判断する(ステップS2550)。端末#0が、端末#0の電池残量≧端末#1の電池残量であると判断した場合(ステップS2550:Yes)、移行対象タスクの実行停止と実行中データの回収を送信し(ステップS2551)、ステップS2545へ戻る。端末#0が、端末#0の電池残量≧端末#1の電池残量でないと判断した場合(ステップS2550:No)、ステップ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:No)、ステップS2558に戻る。端末#1が、電池残量のチェック依頼を受信したと判断した場合(ステップS2558:電池残量のチェック依頼)、電池残量のチェックを行い(ステップS2559)、依頼元端末に電池残量を送信する(ステップS2560)。
また、ステップS2558において、端末#1が、実行停止依頼を受信したと判断した場合(ステップS2558:実行停止)、移行されたタスクの実行を停止し(ステップS2561)、実行中データを移行元端末に送信する(ステップS2562)。
また、ステップS2558において、端末#1が、タスクスイッチを検出したと判断した場合(ステップS2558:タスクスイッチ)、切り替えられたタスクに応じた周波数・電源電圧の設定を行う(ステップS2563)。そして、端末#1が、該タスクの実行を開始する(ステップS2564)。
また、ステップS2558において、端末#1が、タスクの実行終了を検出したと判断した場合(ステップS2558:タスクの実行終了)、実行が終了したタスクの割当元端末が他端末であるか否かを判断する(ステップS2565)。端末#1が、割当元端末が他端末でないと判断した場合(ステップS2565:No)、ステップS2558へ戻る。端末#1が、割当元端末が他端末であると判断した場合(ステップS2565:Yes)、実行結果を割当元端末に送信し(ステップS2566)、周波数・電源電圧を初期値に設定し(ステップS2567)、ステップS2558へ戻る。
また、ステップS2558において、端末#1が、タイマー割り込みを検出したと判断した場合(ステップS2558:タイマー割り込み)、timer2<cycle2であるか否かを判断する(ステップS2568)。端末#1が、timer2<cycle2であると判断した場合(ステップS2568:Yes)、timer2のインクリメントを行い(ステップS2569)、ステップS2558へ戻る。
一方、端末#1が、timer2<cycle2でないと判断した場合(ステップS2568:No)、電池残量のチェックを行い(ステップS2570)、移行されたタスクの実行中データの通信電力コストを取得する(ステップS2571)。そして、端末#1が、電池残量<移行されたタスクの実行中データの通信電力コストの合計値×係数であるか否かを判断する(ステップS2572)。
端末#1が、電池残量<移行されたタスクの実行中データの通信電力コストの合計値×係数でないと判断した場合(ステップS2572:No)、ステップS2556へ戻る。一方、端末#1が、電池残量<移行されたタスクの実行中データの通信電力コストの合計値×係数であると判断した場合(ステップS2572:Yes)、移行されたタスクの実行中データを移行元端末に送信する(ステップ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の端末の電池切れにより実行中のタスクの実行結果が消失するのを防止することができる。
以上説明したように、制御プログラム、制御装置、および制御方法によれば、第1の端末から実行指示を受信したタスクを第2の端末で実行中に、第2の端末の電池残量が閾値以下となるのを検出する。そして、第2の端末の電池残量が閾値以下となるのが検出された場合、該受信したタスクの実行結果を第1の端末に送信することにより、タスクの実行結果の消失を防止することができる。
以上説明したように、制御プログラム、制御装置、および制御方法によれば、第1の端末から実行指示を受信したタスクがタスクの実行開始からの実行期限を有していなければ、CPUに与える電源電圧の値を下げる。これにより、第2の端末を省電力化することができ、第2の端末の電池消耗を防止することができる。
以上説明したように、制御プログラム、制御装置、および制御方法によれば、第1の端末から実行指示を受信したタスクがタスクの実行開始からの実行期限を有していなければ、CPUに与えるクロック周波数の値を下げる。これにより、第2の端末を省電力化することができ、第2の端末の電池消耗を防止することができる。
901,914 検出部
902 停止部
903 第1の送信部
904,911 受信部
905 第2の送信部
912 設定部
913 実行部
915 送信部
902 停止部
903 第1の送信部
904,911 受信部
905 第2の送信部
912 設定部
913 実行部
915 送信部
Claims (18)
- 第1の端末でタスクが実行中に、前記第1の端末の電池残量が閾値以下となるのを検出する検出工程と、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記タスクの実行を停止する停止工程と、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記第1の端末と通信可能な第2の端末に前記タスクの識別情報を送信する第1の送信工程と、
前記第1の送信工程により前記タスクの識別情報が送信されたあと、前記タスクの実行可能性に関する情報を前記第2の端末から受信する受信工程と、
前記受信工程により受信された実行可能性に関する情報に応じた情報を前記第2の端末に送信する第2の送信工程と、
を前記第1の端末のプロセッサに実行させることを特徴とする制御プログラム。 - 前記第2の送信工程は、
前記実行可能性に関する情報が前記タスクのコードを有していないことを示す場合、前記タスクのコードおよび前記タスクの実行指示を前記第2の端末に送信することを特徴とする請求項1に記載の制御プログラム。 - 前記第2の送信工程は、
前記実行可能性に関する情報が前記タスクのコードを有していることを示す場合、前記タスクの実行指示を前記第2の端末に送信することを特徴とする請求項1に記載の制御プログラム。 - 前記第2の送信工程は、
さらに、前記タスクの実行結果を前記第2の端末に送信することを特徴とする請求項2または3に記載の制御プログラム。 - 前記停止工程は、
前記受信工程により受信されたタスクの実行可能性に関する情報が前記第2の端末で前記タスクが実行不可であることを示す場合、前記タスクの実行を停止しないことを特徴とする請求項1に記載の制御プログラム。 - 前記第1の送信工程は、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出されても、前記タスクが前記タスクの実行開始からの実行期限を有している場合、前記第2の端末に前記タスクの識別情報を送信せず、
前記停止工程は、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出されても、前記タスクが前記タスクの実行開始からの実行期限を有している場合、前記タスクの実行を停止しないことを特徴とする請求項1に記載の制御プログラム。 - 前記検出工程は、
前記電池残量が前記閾値より小さい他の閾値以下となるのを検出し、
前記第1の送信工程は、
前記検出工程により前記電池残量が前記他の閾値以下となるのを検出した場合、前記タスクが前記タスクの実行開始からの実行期限を有していても、前記第2の端末に前記タスクの識別情報を送信することを特徴とする請求項6に記載の制御プログラム。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクを実行する実行工程と、
前記実行工程により前記タスクの実行中に、前記第2の端末の電池残量が閾値以下となるのを検出する検出工程と、
前記検出工程により前記電池残量が閾値以下となるのが検出された場合、前記タスクの実行結果を前記第1の端末に送信する送信工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御プログラム。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへのクロックの供給源に対して、前記クロックの周波数を前記タスクに応じた周波数に設定する設定工程と、
前記設定工程による設定後に、前記タスクを実行する実行工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御プログラム。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへの電源電圧の供給源に対して、前記電源電圧の値を前記タスクに応じた電源電圧の値に設定する設定工程と、
前記設定工程による設定後に、前記タスクを実行する実行工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御プログラム。 - 第1の端末でタスクが実行中に、前記第1の端末の電池残量が閾値以下となるのを検出する検出手段と、
前記検出手段により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記タスクの実行を停止する停止手段と、
前記検出手段により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記第1の端末と通信可能な第2の端末に前記タスクの識別情報を送信する第1の送信手段と、
前記第1の送信手段により前記タスクの識別情報が送信されたあと、前記タスクの実行可能性に関する情報を前記第2の端末から受信する受信手段と、
前記受信手段により受信された実行可能性に関する情報に応じた情報を前記第2の端末に送信する第2の送信手段と、
を備えることを特徴とする制御装置。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信手段と、
前記受信手段により前記実行指示が受信されたタスクを実行する実行手段と、
前記実行手段により前記タスクの実行中に、前記第2の端末の電池残量が閾値以下となるのを検出する検出手段と、
前記検出手段により前記電池残量が閾値以下となるのが検出された場合、前記タスクの実行結果を前記第1の端末に送信する送信手段と、
を備えることを特徴とする制御装置。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信手段と、
前記受信手段により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへのクロックの供給源に対して、前記クロックの周波数を前記タスクに応じた周波数に設定する設定手段と、
前記設定手段による設定後に、前記タスクを実行する実行手段と、
を備えることを特徴とする制御装置。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信手段と、
前記受信手段により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへの電源電圧の供給源に対して、前記電源電圧の値を前記タスクに応じた電源電圧の値に設定する設定手段と、
前記設定手段による設定後に、前記タスクを実行する実行手段と、
を備えることを特徴とする制御装置。 - 第1の端末でタスクが実行中に、前記第1の端末の電池残量が閾値以下となるのを検出する検出工程と、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記タスクの実行を停止する停止工程と、
前記検出工程により前記第1の端末の電池残量が前記閾値以下となるのが検出された場合、前記第1の端末と通信可能な第2の端末に前記タスクの識別情報を送信する第1の送信工程と、
前記第1の送信工程により前記タスクの識別情報が送信されたあと、前記タスクの実行可能性に関する情報を前記第2の端末から受信する受信工程と、
前記受信工程により受信された実行可能性に関する情報に応じた情報を前記第2の端末に送信する第2の送信工程と、
を前記第1の端末のプロセッサが実行することを特徴とする制御方法。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクを実行する実行工程と、
前記実行工程により前記タスクの実行中に、前記第2の端末の電池残量が閾値以下となるのを検出する検出工程と、
前記検出工程により前記電池残量が閾値以下となるのが検出された場合、前記タスクの実行結果を前記第1の端末に送信する送信工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御方法。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへのクロックの供給源に対して、前記クロックの周波数を前記タスクに応じた周波数に設定する設定工程と、
前記設定工程による設定後に、前記タスクを実行する実行工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御方法。 - 第1の端末から第2の端末へのタスクの実行指示を受信する受信工程と、
前記受信工程により前記実行指示が受信されたタスクが前記タスクの実行開始からの実行期限を有していない場合、前記第2の端末のプロセッサへの電源電圧の供給源に対して、前記電源電圧の値を前記タスクに応じた電源電圧の値に設定する設定工程と、
前記設定工程による設定後に、前記タスクを実行する実行工程と、
を前記第2の端末のプロセッサが実行することを特徴とする制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/063332 WO2012017545A1 (ja) | 2010-08-05 | 2010-08-05 | 制御プログラム、制御装置、および制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012017545A1 JPWO2012017545A1 (ja) | 2013-09-19 |
JP5354106B2 true JP5354106B2 (ja) | 2013-11-27 |
Family
ID=45559076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012527514A Expired - Fee Related JP5354106B2 (ja) | 2010-08-05 | 2010-08-05 | 制御プログラム、制御装置、および制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9189359B2 (ja) |
JP (1) | JP5354106B2 (ja) |
WO (1) | WO2012017545A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6071647B2 (ja) | 2013-02-28 | 2017-02-01 | 株式会社東芝 | 情報処理装置、動作状態制御方法及びプログラム |
KR102449533B1 (ko) * | 2015-05-28 | 2022-10-04 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서 어플리케이션의 실행을 제어하는 방법 |
US10671428B2 (en) * | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
GB2591813B (en) * | 2020-02-10 | 2022-05-04 | Advanced Risc Mach Ltd | Determining response to processor power source using code portion progress indicators |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09185438A (ja) * | 1995-12-28 | 1997-07-15 | Canon Inc | 携帯通信端末装置及び通信端末装置 |
JP2004282937A (ja) * | 2003-03-18 | 2004-10-07 | Denso Corp | 車両用交流発電機 |
JP2005033235A (ja) * | 2003-07-07 | 2005-02-03 | Hitachi Maxell Ltd | 通信方法、通信システム、端末及び情報処理装置 |
JP2006268166A (ja) * | 2005-03-22 | 2006-10-05 | Fuji Xerox Co Ltd | 情報処理装置、方法、及びプログラム |
JP2009048583A (ja) * | 2007-08-23 | 2009-03-05 | Hitachi Ltd | ストレージシステム、管理装置、スケジューリング方法、プログラム、記録媒体 |
JP2010039802A (ja) * | 2008-08-06 | 2010-02-18 | Nec Corp | マルチプロセッサシステム、スケジューリング方法およびそのプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6077258A (ja) * | 1983-10-05 | 1985-05-01 | Fujitsu Ltd | 計算機ネツトワ−クシステムにおける負荷分散処理方式 |
US6006248A (en) | 1996-07-12 | 1999-12-21 | Nec Corporation | Job application distributing system among a plurality of computers, job application distributing method and recording media in which job application distributing program is recorded |
JP3006551B2 (ja) * | 1996-07-12 | 2000-02-07 | 日本電気株式会社 | 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体 |
JP2002099432A (ja) * | 2000-09-22 | 2002-04-05 | Sony Corp | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 |
JP2005141669A (ja) | 2003-11-10 | 2005-06-02 | Nippon Telegr & Teleph Corp <Ntt> | グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法 |
JP2006246202A (ja) | 2005-03-04 | 2006-09-14 | Nec Corp | 最適中継ノード選択方法、ノード及びマルチホップ無線通信ネットワークシステム |
US8231233B2 (en) * | 2009-06-17 | 2012-07-31 | Motorola Mobility, Inc. | Portable electronic device and method of power management for same to accommodate projector operation |
-
2010
- 2010-08-05 WO PCT/JP2010/063332 patent/WO2012017545A1/ja active Application Filing
- 2010-08-05 JP JP2012527514A patent/JP5354106B2/ja not_active Expired - Fee Related
-
2013
- 2013-02-05 US US13/759,435 patent/US9189359B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09185438A (ja) * | 1995-12-28 | 1997-07-15 | Canon Inc | 携帯通信端末装置及び通信端末装置 |
JP2004282937A (ja) * | 2003-03-18 | 2004-10-07 | Denso Corp | 車両用交流発電機 |
JP2005033235A (ja) * | 2003-07-07 | 2005-02-03 | Hitachi Maxell Ltd | 通信方法、通信システム、端末及び情報処理装置 |
JP2006268166A (ja) * | 2005-03-22 | 2006-10-05 | Fuji Xerox Co Ltd | 情報処理装置、方法、及びプログラム |
JP2009048583A (ja) * | 2007-08-23 | 2009-03-05 | Hitachi Ltd | ストレージシステム、管理装置、スケジューリング方法、プログラム、記録媒体 |
JP2010039802A (ja) * | 2008-08-06 | 2010-02-18 | Nec Corp | マルチプロセッサシステム、スケジューリング方法およびそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN103329101A (zh) | 2013-09-25 |
US9189359B2 (en) | 2015-11-17 |
US20130151882A1 (en) | 2013-06-13 |
WO2012017545A1 (ja) | 2012-02-09 |
JPWO2012017545A1 (ja) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7982585B2 (en) | Method and apparatus for active RFID network | |
JP6648754B2 (ja) | 通信装置、通信方法、およびプログラム | |
CN107113730B (zh) | 能量高效的无线数据传递 | |
JP5354106B2 (ja) | 制御プログラム、制御装置、および制御方法 | |
CN111045810B (zh) | 一种任务调度处理方法及装置 | |
JP2006338264A (ja) | タスク割当装置およびタスク割当方法 | |
CN110446193B (zh) | 蓝牙数据包的处理方法和装置 | |
US11579927B2 (en) | Electronic device for securing usable dynamic memory and operating method thereof | |
CN112260366A (zh) | 充电方法、充电装置和充电器 | |
CN113312284A (zh) | 数据传输方法、装置、系统、存储介质及电子装置 | |
US20100318650A1 (en) | Method and device for agile computing | |
US20140376384A1 (en) | System and method for adapting characteristics of application layer protocol using sensed indication | |
JP2016033692A (ja) | 不正接続検知システム、方法およびプログラム | |
US9716928B2 (en) | Communications apparatus, system, and communications method | |
US9996132B2 (en) | Distributed processing method, system, and computer product | |
CN107483228B (zh) | 物联网中继器拆分式备份的方法及系统 | |
EP3018969A1 (en) | Communication terminal, communication method, and program | |
US10425508B1 (en) | System for identifying idle time of a protocol to facilitate communication using multiple protocols | |
EP3123786B1 (en) | Channel scan based on mobility state | |
US10608872B2 (en) | Radio interrupt | |
JP6075052B2 (ja) | メッシュ無線通信ネットワークシステム、無線通信方法、および、無線端末 | |
US9515917B2 (en) | Communications apparatus, system, and communications method | |
US20150137995A1 (en) | Communication apparatus, system, and communication method | |
CN112486310A (zh) | 数据业务管控方法、装置及终端 | |
CN109076482B (zh) | 在通信网络中执行至少一个定位功能的装置、方法、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130730 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130812 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |