JP2017156907A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2017156907A
JP2017156907A JP2016038571A JP2016038571A JP2017156907A JP 2017156907 A JP2017156907 A JP 2017156907A JP 2016038571 A JP2016038571 A JP 2016038571A JP 2016038571 A JP2016038571 A JP 2016038571A JP 2017156907 A JP2017156907 A JP 2017156907A
Authority
JP
Japan
Prior art keywords
cores
processes
core
executed
information processing
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.)
Pending
Application number
JP2016038571A
Other languages
English (en)
Inventor
智広 山▲崎▼
Tomohiro Yamazaki
智広 山▲崎▼
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2016038571A priority Critical patent/JP2017156907A/ja
Publication of JP2017156907A publication Critical patent/JP2017156907A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】 情報処理装置、情報処理方法およびプログラムを提供すること。【解決手段】 本実施形態の画像形成装置120は、並列実行を行う複数のコアを有するCPU104を含む制御部130を含んでおり、制御部130のCPU104は、並列実行するべき処理を、並列実行するべき処理の優先度または負荷に応じて、複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行することで負荷分散を行っている。【選択図】 図1

Description

本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
マルチコアプロセッサシステムの動作形態として、SMP(Symmetrical Multi Processing)と、AMP(Asymmetrical Multi Processing)がある。SMPは、複数のプログラムを複数のCPUコアに動的に分散させ、各コアの負荷を分散させる。一方、AMPは特定のプログラムを特定のCPUコアに割り付けることでプログラムのリアルタイム性を改善させている。
組込装置などでは、精密な動作タイミングが必要なプログラム(例えば、ドライバなどのようにハードウェアを直接操作するプログラム)が存在する場合、SMP制御を行うと、装置の動作中にCPUが変更される場合も発生し、キャッシュを有効利用できないこと、および処理のリアルタイム性を保証できないこと、などからAMP制御を利用する場合も知られている。また、マルチコアプロセッサ・システムではSMP制御と、AMP制御を混在させる構成もまたすでに知られている。
しかし、従来のSMP制御の場合、プログラムは、CPUコアに対して均等に割り振られる。一方、AMP制御の場合、CPUコアが遊休状態となる期間が発生することも想定される。また、SMP制御の場合には、プログラムの優先度を考慮して、プログラムの実行先を制御することも可能である。しかしながら、画像形成装置のような組込装置の場合、画像処理やセキュリティ性向上のためのHDD(ハードディスク・ドライブ)データ消去など高負荷の処理が存在する。SMP制御の場合、上述した高負荷の処理や優先度の高い処理を、他の処理を後回しにしてでも優先的に実行させたい場合でも充分対応できないという問題がある。
一方、特定の処理の優先度を上げると、その他の処理に影響が出てしまい、例えばユーザの操作レスポンスが低下するなどの問題もある。これまで、マルチコア・プロセッサを使用する組込装置におけるプロセス制御について検討されている。例えば、特開2011‐100277号公報(特許文献1)では、特定のプロセッサに処理負荷が偏ることを抑制するため、システム起動時に前回起動時に記録しておいた起動コア番号からAMP制御のコアを、順次変えることにより特定のコアに負荷が偏ることを抑制する。
しかしながら、特許文献1では、特定プログラムを実行するコアを事前に固定していること、および起動時にコア固定するプログラムを固定的に割り当てているため、優先度の高い処理や高負荷処理によってユーザの操作性が低下する点を改善することはできなかった。
本発明は、組込装置でのプログラム実行において、マルチコア・プロセッシングにおけるユーザ操作性を改善する技術を提供することを目的とする。
本発明によれば、
並列実行を行う情報処理装置であって、
複数のコアを有するCPUを含む制御手段と、
前記並列実行するべき処理を、前記複数のコアに分散して発行する手段と
を含み、前記並列実行するべき処理を、前記複数のコアに分散して発行する手段は、
前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行する
情報処理装置が提供される。
本発明によれば、組込装置でのプログラム実行において、マルチコア・プロセッシングにおけるユーザ操作性を改善する技術を提供することが可能となる。
画像形成装置120のハードウェアブロック100を示す図。 本実施形態のCPU104の詳細な構造を示す図。 本実施形態の画像形成装置120のソフトウェアブロック300を示す図。 本実施形態のプログラムの並列実行を説明する概念図。 本実施形態の負荷分散処理のフローチャート。 実施形態で、アプリの機能を提供するプログラムのプログラム識別値を特定のコアに割り当てる情報の実施形態を示す図。 本実施形態において、優先/高負荷ジョブが終了した後に、第1のポリシーによる負荷分散処理に復帰する際の処理のフローチャート。 本実施形態において、優先/高負荷アプリの実行中に、負荷分散ポリシーの切替を行う実施形態のフローチャート。
以下、本発明を実施形態により説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の情報処理装置が、組込装置、具体的には、画像形成装置であるものとして、画像形成装置120のハードウェアブロック100を示す。なお、図1には、説明の便宜上、画像形成装置120が外部アクセスする際の要素も記述した。本実施形態の画像形成装置120は、組込装置として構成されており、プロッタ101といった画像を出力する機器、スキャナ102といった原稿をデジタル化する機器、および画像形成装置120の全体の処理を司る制御部130を含んでいる。制御部130が、本実施形態における制御手段に相当する。
制御部130は、例えば特定用途集積回路(AISC)を備える画像処理回路103を含んでおり、画像処理回路103は、プロッタ101およびスキャナ102の機能を提供するために、画像処理を実行する。さらに制御部130は、CPU104、RAM105、ROM106を含んでいる。
CPU104は、本実施形態ではマルチコア・プロセッサであり、CPUコアへの負荷分散を行いながら複数のプログラム並列実行する。RAM105は、オペレーティング・システム(OS)といったプログラムを読み込んでプログラムをCPU104が実行するための実行空間を提供する。その他、CPU104がプログラムを実行するためのデータなどを格納する記憶空間を提供する。
ROM106は、BIOS(Bacic Input Output System)、ブートストラップ(Bootstrap)プログラム、その他、CPU104が機能を提供するためのプログラムを記憶しており、CPU104の起動時にプログラムをCPU104に読み込ませ、ハードウェアの初期設定、OS起動、実行モニタなどの機能を可能とする。以上のハードウェア・ブロックは、システムバス112により相互接続されていて、システムクロックに従ってその動作が制御されている。
また、制御部130は、PCIeといった周辺バスを介して接続されたFCU107、UIF108、HDD109およびNIC110を備えている。FCU107は、G3、G4といった規格のファクシミリ通信を制御するための回路である。UIF108は、ディスプレイ装置、タッチパネル、テンキー/キーボードなどのユーザインタフェースを制御するための回路である。ハードディスク・ドライブ(以下、HDD装置109として参照する)109は、例えばATA、SATA、USBなどの通信プロトコルを使用して、外付け記録媒体を制御するための回路である。
NIC(ネットワークインタフェース・カード)110は、ネットワーク113へと画像形成装置120を接続させることで、ウェブ・サーバ、ストレージ・サーバ、認証サーバ、クラウド・サーバといった外部装置111との情報通信を可能としている。本実施形態のネットワーク113は、イーサネット(登録商標)、FTH、IEEE802.xなどの有線または無線プロトコルを使用してLAN、インターネットを適宜含んで構成することができ、特に通信プロトコルには限定はない。
本実施形態で使用するCPU104は、例えば、PENTIUM(登録商標)DUAL CORE(登録商標)、CORE2 DUO(登録商標)、CORE2 QUAD(登録商標)、CELERON(登録商標) DUAL CORE、ATOM(登録商標)、CORE2DUO(登録商標)、CORE2QUAD(登録商標)、COREi(登録商標)シリーズなどの他、XEON(登録商標)、マルチコア構成を備えるPENTIUM(登録商標)互換CPU、POWER PC(登録商標)などを挙げることができるがこれらに限定されるものではない。
使用するオペレーティング・システム(OS)としては、WindowsServer(登録商標)、UNIX(登録商標)、LINUX(登録商標)、OPENBSD、CentOS、Ubntuまたはそれ以外の適切なOSを挙げることができる。さらに、CPU104は、上述したOS上で動作する、アセンブラ言語、C、C++、Visual C++、VisualBasic、Java(登録商標)、JavaScript(登録商標)、Perl、Ruby、Pythonなどのプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行することができる。
図2は、本実施形態のCPU104の詳細な構造を示す。なお、図2には、CPU104の機能を説明する上で、RAM105の適切なアドレス領域に構成される、実行キュー201〜204および実行プログラムリスト218も示す。実行プログラムリスト218が、本実施形態におけるプログラムの識別値に応じて処理先のコアを固定するか否かを判断するためのリスト手段に相当する。
CPU104は、図2に示すように複数のコア205、コア206、コア207、コア208を備えるマルチコア構成を採用する。各コア205〜207は、それぞれのために用意された実行キュー201〜204に格納されたプログラムを、先入れ先出し順に読み出してプログラムを実行する。本実施形態における実行キューが、本実施形態における実行待ち手段に相当する。
また、本実施形態では、画像形成装置120の機能を提供するためのプログラムの実行要求があると、プログラムまたはプログラムの呼び出しを検出したOSは、プログラム識別値を実行プログラムリスト218に一旦登録する。そして、OS320の実行コア指定部320aによるコア指定処理を経て、当該プログラムが指定されたコアに対応づけされた実行キュー201〜204に送られ、指定されたコアによる実行が可能とされる。
本実施形態の実行キュー205〜208が、プログラムの実行順を制御する手段に相当する。実行コア指定部320aが、コア指定処理を完了した後、実行プログラムリスト218の処理済みの項目は、実行プログラムリスト218から削除される。以上の処理を使用して実行プログラムリスト218は、プログラムが各キューに割り当てられる前に実行コア指定部320aが、実行予定のプログラムを管理する機能を提供し、次にプログラムを実行するべきコア205〜208にプログラムを動的に割り当てることを可能としている。
CPU104は、コア205〜208それぞれが使用するL1キャッシュ209〜212を備えていて、コア205〜208のアクセス効率を改善している。さらに、CPU104は、コア205〜208それぞれに対し、いわゆるアプリケーション・キャッシュとしても参照されるL2キャッシュを提供し、アプリケーションレベルで使用するデータなどへのアクセス効率を改善する。さらに、CPU104は、図示する具体例では、L3キャッシュ217を備えている。L3キャッシュは、コア205〜208が排他的に使用するデータではなく、コア205〜208が共有することができるデータを格納する機能を提供し、コア205〜208が使用する可能性のある共有データへのアクセス効率を改善させている。
なお、本実施形態で使用するCPU104は、4コア構成に限定されるものではなく、2コア、8コア、16コアなど、処理上の要求に応じて増加させることができる。また、他の実施形態では、マルチコアのCPUをデュアルに実装する、デュアルCPU構成を使用することもできる。
図3は、本実施形態の画像形成装置120のソフトウェアブロック300を示す。画像形成装置120は、画像形成装置120が各種機能を提供するためのアプリケーション・プログラム(以下、単に「アプリ」として参照する。)を実装している。これらのアプリとしては、例示的にコピーアプリ310a、プリンタアプリ310b、スキャナアプリ310c、FAXアプリ310d、およびHDD消去アプリ310eを挙げることができるが、これらに限定されるものではない。この他、Firefox(登録商標)、Mozila(登録商標)、Internet Explorer(登録商標)、Apache(登録商標)といった各種のアプリを、提供するべき機能に応じて実装することができることは言うまでもないことである。
各アプリ310a〜310eは、OS320の管理下で動作しており、OSにより、各アプリ310a〜310eが呼び出し、動作の開始・終了、実行時エラーなどの例外処理などが行われる。本実施形態では、OS320は、さらに実行コア指定部320aを備えていて、本実施形態に従い、アプリを実行する際のコアを指定する機能を提供する。このような実行コア指定部320aとしては、例えばOpenMPのコマンドを解釈実行することができOSのモジュール、UNIX(登録商標)、LINUX(登録商標)のtasksetコマンドを実行するシェルコマンド領域を挙げることができる。本実施形態の実行コア指定部320aが、並列実行するべき処理を、複数のコアに分散して発行する手段および実行コア指定手段に相当する。
さらに、画像形成装置120は、ハードウェアとのインタフェースおよび制御を行うためのBIOSおよびCPUの稼働状態、温度、ファン速度などをモニタすることで、コアの負荷を監視および管理するBIOS/モニタプログラム330を備えている。OS320は、BIOS/モニタプログラム330からの情報を取得し、コア205〜208に割り当てるべき、プログラム/スレッドを制御する。
一般に、特定のコアの負荷が設定された閾値を超えた場合、OS320は、対応する実行キューに登録されたプログラム識別値を、特定のポリシーを使用して他のコアのための実行キューに移動させることで、負荷の高いコアの負荷を軽減して負荷をバランスする。例えば、移転先のコアは、その時点で最も稼働率の低いコアとすることができる。また例えば、一定時間ごとに実行キューの内容を他の実行キューに移転する態様を使用することができる。
本実施形態においては、コアの処理負荷を分散させる際、実行キュー単位でコアを移転するのではなく、OSが、アプリの実行を特定のコアに固定する場合には、実行コアが指定されたアプリが、実行コア205〜208に対応する実行キュー201〜204に残され、他のアプリが他のコアに移動される。この結果、コアを固定して実行させるべきアプリが、特定のコアで実行され、他のアプリが、負荷分散ポリシーで規定される他のコアで実行される。すなわち、本実施形態では、特定のコアに対応する実行キューの入れ替えを、コアが指定されたプログラムを残して他のアプリを、他のコアに対応する実行キューに移動させるものである。
このため、実行コアが指定されていないアプリは、一定時間毎に行われる実行キューの入れ替え対象とされる。実行キュー201〜204に、コアを固定するべきアプリが登録されていなければ、当該実行キューの内容を、一定時間で移転させることにより、コア205〜208をOSに設定されたポリシーにより負荷分散が可能となる。一方、実行キュー201〜204にコアを固定するべきアプリが登録された場合、当該実行キューは、当該アプリを残して、他のアプリが他の残りの実行キューに移転され、そして当該実行キューは、アプリが終了するまで、他のアプリが割り当てられることがない。
図4は、本実施形態のプログラムの並列実行を説明する概念図である。図4(a)は従来の処理分散ポリシーに従う実行制御のシーケンスであり、図4(b)は、本実施形態による処理分散ポリシーに従う実行制御のシーケンスである。図4(a)の従来例では、画像形成装置120において、図3に示したコピーアプリ310aを、コア207で、スキャナアプリ301cをコア208で実行するように固定する。そして、その他のプログラムをコア205、206で並列実行するようにコアを割り当てる。
従来例では、次回に画像形成装置120が動作開始する場合、コピーアプリ310aをコア208に割り当て、コア207を、スキャナアプリ310cに割り当てることで、負荷分散を行う。
しかしながら、図4(a)に示すように、ユーザがスキャナ機能をあまり使用しない場合、コア208は、アイドル状態が続いてしまい、また再起動後にスキャナアプリ310cをコア207に固定したとしても、コア208は、依然としてアイドル状態を続けてしまうことは同じである。このため、アプリを単純に特定のコアに割り当てるポリシーでは、システム全体で無駄が生じてしまうことに対応できない。
一方、本実施形態では、画像形成装置120の起動時は、アプリを特定の実行コアに対して割り当てることはせず、全コアをアプリ用に開放する。そして、実行コアの指定があるアプリが実行される場合に、当該コアで実行中のアプリを他のコアに移転させ、実行コアが指定されたアプリにコアの容量を占有させる負荷分散ポリシーを採用し、CPU資源を有効利用するものである。
図4(b)の実施形態を使用して具体的に本実施形態の作用を説明する、コピーアプリ310aの起動をトリガとして、それまでコア207で実行されていたアプリは、別のコア208に移動される。また、コア208は、図4(a)と同様に、スキャナアプリ310cに割り当てられているものの、本実施形態では、コア208は、スキャナアプリ310cが実行されない限り、他のコア205、206と同様に、その他のアプリの処理1−a、1−b、2−a、2−bなどを実行することが可能である。
すなわち、本実施形態で採用するポリシーによれば、優先性の高い、または高負荷を要求するプログラムが起動されるまでは、コア全部205〜208が均等にプログラムを実行する第1のポリシーで負荷分散を行う。また、優先性が高いか、高負荷を要求するアプリが要求された場合、実行するコアを固定し、それ以外のアプリにはコアを固定することなく実行させる第2のポリシーで負荷分散を達成する。この結果、ユーザ要求による割り込みの発生を優先させつつ、コアの負荷分散を達成することが可能となり、コアの利用性が改善される。
なお、本実施形態において、優先度の高いプログラムとは、ユーザ要求による割り込みを契機として動作開始する、コピーアプリ310a、スキャナアプリ310c、FAXアプリ310dの他、検索アプリ、ネットワーク・アクセスアプリなどを挙げることができる。また、本実施形態で高負荷を要求するアプリまたは処理としては、HDD消去アプリ310eによるデータ消去処理および画像描画処理などを挙げることができるがこれらに限定されるものではない。
図5は、本実施形態の負荷分散処理のフローチャートである。図5の処理は、ステップS500から開始し、ステップS501で優先/高負荷処理が起動されると、ステップS502で、優先/高負荷アプリ実行コア要求を、実装形式に応じて当該アプリまたはOSが発行する。ステップS503では、OS302の実行コア指定部320aが、優先/高負荷アプリ実行コア要求に対応して実行固定コアを確保する処理を実行する。
この処理は、例えば、対応する実行キュー201〜204に登録されているプログラム識別値を他のコアに対応する実行キューに移動させる処理を伴う。さらにこの処理においては、その時点で固定予定のコアが他のアプリを実行している場合、例えば処理負荷の低いコアに処理を移動することで、アプリに対してコアを固定的に確保することにより即時的なアプリの実行可能とする。
その後、ステップS504では、実行プログラムリスト218を検索し、先頭に登録されているアプリが、すでに優先/高負荷アプリか否かを判断する。この判断は、アプリに固有に割り当てられているプログラム識別値を使用して実行プログラムリスト218を検索することで実装することができる。実行プログラムリスト218の先頭に登録されているアプリが、現在実行コア指定要求が発行されている優先/高負荷アプリである場合(yes)、ステップS506で当該優先/高負荷アプリのためすでに確保したコアに対応する実行キューにプログラムを登録し、アプリを指定したコアに発行する。この時点ではステップS503の処理で対応する実行キューはからの状態とされているので、実行キューに登録された後、アプリは、即時的実行される。
一方、ステップS505の判断で、実行プログラムリスト218の先頭に登録されているアプリが、その時点で実行コア指定要求を発行した優先/高負荷アプリでない場合(no)、ステップS507で固定するべき他のコアへとアプリの処理を発行する。この際の処理は、ステップS506で説明したと同様にし実行される。
ステップS506、S507で処理を発行した後、ステップS508で、実行プログラムリスト218が空か否かを判断する。実行プログラムリスト218が空の場合(yes)、コア指定を行わなければならないアプリはもうないので、処理をステップS509に進めて処理を終了する。一方、実行プログラムリスト218が空でない場合(no)、処理をステップS504に戻し、アプリを実行するコアを割り当てて処理を発行させ、ステップS508で実行プログラムリスト218が空になるまで、処理を反復させる。なお、実行プログラムリスト218の先頭に登録されているアプリが、コア指定を要しないアプリである場合、実行コア指定部320aは、第1のポリシーに従って、排他使用されていない、いずれかのコアにアプリを実行させる。
以上の処理により、優先/高負荷アプリの起動割り込みがあるまでは、コアの処理負荷に応じてアプリに対してコアを割り当てながら、優先/高負荷アプリの要求があった時にはプログラムに指定したコアを割り当てて処理を可能とする、本実施形態のポリシーに従い。マルチコア間の負荷分散を可能としている。
図6は、本実施形態で、アプリの機能を提供するプログラムのプログラム識別値を特定のコアに割り当てる情報の実施形態を示す。図6の情報は、プログラムの実装形式に応じてOS320の実行コア指定部320aの実行時データとして作成することもできるし、アプリを提供するプログラムのコア指定情報として行ごとに分散させてアプリのプログラム・コード中に記述することもできる。図6に示したアプリは、ユーザ要求により優先度を高くするべきアプリの他、例えば、HDDデータ消去といった高負荷を要求するアプリである。
図6に示したアプリは、単なる例示であり、この他にもユーザによる割り込みに応じて処理を開始するべきアプリまたは処理は、図6の情報に追加することができる。これら以外の、例えば、機器チェック、ファクシミリ受信、稼働状況モニタ、その他の非ユーザ要求のアプリ、サービスについては、特定の用途および目的に応じて図6の情報に追加できるが、本実施形態の要旨においては、「その他のアプリ」として分類されるべきものである。
図7は、本実施形態において、優先/高負荷ジョブが終了した後に、第1のポリシーによる負荷分散処理に復帰する際の処理のフローチャートである。図7の処理は、ステップS700から開始し、ステップS701で、図6に示した情報〜優先/高負荷アプリのプログラム識別値を取得し、ステップS702で実行プログラムリスト218を検索する。
ステップS703で、実行プログラムリスト218先頭に優先/高負荷アプリのプログラム識別値が登録されていない場合(no)、ステップS704で実行コア指定を解除し、ステップS705で、実行プログラムリスト218が空か否かを判断する。実行プログラムリスト218が空でない場合、ステップS702に処理を戻し、再度、先頭に優先/高負荷処理プログラムが登録されているか否かについて検索する。
一方、ステップS703の判断で実行プログラムリスト218に優先/高負荷アプリのプログラム識別値が登録されている場合(yes)、実行コアを確保・実行するための図5の処理に処理を委ね、図7の処理はステップS706に進んで終了する。また、ステップS705の判断で、実行プログラムリスト218が空と判断された場合(yes)、処理はステップS706に進み終了する。
なお、図7の処理は、図5の処理に後続して呼び出されることが好ましいが、図5の処理と統合して、一体として負荷分散処理のプログラムモジュールとして実装することができる。
図8は、本実施形態において、優先/高負荷アプリの実行中に、負荷分散ポリシーの切替を行う実施形態のフローチャートである。図8の処理は、ステップS800から開始し、ステップS801で優先/高負荷アプリが呼び出されると、例えばプロセス管理リストに対応するアプリを登録し、当該アプリに実行フラグを設定する。その後、ステップS802で、図5のステップS506またはステップS507を呼び出して、コアを固定した第2のポリシーの下での処理を開始させる。
次いでステップS803で新規アプリの起動が要求されると、ステップS804で、新規アプリが優先/高負荷アプリであるか否かを判断し、優先/高負荷アプリでない場合(no)、処理をステップS810に分岐させ、図7のステップS702〜S705の処理を適用して、利用可能な固定されていないコアの中から第1のポリシーに従い、コアを割り当て、アプリを該当する実行キュー201〜204に発行する。
一方、ステップS804の判断で、優先/高負荷アプリが要求されていると判断された場合(yes)、ステップS805で、図5のステップS507を呼び出して、コアを固定した第2のポリシーの下での処理を開始させる。その後、ステップS806で、先行して動作していた優先/高負荷アプリが終了すると、ステップS807で図7のステップ702〜S705を呼び出して、実行コアの解除を行う。その後、ステップS808でプロセス管理リストの該当するアプリの動作フラグを解除し、処理はステップS809に進んで終了する。
以上の処理によって、優先/高負荷アプリの実行中に起動されたプログラムにおいても、優先/高負荷アプリとの競合による意図しない性能低下を防ぐことができる。なお、本実施形態の負荷分散プログラムは、アプリの機能を提供するプログラム自体に、コア指定、コア解除を行うOSコマンドを記述しておくことができる。
また、他の実施形態では、ShellScriptといったOSコマンドをアプリを提供するためのプログラムとは別に用意し、アプリの実行状態をOSプログラムが監視して第1のポリシーおよび第2のポリシーを切り替え制御することができる。また、本実施形態の負荷分散処理を実行するためのプログラムは、C++、Java(登録商標)、ShellScriptなどいかなる言語で記述することができ、特に限定されるものではない。
これまで本発明を、実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
100 :ハードウェアブロック
101 :プロッタ
102 :スキャナ
103 :画像処理回路
104 :CPU
105 :RAM
106 :ROM
109 :HDD装置
111 :外部装置
113 :ネットワーク
120 :画像形成装置
130 :制御部
201〜204 :実行キュー
205〜208 :コア
209〜212 :L1キャッシュ
213〜216 :L2キャッシュ
217 :L3キャッシュ
218 :実行プログラムリスト
300 :ソフトウェアブロック
301c :スキャナアプリ
310a :コピーアプリ
310b :プリンタアプリ
310c :スキャナアプリ
310d :FAXアプリ
310e :HDD消去アプリ
320a :実行コア指定部
330 :モニタプログラム
特開2011‐100277号公報

Claims (9)

  1. 並列実行を行う情報処理装置であって、
    複数のコアを有するCPUを含む制御手段と、
    前記並列実行するべき処理を、前記複数のコアに分散して発行する手段と
    を含み、前記並列実行するべき処理を、前記複数のコアに分散して発行する手段は、
    前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行する
    情報処理装置。
  2. 前記情報処理装置は、ユーザにより要求される処理を前記優先度の高い処理として、前記固定したコアを割り当てる、請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、HDD装置のデータ消去処理および画像描画処理のための負荷を、それぞれ異なる前記固定したコアに処理させる、請求項1または2に記載の情報処理装置。
  4. 前記情報処理装置は、さらに、
    前記複数のコアに依頼する処理の識別値を、先入れ先出し方式で管理するとともに、前記識別値に応じて処理先のコアを固定するか否かを判断するためのリスト手段と、
    前記リスト手段に登録された前記処理を、前記判断に応じて予め空にされた当該処理を実行するべき前記コアに対応する実行待ち手段に送付する実行コア指定手段とを含む、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記情報処理装置は、組込装置である、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 並列実行を行う情報処理装置が実行する装置実行可能な情報処理方法であって、
    前記並列実行するべき処理の優先度または負荷を決定するステップと、
    前記複数のコアに前記並列実行するべき処理を分散して発行するステップと、
    前記複数のコアに前記並列実行するべき処理を発行するステップと
    を含み、
    前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、
    前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行するするステップを含む、情報処理方法。
  7. 前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、ユーザにより要求される処理を前記優先度の高い処理に前記固定したコアを割り当てるステップを含む、請求項6に記載の情報処理方法。
  8. さらに、
    前記複数のコアに依頼する処理の識別値を、先入れ先出し方式で管理するとともに、前記識別値に応じて処理先のコアを固定するか否かを判断するステップと
    前記判断に応じて予め空にされた当該処理を実行するべき前記コアに対応する実行待ち手段に前記処理を送付するステップと
    を含む請求項6または7に記載の情報処理方法。
  9. 処理を並列実行するための情報処理装置実行可能なプログラムであって、前記プログラムは、情報処理装置が、
    前記並列実行するべき処理の優先度または負荷を決定するステップと、
    前記複数のコアに前記並列実行するべき処理を分散して発行するステップと、
    前記複数のコアに前記並列実行するべき処理を発行するステップと
    を実行し、
    前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、
    前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行するするステップを含む、
    プログラム。
JP2016038571A 2016-03-01 2016-03-01 情報処理装置、情報処理方法およびプログラム Pending JP2017156907A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016038571A JP2017156907A (ja) 2016-03-01 2016-03-01 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016038571A JP2017156907A (ja) 2016-03-01 2016-03-01 情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2017156907A true JP2017156907A (ja) 2017-09-07

Family

ID=59809736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016038571A Pending JP2017156907A (ja) 2016-03-01 2016-03-01 情報処理装置、情報処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017156907A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093612A (ja) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 画像形成装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093612A (ja) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 画像形成装置及びプログラム
JP7006173B2 (ja) 2017-11-22 2022-01-24 コニカミノルタ株式会社 画像形成装置及びプログラム

Similar Documents

Publication Publication Date Title
CN112099941B (zh) 实现硬件加速处理的方法、设备和***
JP3882931B2 (ja) 仮想計算機環境におけるディスパッチ機能の管理
KR101680109B1 (ko) 복수 코어 장치 및 그의 로드 조정 방법
US20210089343A1 (en) Information processing apparatus and information processing method
JP6101170B2 (ja) 計算機システム、キャッシュ管理方法、及び計算機
JP4719655B2 (ja) ネットワーク上におけるプロセッサ制御技術
WO2018157836A1 (zh) 一种可编程硬件的资源管理方法、可编程硬件设备及存储介质
US9489295B2 (en) Information processing apparatus and method
US10579416B2 (en) Thread interrupt offload re-prioritization
US20150154042A1 (en) Computer system and control method for virtual machine
JP5124430B2 (ja) 仮想マシンの移行方法、サーバ、及び、プログラム
WO2017056310A1 (ja) 計算機および計算機の制御方法
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP6518087B2 (ja) プログラム処理装置
WO2011039887A1 (ja) 計算機装置
JP2017156907A (ja) 情報処理装置、情報処理方法およびプログラム
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
US10909044B2 (en) Access control device, access control method, and recording medium containing access control program
JP2007102447A (ja) 演算処理装置
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
JP6232127B2 (ja) 共有リソース更新装置及び共有リソース更新方法
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
JP2013149108A (ja) 情報処理装置及びその制御方法、プログラム
JP6721860B2 (ja) 情報処理システム