JP4771431B2 - オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム - Google Patents

オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム Download PDF

Info

Publication number
JP4771431B2
JP4771431B2 JP2007243382A JP2007243382A JP4771431B2 JP 4771431 B2 JP4771431 B2 JP 4771431B2 JP 2007243382 A JP2007243382 A JP 2007243382A JP 2007243382 A JP2007243382 A JP 2007243382A JP 4771431 B2 JP4771431 B2 JP 4771431B2
Authority
JP
Japan
Prior art keywords
event
task
queue
events
cpu load
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
Application number
JP2007243382A
Other languages
English (en)
Other versions
JP2009075808A (ja
Inventor
剣明 呉
俊晃 上向
史昭 菅谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2007243382A priority Critical patent/JP4771431B2/ja
Priority to US12/211,376 priority patent/US8356301B2/en
Publication of JP2009075808A publication Critical patent/JP2009075808A/ja
Application granted granted Critical
Publication of JP4771431B2 publication Critical patent/JP4771431B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Description

本発明は、オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラムに関する。特に、CPU(Central Processing Unit)を搭載した組み込み装置におけるオペレーティングシステムのタスク実行技術に関する。
従来、CPUを搭載した様々な組み込み装置は、オペレーティングシステムを実装している。オペレーティングシステムは、入力デバイスやその他の機能部から発生する複数のイベントを、そのCPUを用いてタスクとして実行する。イベントとは、アプリケーションプログラムの本来の実行とは独立に発生する事象をいう。また、タスクとは、オペレーティングシステムから見た(ユーザから見た)処理の単位である。通常、イベントの発生した順序に基づいて、そのタスクが逐次実行される。
当該装置に多くのイベントが発生することを考慮して、それらイベントを一時的に蓄積するイベントキューが備えられ、イベントを順次読み出しながら処理するイベント駆動型処理技術がある。この技術は、イベントを逐次に処理するものであって、1つのイベントの処理が完全に終了しない限り、次のイベントを読み出さない。
図1は、従来技術に基づくイベント処理機能搭載装置の機能構成図である。
図1によれば、装置1は、入力デバイス部11と、CPU部12と、その他の機能構成部13と、CPU部12がプログラムを実行することによって機能するオペレーティングシステム部10とを有する。入力デバイス部11は、ユーザの操作や装置機能に応じてイベントを発生し、そのイベントをオペレーティングシステム部10へ出力する。
入力デバイス部11は、入力デバイス及び/又は通信デバイスである。入力デバイス部11から発生したイベントは、デバイス/操作種別、発生時刻(例えば装置起動時刻からの相対時間(ms単位))及び/又は操作データ(例えばキースイッチのキーコード、又はマウスの移動量)を含む。
図1によれば、オペレーティングシステム部10は、イベント制御部101と、イベントキュー102と、イベント処理部103と、タスクキュー104と、タスク実行部105とを有する。これら機能部は、CPU部12で実行されるプログラムによって実現される。
イベント制御部101は、入力デバイス部11から発生したイベントをイベントキュー102に入力し、FIFO(First In First Out、先入れ先出し)の待ち状態におく。また、イベント制御部101は、イベントキュー102からイベントを取り出し、そのイベントをイベント処理部103へ出力する。
イベント処理部103は、イベント制御部101から受け取ったイベントについて、アプリケーションに基づくタスクに変換する。タスクは、タスクキュー104へ入力される。タスクキュー104は、タスクを一時的に蓄積し、FIFOの待ち状態におく。タスクキュー104から出力されたタスクは、CPUを用いてタスク実行部105によって実行される。
前述したようなイベント駆動型処理技術によれば、大量のイベントが短時間に発生した場合、イベントキューにも大量のイベントが蓄積されることとなる。このような場合であっても、イベントキューに先に蓄積された全てのイベントの処理が終了するまで、当該イベントの処理は待機される。その結果、アプリケーションの反応が鈍くなるという課題があった。
これに対して、個々のイベントに優先度を付加し、優先度の大小に応じて、複数のイベントキューに挿入する技術がある(例えば特許文献1参照)。図1によれば、複数のイベントキューが備えられ、次に取り出すイベントは、優先度の大きいイベントキューから優先的に取り出される。但し、同一優先度については、先にイベントキューに格納したイベントから順に取り出される。
また、イベント制御部101について、発生したイベントにタイムスタンプを付与する技術もある(例えば特許文献2参照)。この技術によれば、イベント制御部101は、同種の2つのイベントに対して、それらタイムスタンプの時刻間隔が所定閾値よりも短い場合、1つのイベントのみを実行し、その他のイベントを削除する。これにより、イベントキューに多くのイベントが滞留するのを防止する。例えば、装置の利用者が、同じキーを何度も繰り返し操作した場合、それらのキー操作に基づくイベントを削除することができる。
近年、携帯電話機又は携帯端末のような処理能力が比較的低い端末にも、前述したようなオペレーティングシステムが実装されている。また、デバイス技術の小型高性能化によって、小型組み込み装置にも、キースイッチ、マウス又はトラックポイントのようなポインティングデバイス、テンキー、フルキーボード、加速度センサ、タッチパネル等が、入力デバイスとして搭載又は接続されてきている。更に、赤外線やBluetooth(登録商標)などの短距離無線通信技術を介して、携帯電話機上で実行されるアプリケーションを操作する入力デバイスもある。例えば、ワイヤレスマウスや、加速度センサを内蔵したリモコンがある。このような入力デバイスによって発生するイベントを、タスクに変換して実行することによって、携帯電話機であっても、パーソナルコンピュータと同様に、ポインティング操作やスクロール操作をすることができる。
特開2000−137621号公報 特開2004−287755号公報
しかしながら、携帯電話機に搭載されるCPUの処理能力は、パーソナルコンピュータに搭載されるCPUよりもかなり低い。そのために、携帯電話機に対する利用者の操作によっては、その入力デバイスから、短時間に大量のイベントが連続的に発生する場合がある。その場合、これらイベントを効率的に処理する必要がある。
特許文献1に記載された技術によれば、各イベントに優先度を付加するために、優先度情報に基づく分だけ情報量が増加する。また、複数のイベントキューを管理する必要があるため、メモリの利用効率も低くなる。更に、複数のイベントキューを備えた場合、イベントの入力順序と出力順序とが異なる場合があり、FIFOの関係を維持しようとすると、メモリの利用効率が更に低くなる。
特許文献2に記載された技術によれば、タイムスタンプの時刻間隔のみに基づいてイベントを削除するために、削除すべきでないイベントまで誤って削除する可能性もある。
そこで、本発明は、処理能力の低いCPUを搭載し且つオペレーティングシステムを実装した組み込み装置であっても、短時間に発生した大量のイベントを効率的に処理することができるイベント処理機能搭載装置及びプログラムを提供することを目的とする。
本発明によれば、発生したイベントを一時的に蓄積するイベントキューと、該イベントキューから読み出されたイベントに基づくタスクを一時的に蓄積するタスクキューとを有し、イベントは、デバイス/操作種別、発生時刻及び操作量を含むものとするイベント処理機能搭載装置において、
タスクキューに蓄積された未実行の全てのタスクの実行時間を、CPU負荷量Ctとして算出するCPU負荷量算出手段と、
CPU負荷量に基づいて、イベントキューに蓄積された複数のイベントを最適化するイベントキュー最適化手段と
を有し、
イベントキュー最適化手段は、
イベントキューに蓄積された複数のイベントに対して、
各イベントについて、当該イベントの操作量が所定閾値の操作量よりも小さい場合、当該イベントを削除する操作量フィルタリングの第1のレベルと、
操作量フィルタリングの後、連続する複数の同一イベントにおける後のイベントについて、先のイベントとの間の発生時刻間隔が所定閾値の発生時刻間隔よりも短い場合、後のイベントを削除する時間フィルタリングの第2のレベルと、
時間フィルタリングの後、連続する同一のデバイス/操作種別の複数のイベントについて、それらイベントの操作量をまとめて1つのイベントに統合する同種イベントチャンキングの第3のレベルと、
同種イベントチャンキングの後、異なるデバイス/操作種別の複数のイベントにつて、予め定義された最適化定義情報の所定条件を満たしている場合、それらイベントを1つのイベントに統合する異種イベントチャンキングの第4のレベルと
を実行するものであり、CPU負荷量が高くなるほど、段階的に高いレベルの最適化処理を実行する
ことを特徴とする。
本発明のイベント処理機能搭載装置における他の実施形態によれば、
イベントは、ポインティングデバイス及びキーボードに基づくものであって、
タスクは、画面のレンダリング処理に基づくものであり、
タスクキューから出力されたタスクを実行するタスク実行手段と、
タスク実行手段からタスクの実行時間を受け取り、タスク識別子に対応する平均実行時間を記録するタスク実行時間記憶手段と
を更に有し、
CPU負荷量算出手段は、タスク実行時間記憶手段を用いて、タスクキューに蓄積された未実行の全てのタスクの平均実行時間の総和を、CPU処理単位時間で除算した、CPU負荷量を算出することも好ましい。
本発明によれば、発生したイベントを一時的に蓄積するイベントキューと、該イベントキューから読み出されたイベントに基づくタスクを一時的に蓄積するタスクキューとを有し、イベントは、デバイス/操作種別、発生時刻及び操作量を含むものとするようにコンピュータを機能させるイベント処理プログラムにおいて、
タスクキューに蓄積された未実行の全てのタスクの実行時間を、CPU負荷量Ctとして算出するCPU負荷量算出手段と、
CPU負荷量に基づいて、イベントキューに蓄積された複数のイベントを最適化するイベントキュー最適化手段と
を有し、
イベントキュー最適化手段は、
イベントキューに蓄積された複数のイベントに対して、
各イベントについて、当該イベントの操作量が所定閾値の操作量よりも小さい場合、当該イベントを削除する操作量フィルタリングの第1のレベルと、
操作量フィルタリングの後、連続する複数の同一イベントにおける後のイベントについて、先のイベントとの間の発生時刻間隔が所定閾値の発生時刻間隔よりも短い場合、後のイベントを削除する時間フィルタリングの第2のレベルと、
時間フィルタリングの後、連続する同一のデバイス/操作種別の複数のイベントについて、それらイベントの操作量をまとめて1つのイベントに統合する同種イベントチャンキングの第3のレベルと、
同種イベントチャンキングの後、異なるデバイス/操作種別の複数のイベントにつて、予め定義された最適化定義情報の所定条件を満たしている場合、それらイベントを1つのイベントに統合する異種イベントチャンキングの第4のレベルと
を実行するものであり、CPU負荷量が高くなるほど、段階的に高いレベルの最適化処理を実行する
ようにコンピュータを機能させることを特徴とする。
本発明のイベント処理プログラムにおける他の実施形態によれば、
イベントは、ポインティングデバイス及びキーボードに基づくものであって、
タスクは、画面のレンダリング処理に基づくものであり、
タスクキューから出力されたタスクを実行するタスク実行手段と、
タスク実行手段からタスクの実行時間を受け取り、タスク識別子に対応する平均実行時間を記録するタスク実行時間記憶手段と
してコンピュータを更に機能させ、
CPU負荷量算出手段は、タスク実行時間記憶手段を用いて、タスクキューに蓄積された未実行の全てのタスクの平均実行時間の総和を、CPU処理単位時間で除算した、CPU負荷量を算出するようにコンピュータを機能させることも好ましい。
本発明のイベント処理機能搭載装置及びプログラムによれば、イベントキューに蓄積されたイベントの数を、最適化定義情報に基づいて減らすことができるので、処理能力の低いCPUを搭載し且つオペレーティングシステムを実装した組み込み装置であっても、短時間に発生した大量のイベントを効率的に処理することができる。
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
図2は、本発明におけるイベント処理機能の機能構成図である。
図2のオペレーティングシステム部10は、図1と比較して、タスク実行時間記憶部106と、CPU負荷量算出部107と、イベントキュー最適化部108とを更に有する。これら機能部も、CPU部12で実行されるプログラムによって実現される。
タスク実行時間記憶部106は、タスク実行部105から、タスク識別子及びタスク実行時間を受け取る。タスク識別子は、具体的には、タスクID(IDentifier)及びセグメントルーチンIDである。イベント処理部103は、イベントから、アプリケーションに基づくタスクを生成するが、このタスクは、セグメントルーチン(SR、Segment
Routine)に分割される。セグメントルーチンは、1つのタスクを、実行命令として記述された実行ブレイクポイントに応じて分割した単位である。従って、タスク実行部105は、細分化されたセグメントルーチンに実行する毎に、そのタスクID及びセグメントルーチンIDとタスク実行時間とを、タスク実行時間記憶部106へ出力する。
タスク実行時間記憶部106は、タスクID及びセグメントルーチンIDに対応付けて、タスクの平均実行時間を記憶する。タスク実行時間記憶部106は、タスク実行部105からタスク実行時間を受け取る毎に、タスクの平均実行時間を更新する。
CPU負荷量算出部107は、タスクキュー104に蓄積されている未実行の全てのタスクの実行時間を、CPU負荷量として算出する。そのために、CPU負荷量算出部107は、タスクキュー104から、その時点で蓄積されている未実行の全てのタスクのタスクID及びセグメントルーチンIDを受け取る。次に、CPU負荷量算出部107は、そのタスクID及びセグメントルーチンID毎に、タスク実行時間記憶部106から平均実行時間を受け取る。
そして、CPU負荷量算出部107は、タスクキュー104に蓄積されている未実行の全てのタスクにおける平均実行時間の総和を、CPU処理単位時間で除算した、CPU負荷量を算出する。
CPU負荷量=未実行の全てのタスクの平均実行時間の総和/CPU処理単位時間
算出されたCPU負荷量は、所定時間毎に、イベントキュー最適化部108へ出力される。
図3は、タスク実行時間記憶部に蓄積される平均実行時間の例である。
図3によれば、アプリケーション基づく3つのタスクA、B及びCが表されている。ここで、オペレーティングシステムは、シングルスレッドで動作することを想定しており、擬似的にマルチスレッドで動作させている。各タスクは、複数のセグメントルーチンから構成される。タスクAはセグメントルーチンSRA1〜SRA6から構成され、タスクBはセグメントルーチンSRB1〜SRB4から構成され、タスクCはセグメントルーチンSRC1〜SRC7から構成されている。
図3によれば、最初に、タスクAのセグメントルーチンSRA1->タスクBのセグメントルーチンSRB1->タスクCのセグメントルーチンSRC1の順序で実行する。次に再び、タスクAのセグメントルーチンSRA2->タスクBのセグメントルーチンSRB2->タスクCのセグメントルーチンSRC2の順序で実行する。図3には、タスクA、B及びCのセグメントルーチンの実行順序が表されている。
尚、タスクのセグメントルーチンの実行順序としては、図3のように、各タスクのセグメントルーチンを1つずつ順番に実行することに限られない。例えば、タスクAについて全てのセグメントルーチンを実行し、次に、タスクBについて全てのセグメントルーチンを実行するものであってもよい。また、複数のセグメントルーチンを1つのタイムスライス内で実行するものであってもよい。
タスク実行時間記憶部106は、タスクID及びセグメントルーチンIDに対応付けて、その平均実行時間を記憶する。図3によれば、タスクAのセグメントルーチン1の平均実行時間は、55msである。
図3によれば、タスクキュー104に蓄積されているセグメントルーチンはSRA4、SRA5、SRA6、SRB4、SRC4、SRC5、SRC6及びSRC7である。また、図3によれば、各セグメントルーチンの平均実行時間の総和と、CPU負荷量Ctとは、以下のとおりである。
SRA4=55ms
SRA5=160ms
SRA6=60ms
SRB4=50ms
SRC4=60ms
SRC5=50ms
SRC6=200ms
SRC7=200ms
平均実行時間の総和=55ms+160ms+60ms+50ms
+60ms+50ms+200ms+200ms
=835ms
CPU処理単位時間=1000ms
CPU負荷量 =835ms/1000ms=0.835
ここで、再び、図2を参照する。
本発明のオペレーティングシステム部10は、イベントキュー最適化部108を更に有する。イベントキュー最適化部108は、イベントキューに蓄積された複数のイベントに対して、最適化定義情報に基づいて、1つ以上のイベントを削除する「フィルタリング処理」、及び/又は、複数のイベントを1つのイベントに統合する「チャンキング処理」を実行する。
最適化定義情報は、「フィルタリング処理」及び/又は「チャンキング処理」を実行する場合の「デバイス/操作種別」、「発生時刻」及び/又は「操作データ」の所定条件を定義したものである。イベントキュー最適化部108は、イベントキューに蓄積された全てのイベントについて、最適化定義情報の所定条件に該当するか否かを判定する。
本発明によれば、フィルタリング処理として「操作量フィルタリング」及び「時間フィルタリング」があり、チャンキング処理として「同種イベントチャンキング」及び「異種イベントチャンキング」がある。イベントキュー最適化部108は、これら4つの処理を、CPU負荷量に応じて、動的且つ段階的に変更しながら実行する。
[操作量フィルタリング]
1つのイベントについて、操作データが未定義であるか又はその操作量が所定閾値よりも小さい場合、そのイベントを削除する。例えば、マウス(Mouse)のようなポインティングデバイスにおける移動(Move)のイベントについて、その操作量(単位時間あたりのマウスの移動距離(ユークリッド距離))が、所定閾値よりも小さい場合、そのイベントを削除する。また、テンキーのようなモバイルキーボード(MobileKeyboard)又はフルキーボード(FullKeyboard)における押下(Press)のイベントについて、そのキーに相当するキーコードが未定義である場合、そのイベントを削除する。
[時間フィルタリング]
連続する複数の同一イベントについて、それらイベントの発生時刻間隔が所定閾値よりも短い場合、それらイベントを削除する。例えば、マウス(Mouse)のようなポインティングデバイスにおける移動(move)のイベントが、連続して発生しており、その発生時刻間隔が所定閾値よも短い場合、後続するイベントを削除する。また、テンキーのようなモバイルキーボード(MobileKeyboard)又はフルキーボード(FullKeyboard)における押下(Press)のイベントが、連続して発生しており、その発生時刻間隔が所定閾値よりも短い場合、後続するイベントを削除する。
[同種イベントチャンキング]
同一のデバイス/操作種別の複数のイベントが一定時間連続している場合、それらイベントを1つのイベントに統合する。例えば、マウス(Mouse)のようなポインティングデバイスにおける移動(Move)のイベントが、連続して発生している場合、その操作量を総和した1つのイベントに統合する。また、テンキーのようなモバイルキーボード(MobileKeyboard)又はフルキーボード(FullKeyboard)における押下(Press)のイベントが、N回連続して発生しており且つ「方向キー」である場合、その回数Nを含む1つのイベントに統合する。更に、キーボード(Keyboard)の押下の(Press)のイベントが、連続して発生しており、そのキーに相当するキーコードが、「タスク切替用キー」である場合、最後のイベントのみを実行し、先のイベントは削除する。
[異種イベントチャンキング]
異なるデバイス/操作種別の複数のイベントが規定された所定条件を満たしている場合、それらイベントを1つのイベントに統合する。例えば、マウス(Mouse)のようなポインティングデバイスと、テンキーのようなモバイルキーボード(MobileKeyboard)又はフルキーボード(FullKeyboard)とを用いて、キーボード(Keyboard)の「タスク切替用キー」の押下(Press)のイベントに続いて、マウス(Mouse)の移動(Move)のイベントが発生する組合せが、所定閾値よりも短い発生時刻間隔で、2組以上連続しているとする。このような場合、Mouse/Moveイベントについて1つのイベントに統合すると共に、最後の「タスク切替用キー」のイベントは残し、先の「タスク切替用キー」のイベントは削除する。
また、キーボード(Keyboard)の「確定キー」の押下(Press)のイベントに続いて、マウス(Mouse)のクリック(Click)のイベントが発生する組合せが、所定閾値よりも短い発生時刻間隔で連続しているとする。このような場合、最初に発生したイベントを削除し、後に発生したイベントを処理する。
図4は、本発明におけるイベントキュー最適化部のフローチャートである。
(S401)最初に、CPU負荷量算出部107から、CPU負荷量Ctを入力する。CPU負荷量Ctは、タスクキューに蓄積された実行予定のタスクに対して、実際に実行する際に必要と予想されるCPU負荷量である。
(S402)次に、CPU負荷量Ctが、閾値k1よりも大きいか否かを判定する。ここでは、閾値k1よりも大きい処理遅延が発生しているかどうかを判定する。Ctがk1以下(k1≧Ct)である場合、処理を終了する。この場合、イベントキュー102は、何ら最適化(再構成)されず、発生したイベントのとおりに蓄積されている。結果的に、イベント制御部101は、イベントキュー102から、発生したとおりのイベントを取り出すこととなる。
(S403)Ctがk1よりも大きい(k1<Ct)場合、即ち、k1よりも大きい処理遅延が発生している場合、イベントの入力及び出力を停止するように、イベントキュー102をロックする。イベントキュー102をロックした上で、そこに蓄積されたイベント群に対して、最適化処理を実行する。
(S404)まず、CPU負荷量Ctが、閾値k1〜k4に対してどの程度の大きさであるか否かを判定する。即ち、最適化処理の内容は、CPU負荷量Ctに応じて、数種類のフィルタリング処理及びチャンキング処理を、動的に且つ段階的に適用する。「フィルタリング処理」は、イベントキュー102に蓄積された複数のイベントに対して、最適化定義情報に基づいて、1つ以上のイベントを削除する。また、「チャンキング処理」は、最適化定義情報に基づいて、複数のイベントを1つのイベントに統合する。
判定のための閾値は、k1<k2<k3<k4の関係にある。これら閾値は全て、1以下の定数である。例えば、k1=0.1、k2=0.25、k3=0.5、k4=0.75としてもよい。この4つの閾値は、予め決定されていてもよいし、過去に実行したタスクの履歴情報に基づいて、動的に決定してもよい。
(S405)k1<Ct≦k2の場合、「操作量フィルタリング」のみを実行する。
(S406)k2<Ct≦k3の場合、最初に「操作量フィルタリング」を実行する。
(S407)次いで、「時間フィルタリング」を実行する。
(S408)k3<Ct≦k4の場合、最初に「操作量フィルタリング」を実行する。
(S409)次いで、「時間フィルタリング」を実行する。
(S410)そして、「同種イベントチャンキング」を実行する。
(S411)k4<Ctの場合、最初に「操作量フィルタリング」を実行する。
(S412)次いで、「時間フィルタリング」を実行する。
(S413)次いで、「同種イベントチャンキング」を実行する。
(S414)そして、「異種イベントチャンキング」を実行する。
S405〜S414によれば、CPU負荷量Ctの大きさに応じて、イベントキューに対する最適化の程度を変更する。つまり、Ctが小さいときは、適用する最適化処理数を少なくし、Ctが大きいときは、適用する最適化処理数を多くする。これにより、タスク実行速度の低減を抑えつつ、タスク実行上必要でないと判断できるイベント処理を削減できる。
(S415)イベントキューに対する最適化処理(S405〜S414)が終了すると、イベントの入力及び出力を再開するように、イベントキュー102に対してロックを解除する。
尚、段階的に実行する最適化処理の順番(S405〜S414)は、前述した順番に限られず、他の順番であってもよい。例えば、「時間フィルタリング」->「操作量フィルタリング」->「同種イベントチャンキング」->「異種イベントチャンキング」であってもよい。
但し、イベントキュー最適化処理について、CPU負荷量又はメモリ使用量などのコスト消費が少なく、かつ、最適化処理後のパフォーマンス効果が高くなる処理を優先的に適用すべきである。例えば、チャンキング処理の対象となるイベントは、フィルタリング処理の対象となる場合が多い。そうすると、本発明における実施形態によれば、「フィルタリング処理」は、「チャンキング処理」の前に適用する方が好ましい。
図5は、本発明におけるイベントキューの最適化前後の説明図である。
図5(a)は、最適化処理前のイベントキュー内の情報を表す。デバイス/操作種別は、Mouse/Move、Mouse/Click、MobileKeyboard/Press及びFullKeyboard/Pressである。また、発生時刻66460〜69510に発生したイベント群(イベントID:0001〜0024)が表されている。
(S501)最初に、最適化定義情報における操作量フィルタリング処理について、以下の表1のように規定されているとする。
Figure 0004771431
ここで、移動量Maを、例えば4ピクセルとする。図5(a)によれば、この最適化定義情報に該当するイベントは、イベントID「0004」「0009」「0018」「0024」である。これらのデバイス種別は「Mouse/Move」であり、その移動量は4ピクセル以下である。このとき、操作量フィルタリング処理によって、これらイベントが削除される。
(S502)次に、最適化定義情報における時間フィルタリング処理について、以下の表2のように規定されているとする。
Figure 0004771431
ここで、例えばT1=100ms、T2=200ms及びT3=300msとする。S501の処理の後で、この最適化定義情報に該当するイベントは、イベントID「0017」「0020」である。これらのデバイス種別は「Mouse/Move」であり、その発生時刻間隔は100ms以下である。このとき、時間フィルタリング処理によって、これらイベントが削除される。
(S503)次に、最適化定義情報における同種イベントフィルタリング処理について、以下の表3のように規定されているとする。
Figure 0004771431
S502の処理の後で、この最適化定義情報に該当するイベントの組は、イベントID「0003:0005」「0010:0011:0012」「0016:0019:0021」である。「0003:0005」は、デバイス/操作種別が「Mouse/Move」であり、同じイベントが連続している。このとき、3つの操作量を総和し、1つのイベント「0005」として統合する。同様に、「0010:0011:0012」も、操作量を総和し、1つのイベント「0012」として統合する。更に、「0016:0019:0021」も、操作量を総和し、1つのイベント「0021」として統合する。
(S504)次に、最適化定義情報における異種イベントフィルタリング処理について、以下の表4のように規定されているとする。
Figure 0004771431
ここで、例えばT4=1200ms及びT5=600msとする。S503の処理の後で、この最適化定義情報に該当するイベントの組は、イベントID「0012:0013:0014:0015」である。これらは、デバイス/操作種別「Mouse/Move」と「MobileKeyboard/Press」とが交互に繰り返している。また、キーコードは、「F1」「F2」の「タスク切替用キー」である。このとき、2つの「Mouse/Move」を1つのイベントに統合し、更に、最後の「タスク切替用キー」のイベントを残し、先の「タスク切替用キー」のイベントを削除する。
図5(a)の最適化前のイベント群に対して、S501〜S504の処理をした結果、図5(b)のような最適化後のイベント群になる。図5によれば、最適化前に24個あったイベントに対して、最適化後には、11個に減少している。
尚、最適化定義情報の所定条件は、当該装置に搭載されたCPUの処理能力及び/又はメモリの容量によって変更されることも好ましい。例えば、発生時刻間隔の数値を、変更することができる。
本発明によれば、イベントキューに蓄積されるイベント数を減らすことができる一方で、イベントキューを最適化するために別途、CPUの処理を必要とする。しかし、本発明の利用を想定するタスクには、画面のレンダリング処理があり、その処理量は非常に大きい。例えば、デスクトップ上のウィンドウを、マウス操作によりドラッグアンドドロップするようなイベントが発生する場合などである。このような場合、イベントキューの最適化に伴う処理量と比較して、再レンダリングの処理量は非常に大きい。従って、再レンダリングをより高速に実行するために、イベントキューの最適化処理を行う本発明による効果は大きい。
また、この実施形態で説明した4つの最適化処理方法に限られず、他のフィルタリング処理又はチャンキング処理を適用することもできる。例えば、イベント発生時の操作データ量又は発生時刻間隔を基準とするだけでなく、単位時間あたりの操作データの変化量、又は、単位時間あたりのその変化量の増減量なども適用できる。更に、ユークリッドデータ量を総和する際、総和するとゼロになってしまう場合が考えられる。そこで、複数のイベントを1つのイベントとして置換する際、そのイベント列の意味内容を解析した上で変換する場合が考えられる。例えば、マウスを円状に動かしている場合、それに関するイベントを、円運動というイベントに変換する。
以上、詳細に説明したように、本発明のイベント処理機能搭載装置及びプログラムによれば、イベントキューに蓄積されたイベントの数を、最適化定義情報に基づいて減らすことができるので、処理能力の低いCPUを搭載し且つオペレーティングシステムを実装した組み込み装置であっても、短時間に発生した大量のイベントを効率的に処理することができる。
本発明によれば、特に、携帯電話機又は携帯端末のように、処理能力が比較的低い組み込み装置について、そのディスプレイに表示されるウィンドウを、マウスのようなポインティングで操作する場合に、イベントキューに蓄積されるイベント数が減少し、非常に効果的である。また、リアルタイムに変動するCPU負荷量に応じて、イベントキュー最適化処理も動的且つ段階的に適用することにより、CPUの処理能力に対するタスクの処理量との関係を考慮することなく、様々な装置に適用できる。
本発明によれば、イベントキューに蓄積されたイベント群に対して、イベントの発生順序、デバイス/操作種別、発生時刻、操作データを考慮して、フィルタリング処理又はチャンキング処理をすることにより、タスクの実行上、必要でないと判断できるイベントのみを確実に削除できる。
前述した本発明における種々の実施形態によれば、当業者は、本発明の技術思想及び見地の範囲における種々の変更、修正及び省略を容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
従来技術に基づくイベント処理機能搭載装置の機能構成図である。 本発明におけるイベント処理機能搭載装置の機能構成図である。 タスク実行時間記憶部に蓄積される平均実行時間の例である。 本発明におけるイベントキュー最適化部のフローチャートである。 本発明におけるイベントキューの最適化前後の説明図である。
符号の説明
1 装置、携帯電話機
10 オペレーティングシステム部
101 イベント制御部
102 イベントキュー
103 イベント処理部
104 タスクキュー
105 タスク実行部
106 タスク実行時間記憶部
107 CPU負荷量算出部
108 イベントキュー最適化部
11 入力デバイス部
12 CPU部
13 その他の機能構成部

Claims (4)

  1. 発生したイベントを一時的に蓄積するイベントキューと、該イベントキューから読み出されたイベントに基づくタスクを一時的に蓄積するタスクキューとを有し、前記イベントは、デバイス/操作種別、発生時刻及び操作量を含むものとするイベント処理機能搭載装置において、
    前記タスクキューに蓄積された未実行の全てのタスクの実行時間を、CPU負荷量Ctとして算出するCPU負荷量算出手段と、
    前記CPU負荷量に基づいて、前記イベントキューに蓄積された複数のイベントを最適化するイベントキュー最適化手段と
    を有し、
    前記イベントキュー最適化手段は、
    前記イベントキューに蓄積された複数のイベントに対して、
    各イベントについて、当該イベントの操作量が所定閾値の操作量よりも小さい場合、当該イベントを削除する操作量フィルタリングの第1のレベルと、
    前記操作量フィルタリングの後、連続する複数の同一イベントにおける後のイベントについて、先のイベントとの間の発生時刻間隔が所定閾値の発生時刻間隔よりも短い場合、後のイベントを削除する時間フィルタリングの第2のレベルと、
    前記時間フィルタリングの後、連続する同一のデバイス/操作種別の複数のイベントについて、それらイベントの操作量をまとめて1つのイベントに統合する同種イベントチャンキングの第3のレベルと、
    前記同種イベントチャンキングの後、異なるデバイス/操作種別の複数のイベントにつて、予め定義された最適化定義情報の所定条件を満たしている場合、それらイベントを1つのイベントに統合する異種イベントチャンキングの第4のレベルと
    を実行するものであり、前記CPU負荷量が高くなるほど、段階的に高いレベルの最適化処理を実行する
    ことを特徴とするイベント処理機能搭載装置。
  2. 前記イベントは、ポインティングデバイス及びキーボードに基づくものであって、
    前記タスクは、画面のレンダリング処理に基づくものであり、
    前記タスクキューから出力されたタスクを実行するタスク実行手段と、
    前記タスク実行手段からタスクの実行時間を受け取り、タスク識別子に対応する平均実行時間を記録するタスク実行時間記憶手段と
    を更に有し、
    前記CPU負荷量算出手段は、前記タスク実行時間記憶手段を用いて、前記タスクキューに蓄積された未実行の全てのタスクの平均実行時間の総和を、CPU処理単位時間で除算した、前記CPU負荷量を算出することを特徴とする請求項に記載のイベント処理機能搭載装置。
  3. 発生したイベントを一時的に蓄積するイベントキューと、該イベントキューから読み出されたイベントに基づくタスクを一時的に蓄積するタスクキューとを有し、前記イベントは、デバイス/操作種別、発生時刻及び操作量を含むものとするようにコンピュータを機能させるイベント処理プログラムにおいて、
    前記タスクキューに蓄積された未実行の全てのタスクの実行時間を、CPU負荷量Ctとして算出するCPU負荷量算出手段と、
    前記CPU負荷量に基づいて、前記イベントキューに蓄積された複数のイベントを最適化するイベントキュー最適化手段と
    を有し、
    前記イベントキュー最適化手段は、
    前記イベントキューに蓄積された複数のイベントに対して、
    各イベントについて、当該イベントの操作量が所定閾値の操作量よりも小さい場合、当該イベントを削除する操作量フィルタリングの第1のレベルと、
    前記操作量フィルタリングの後、連続する複数の同一イベントにおける後のイベントについて、先のイベントとの間の発生時刻間隔が所定閾値の発生時刻間隔よりも短い場合、後のイベントを削除する時間フィルタリングの第2のレベルと、
    前記時間フィルタリングの後、連続する同一のデバイス/操作種別の複数のイベントについて、それらイベントの操作量をまとめて1つのイベントに統合する同種イベントチャンキングの第3のレベルと、
    前記同種イベントチャンキングの後、異なるデバイス/操作種別の複数のイベントにつて、予め定義された最適化定義情報の所定条件を満たしている場合、それらイベントを1つのイベントに統合する異種イベントチャンキングの第4のレベルと
    を実行するものであり、前記CPU負荷量が高くなるほど、段階的に高いレベルの最適化処理を実行する
    ようにコンピュータを機能させることを特徴とするイベント処理プログラム。
  4. 前記イベントは、ポインティングデバイス及びキーボードに基づくものであって、
    前記タスクは、画面のレンダリング処理に基づくものであり、
    前記タスクキューから出力されたタスクを実行するタスク実行手段と、
    前記タスク実行手段からタスクの実行時間を受け取り、タスク識別子に対応する平均実行時間を記録するタスク実行時間記憶手段と
    してコンピュータを更に機能させ、
    前記CPU負荷量算出手段は、前記タスク実行時間記憶手段を用いて、前記タスクキューに蓄積された未実行の全てのタスクの平均実行時間の総和を、CPU処理単位時間で除算した、前記CPU負荷量を算出するようにコンピュータを機能させることを特徴とする請求項3に記載のイベント処理プログラム。
JP2007243382A 2007-09-20 2007-09-20 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム Expired - Fee Related JP4771431B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007243382A JP4771431B2 (ja) 2007-09-20 2007-09-20 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム
US12/211,376 US8356301B2 (en) 2007-09-20 2008-09-16 Optimization of queued events by deletion/integration based on CPU load calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007243382A JP4771431B2 (ja) 2007-09-20 2007-09-20 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2009075808A JP2009075808A (ja) 2009-04-09
JP4771431B2 true JP4771431B2 (ja) 2011-09-14

Family

ID=40473116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007243382A Expired - Fee Related JP4771431B2 (ja) 2007-09-20 2007-09-20 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム

Country Status (2)

Country Link
US (1) US8356301B2 (ja)
JP (1) JP4771431B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4729611B2 (ja) * 2008-10-30 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ イベントキュー管理装置及びイベントキュー管理方法
MY163545A (en) * 2009-07-28 2017-09-29 ERICSSON TELEFON AB L M (publ) Apparatus and method for processing events in a telecommunications network
CN104932946B (zh) * 2009-07-28 2022-01-25 瑞典爱立信有限公司 用于处理电信网络中的事件的设备和方法
KR101554555B1 (ko) 2009-10-01 2015-09-21 콘티넨탈 오토모티브 시스템 주식회사 실시간 운영체제에서의 프로세서 부하율 계산 시스템 및 그 방법
JPWO2012026307A1 (ja) * 2010-08-25 2013-10-28 日本電気株式会社 データ管理装置、データ管理方法、及び、データ管理プログラム
CN103262040B (zh) * 2010-12-13 2017-03-15 富士通株式会社 信息处理装置、电力控制方法以及电力控制程序
JP5177239B2 (ja) * 2011-01-21 2013-04-03 沖電気工業株式会社 コンテキストアウェアシステム及びイベントデータ生成方法
JP5899897B2 (ja) 2011-12-20 2016-04-06 富士通株式会社 情報処理装置、情報処理方法及びプログラム
EP2615511A1 (de) * 2012-01-12 2013-07-17 Siemens Aktiengesellschaft Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
WO2014006669A1 (ja) 2012-07-02 2014-01-09 三菱電機株式会社 通信システム
CN103793265B (zh) * 2012-10-30 2016-05-11 腾讯科技(深圳)有限公司 优化进程的处理方法及装置
US9542243B2 (en) 2014-03-14 2017-01-10 International Business Machines Corporation Coalescing stages in a multiple stage completion sequence
US9843518B2 (en) 2014-03-14 2017-12-12 International Business Machines Corporation Remotely controlled message queue
JP6459654B2 (ja) * 2014-11-07 2019-01-30 富士通株式会社 イベントドリブンシステム、情報処理装置、イベントドリブンプログラムおよびイベントドリブン方法
US9626232B2 (en) * 2015-07-23 2017-04-18 Arm Limited Event queue management
CN106155794B (zh) * 2016-07-21 2019-11-19 浙江大华技术股份有限公司 一种应用于多线程系统中的事件分配方法及装置
CN111340681B (zh) * 2020-02-10 2024-02-20 青岛海信宽带多媒体技术有限公司 一种图像处理方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896290A (en) * 1987-08-24 1990-01-23 Wang Laboratories, Inc. Method for routing events from key strokes in a multi-processing computer systems
JP2861619B2 (ja) * 1991-07-12 1999-02-24 松下電器産業株式会社 情報提示装置及び提示情報作成装置
JPH05151180A (ja) * 1991-11-30 1993-06-18 Matsushita Electric Ind Co Ltd 並列計算機のスケジユーリング方法
US5860107A (en) * 1996-10-07 1999-01-12 International Business Machines Corporation Processor and method for store gathering through merged store operations
JP3001461B2 (ja) * 1997-05-29 2000-01-24 日本電気ソフトウェア株式会社 プロセスのディスパッチ装置
JP2000137621A (ja) 1998-10-30 2000-05-16 Toshiba Corp イベント管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001331329A (ja) * 2000-05-22 2001-11-30 Mitsubishi Electric Corp 割込み制御装置及び割込み制御方法
US7644392B2 (en) * 2002-04-12 2010-01-05 Telelogic Technologies North America, Inc. System and method for active configuration management
US7434109B1 (en) * 2002-09-26 2008-10-07 Computer Associates Think, Inc. Network fault manager for maintaining alarm conditions
EP1546872B1 (en) * 2002-10-03 2008-04-23 Matsushita Electric Industrial Co., Ltd. A key event controlling apparatus
JP2004287755A (ja) 2003-03-20 2004-10-14 Matsushita Electric Ind Co Ltd イベント制御装置
JP2005038110A (ja) * 2003-05-21 2005-02-10 Hitachi Ltd 情報表示システムおよびそのシステムの処理方法
US7559062B2 (en) * 2003-10-30 2009-07-07 Alcatel Lucent Intelligent scheduler for multi-level exhaustive scheduling
JP4141391B2 (ja) * 2004-02-05 2008-08-27 株式会社日立製作所 ストレージサブシステム
JP4421461B2 (ja) * 2004-12-03 2010-02-24 京セラ株式会社 携帯電話端末、コンピュータプログラム
JP2006302065A (ja) * 2005-04-22 2006-11-02 Nec Corp ファイル共有システム、ファイル共有プログラム、管理サーバ及びクライアント端末
US7434012B1 (en) * 2005-09-21 2008-10-07 Emc Corporation Techniques for media scrubbing

Also Published As

Publication number Publication date
US20090083752A1 (en) 2009-03-26
JP2009075808A (ja) 2009-04-09
US8356301B2 (en) 2013-01-15

Similar Documents

Publication Publication Date Title
JP4771431B2 (ja) オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム
KR102068083B1 (ko) 사용자 입력 속도 기반의 입력 방식 오류 정정 방법 및 장치
US20140145945A1 (en) Touch-based input control method
CN104571832A (zh) 移动终端、及其操控系统和方法
CN104063071A (zh) 内容输入方法及装置
US8839123B2 (en) Generating a visual user interface
CN102156574A (zh) 通过指纹识别模拟鼠标按键的触控显示系统及其方法
CN104077066A (zh) 可携式装置与操作方法
CN113407075B (zh) 图标整理方法、装置和电子设备
CN114489418A (zh) 消息处理方法、消息处理装置和电子设备
CN113655940A (zh) 一种Linux兼容Android的模拟双指缩放方法及装置
CN103324430A (zh) 多手指的物件操作方法及装置
CN112269501A (zh) 图标移动方法、装置及电子设备
CN104407763A (zh) 内容输入方法及系统
US10162602B2 (en) Method for handling user-level events for programming an application
JP5307294B2 (ja) 操作支援コンピュータプログラム、操作支援コンピュータシステム
CN114089885A (zh) 应用图标管理方法、装置、电子设备及可读存储介质
EP2827232A1 (en) Character input device and character input method
CN111338556B (zh) 输入方法、装置、终端设备及存储介质
AU2005250860A1 (en) User interface action processing using a freshness status
KR20120066819A (ko) 터치스크린을 구비한 휴대용 단말 및 이를 이용한 인터페이스 방법
CN112578961A (zh) 应用标识显示方法及装置
CN111752428A (zh) 图标整理方法、装置、电子设备和介质
CN102081489A (zh) 以移动轨迹管理文件的系统及其方法
CN103135848A (zh) 一种触摸屏人机交互通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110526

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: 20110616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110616

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4771431

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees