JP2009211604A - 情報処理装置、情報処理方法、プログラム、及び、記憶媒体 - Google Patents

情報処理装置、情報処理方法、プログラム、及び、記憶媒体 Download PDF

Info

Publication number
JP2009211604A
JP2009211604A JP2008056028A JP2008056028A JP2009211604A JP 2009211604 A JP2009211604 A JP 2009211604A JP 2008056028 A JP2008056028 A JP 2008056028A JP 2008056028 A JP2008056028 A JP 2008056028A JP 2009211604 A JP2009211604 A JP 2009211604A
Authority
JP
Japan
Prior art keywords
execution
group
task
assigned
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.)
Withdrawn
Application number
JP2008056028A
Other languages
English (en)
Inventor
Kensuke Kawajiri
健介 川尻
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2008056028A priority Critical patent/JP2009211604A/ja
Publication of JP2009211604A publication Critical patent/JP2009211604A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】マルチプロセッサシステムの資源を有効利用し、並列処理の効率化,高速化を図ること。
【解決手段】MainCPU101が、メモリ107に記憶される、並行処理可能なスケジューリング対象の実行単位(スレッド等)をタスク毎にグループ化し、各タスクに、SubCPU102a〜102nを割り当てるスケジューリング処理を行う。このスケジューリング処理では、前記実行単位に対して処理の緊急度を判断し、前記グループ内の緊急度を有する実行単位の数に応じて、前記各グループに割り当てる実行手段の数を制御することを特徴とする。
【選択図】図1

Description

本発明は、マルチプロセッサシステムに対応した情報処理装置、情報処理方法、プログラム、及び、記憶媒体
最近のマルチタスクをサポートするオペレーティングシステム(OS)は、複数のプロセスを同時に実行することができるマルチプロセス環境を実現する。さらに、この種のOSは、これらのプロセスがプロセス内部で複数のスレッドを生成して並行処理を行うことのできるマルチスレッド技術を搭載している。
なお、プロセスは、実行時に固有のリソースやアドレス空間が割り当てられ、他のプロセスの領域にアクセスすることはできない。
これに対してスレッドは、プロセスの内部で生成される実行単位であり、各スレッドはプロセス内の領域に互いに自由にアクセスすることができる。なお、スレッドは、OSがCPUの実行時間を割り当てる基本的な単位となる。
スレッドをCPUに割り当てるスレッドスケジューリング方式として、待ち行列に入っているスレッドを一定時間毎に順番に選んで実行する単純なラウンドロビン方式や、スレッドの優先度の順に実行するプライオリティ方式などがある。
ラウンドロビン方式では、待ち行列にあるスレッドが一定時間ごとに公平にCPUに割り当てられて実行される。
プライオリティ方式では、優先度毎に設けられた待ち行列に各優先度のスレッドがキューイングされ、優先度の高い待ち行列から順にスレッドが選択されCPUに割り当てられて実行される。
また、1つのシステム内に複数のプロセッサを搭載したマルチプロセッサシステムでは、並列に処理を実行して処理全体の高速化を図ることができる。
特開2003−178042号公報
しかしながら、上記のマルチプロセッサシステムにおいて、マルチスレッド環境を実現する場合、スレッドをいずれかのプロセッサに割り当てて実行することになり、スレッドの実行順序によって、プロセスの実行速度やメモリ消費量などの性能が変わってくる。
このような、マルチプロセッサシステムにおけるスレッドスケジューリングでは、プロセッサ資源の利用の効率化や、スレッド間のデータの受け渡しや通信の効率化などについても配慮する必要がある。
このように、マルチプロセッサシステムにおけるスレッドスケジューリングは、シングルプロセッサシステムにおけるスレッドスケジューリングとは違った工夫が必要となる。このため、従来のシングルプロセッサシステムにおける技術では、マルチプロセッサシステムの資源を有効利用し、並列処理の高速化を図ることが困難であった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、マルチプロセッサシステムの資源を有効利用し、並列処理の効率化,高速化を図る仕組みを提供することである。
本発明は、データ処理を分割した処理の1つに当たる実行単位を実行する複数の実行手段と、前記複数の実行手段が実行する実行単位の処理データを記憶する記憶手段と、前記記憶手段に記憶される、並行処理可能なスケジューリング対象の実行単位をグループ化し、各グループに前記実行手段を割り当てるスケジューリング手段と、を有し、前記スケジューリング手段は、前記実行単位に対して処理の緊急度を判断し、前記グループ内の緊急度を有する実行単位の数に応じて、前記各グループに割り当てる実行手段の数を制御することを特徴とする。
本発明によれば、マルチプロセッサシステムの資源を有効利用し、並列処理の効率化,高速化を図ることができる等の効果を奏する。
本発明の一実施形態を示す情報処理装置について、図面を参照して説明する。
<図1の説明>
図1は、本発明の一実施形態を示すマルチプロセッサシステムで動作する情報処理装置の構成の一例を示すブロック図である。
図1において、100は、本発明の情報処理装置に対応するプロセッサシステムであり、マルチプロセッサシステム割込み制御方式が採用されるバス共有型マルチプロセッサシステムで動作する。
MainCPU101、SubCPU102a,・・・,102nは中央処理装置(プロセッサ)であり、データ処理を行うための演算及び制御を行う。マルチプロセッサシステム100は、図示しないROMやハードディスク(HD)等の記憶媒体を有する。そして、該記憶媒体に格納されるオペレーティングシステム(OS)や各種アプリケーションプログラムを、CPU101,102a,・・・,102nが読み出して実行することにより各種機能を実現することができる。
104はメモリコントローラ(MC)であり、CPU101,102a,・・・,102nの動作に必要なデータ(処理データ)を格納する共有メモリ(Memory)107を制御する。
105は割込みコントローラ(内部IC)であり、マルチプロセッサ100内のCPU101〜103の割込みを制御したり、外部デバイス(I/O109〜111)からの割込みを制御したりする。
106はバスコントローラ(BC)であり、マルチプロセッサシステム100内及び内部外部のバス112通信を制御する。
108は外部割込みコントローラ(外部IC)であり、マルチプロセッサシステム100に接続されている外部デバイス109〜111からの割込みを制御し、バスコントローラ106を経由し、割込みコントローラ105に通知する。
なお、MainCPU101は、データ処理を分割した処理の1つに当たる実行単位(スレッド等)を、SubCPU102a,・・・,102nに割り当てるスケジューリングを行う。そして、SubCPU102a,・・・,102nは、MainCPU101により割り当てられた実行単位を実行する。なお、SubCPU102a,・・・,102nの数は任意である。
<図2の説明>
図2は、本発明におけるプロセッサ割り当ての一例を示す図である。詳細には、送信タスク、受信タスク、内部状態通知タスク、その他の処理を処理しているマルチプロセッサに対して、本発明のスケジューリング方法を実施した際の、プロセッサの割り当てを示す。特に、並行処理可能なスケジューリング対象の複数の実行単位に対するプロセッサの割り当てを示す。なお、それぞれのタスクの詳細については後述する図6で説明する。
また、図2に示す例では、マルチプロセッサシステム100は、102a〜102hの8個のSubCPUを有するものとする。なお、図2では、本発明のマルチプロセッサシステムが8個のSubCPUを備える例を示しているが、本発明はSubCPUの数で限定されるものではない。
図2に示すように、受信タスク201、状態通知タスク202、送信タスク203には、それぞれ割り当て可能なプロセッサの最大数(MAX)、最少数(MIN)を定める。なお、前記割り当て可能なプロセッサの最大数,最少数は、メモリ107又は不図示のHDに記憶されている。
ここで、状態1(205)では、各々のタスクに1個のプロセッサが割り当てられており、余ったプロセッサに関してはその他の処理に用いられている。
次に、受信タスク201,送信タスク203へ緊急度の高い処理が入力され、状態2(206)へ遷移すると、MainCPU101は、その他の処理に用いられているプロセッサを受信タスク201,送信タスク203へと割り振るように制御する。なお、実行単位の「緊急度」は、その実行単位の生成時に付けられるものとする。なお、この緊急度は、変更されないものであってもよいし、OS等により変更されるものであってもよい。
以下、状態1(205)から状態2(206)への遷移を詳細に説明する。
MainCPU101は、受信タスク201に、2個のSubCPU(102c,102g)を割り当てる。また、MainCPU101は、送信タスク203に、3個のSubCPU(102a,102e,102f)を割り当てる。なお、状態通知タスク202に関しては、緊急度の高い処理を持っていないため、MainCPU101は、1個のSubCPU(102b)を割り当てたままにしている。
以上に示したように、本マルチプロセッサシステム100は、並行処理可能なスケジューリング対象の複数の実行単位をタスク毎にグループ化し、各グループ(即ち各タスク)に上記複数のSubCPUを割り当てるスケジューリング処理を行うものである。
<図3の説明>
図3A,図3B,図3Cは、本発明におけるスケジューリング方法を実施した際のプロセッサの割り当てを詳細に示した図である。
特に、送信タスク、受信タスク、内部状態通知タスク、その他の処理を処理しているマルチプロセッサに対して、本発明のスケジューリング方法を実施した際の、プロセッサの割り当てを示す。
なお、図3A〜図3Cに示す例では、マルチプロセッサシステム100は、102a〜102fの6個のSubCPUを有するものとする。なお、図3A〜図3Cでは、本発明のマルチプロセッサシステムが6個のSubCPUを備える例を示しているが、本発明はSubCPUの数で限定されるものではない。
図3Aに示す状態1において、受信タスク201に割り当て可能なプロセッサの最大数は2個(MAX2)、最少数は1個(MIN1)と設定されているものとする。
状態通知タスク202に割り当て可能なプロセッサの最大数は1個(MAX1)、最少数は1個(MIN1)と設定されているものとする。
送信タスク203に割り当て可能なプロセッサの最大数は3個(MAX3)、最少数は1個(MIN1)と設定されているものとする。なお、これらのタスクに設定された最大数,最小数は、それぞれのタスクの負荷に応じて変更可能である。
まず、状態1(331)として、受信タスク201は、実行単位a1(305)、a2(306)、a3(307)を持っている(タスク毎のキュー内に格納されている)。ここで、実行単位a2(306)は、緊急度の高い実行単位である。
また、状態通知タスク202は、実行単位b1(308)、b2(309)を持っている。ここで、実行単位b2(309)は、緊急度の高い実行単位である。
さらに、送信タスク203は、実行単位c1(310)、c2(311)、c3(312)を持っている。また、その他の処理204は、実行単位o1(313)、o2(314)、o3(315)を持っている。
ここで、受信タスク201には、緊急度の高い実行単位a2(306)が入力されている(タスク毎のキュー内に格納されている)ため、2個のSubCPU102a,102bが割り当てられている。
状態通知タスク202には、緊急度の高い実行単位b2(309)が入力されているが、状態通知タスク202に割り当て可能なプロセッサの最大数は1個であるため、1個のSubCPU102cが割り当てられている。
また、送信タスク203には、実行単位c1(310)、c2(311)、c3(312)の3個の実行単位が入力されているが、いずれも緊急度の高い実行単位ではないため、1個のSubCPU102dが割り当てられている。
また、残りのSubCPU102e,102fには、その他の処理204が割り当てられている。
次に、送信タスク203に緊急度の高い実行単位C4(316)が入力され、状態2(332)に遷移する。
ここで、図3Bに示す状態2(332)において、MainCPU101は、緊急度の高い実行単位C4(316)が送信タスク203に入力された為、送信タスク203に割り当てられるSubCPUの数を、1個から2個へ増加するように制御する。SubCPU102eには、その他の処理204が割り当てられ、実行単位o1(313)が実行されていたが、実行単位o1(313)が終了したと同時に、送信タスク203にSubCPU102eを割り当てるようにMainCPU101が制御する。
このため状態2(332)では、受信タスク201に、SubCPUが2個(102a、102b)、状態通知タスクにSubCPUが1個(102c)、送信タスク(203)にSubCPUが2個(102d、102e)割り当てられている。
残りのSubCPU(102f)には、その他の処理が割り当てられる。
次に、受信タスク201の持つ緊急度の高い実行単位a2(306)が終了すると、状態3(333)へ遷移する。
図3Cに示す状態3(333)では、受信タスク201は、実行単位a2(306)が終了したため、緊急度の高い実行単位を持たなくなる。この為、MainCPU101は、受信タスク201に割り当てるSubCPUを最小数である1個となるように制御する。
このため状態3(333)では、受信タスク201にSubCPUが1個(102a)、状態通知タスク202にSubCPUが1個(102c)、送信タスク203にSubCPUが2個(102d、102e)割り当てられている。残りのSubCPU(102b、102f)には、その他の処理が割り当てられる。
<図4の説明>
図4は、本発明のスケジューリング方法における各タスクへのプロセッサの割り当て最大数、最小数の変更方法の一例を示した図である。
本発明のスケジューリング方法では、緊急度の高い実行単位が1個入力されると、そのタスクに割り当てられるサブプロセッサを1個増やすように制御するものとする。
受信タスク201、状態通知タスク202、送信タスク203において、それぞれに割り当て可能なプロセッサ数が、初期状態420として定められている。
ここで状態通知タスク202は、実行単位b2(410)、b3(411)を持っている。実行単位b2(410),b3(411)は、いずれも緊急度の高い実行単位である。
このため、状態通知タスク202は、3個のプロセッサの割り当てを必要とするが、初期状態420では、状態通知タスク202に割り当て可能な最大プロセッサ数は1個(MAX1)と設定されている。
この時、スケジュール対象外のその他の処理に割り当てられているサブプロセッサ(SubCPU)が存在していれば、MainCPU101は、状態通知タスク202に、割り当てが必要なプロセッサ数を増加するように制御する。
このケースでは、その他の処理に割り当てられているプロセッサが1個あるものとする。よって、MainCPU101は、次状態421のように、状態通知タスク202への割り当て可能な最大プロセッサ数を1個増やするように制御する。即ち、状態通知タスク202への割り当て可能な最大プロセッサ数を2個にする。
そして、状態通知タスク202の持つ緊急度の高い実行単位の処理が終了すると、MainCPU101は、割り当て可能な最大プロセッサ数を初期状態420に戻すように制御する。
なお、割り当てが必要なプロセッサ数と、割り当て可能な最大プロセッサ数との差がどの程度開いた時に割り当て可能な最大プロセッサ数を増加するかを示すしきい値、タスク毎に予め設定しておき、メモリ107又は図示しないHD等の記憶媒体内に記憶さておいてもよい。この場合、MainCPU101は、割り当て可能な最大プロセッサ数から割り当て可能な最大プロセッサ数を減算した値が、上記設定されたしきい値を越えている場合に、対象タスクへの割り当て可能な最大プロセッサ数を増加させるように制御する。
<図5の説明>
以下、図5のフローチャートを参照して、本発明におけるスケジューリング処理、即ち各タスクが持つキュー内(実体はメモリ107内の記憶領域)にある実行単位をMainCPU101がどのSubCPU102a〜102hへ割り当てるかを説明する。
図5は、本発明においてプロセッサへ実行単位を割り当てるスケジューリング処理の一例を示すフローチャートである。なお、このフローチャートの処理は、図示しないHD等の記憶媒体に格納されるプログラムを、CPU101が読み出して実行することにより実現される。なお、図中、S701〜S706は各ステップを示す。
また、このフローチャートの処理は、新たな実行単位が生成されたタイミングや実行単位の実行が終了したタイミング等で実行されるものとする。
まず、MainCPU101は、スケジューリング対象の実行単位を持つタスクが、使用可能なSubCPUの最大数(割り当て可能な最大プロセッサ数(MAX))を既に使用しているかどうかを判断する(S701)。
そして、対象の実行単位を持つタスクが既に使用可能なCPU全てを使用していると判断した場合(S701でYes)、対象の実行単位をプロセッサへ割り当てることができないため、MainCPU101はS701に処理を戻し、待ち状態となる。
一方、上記対象の実行単位を持つタスクが使用可能なSubCPUのうちまだ使用していないCPUがあると判断した場合(S701でNo)、MainCPU101は、対象の実行単位を持つタスクのキュー内の緊急度の高い実行単位の総数を調べる。
次に、MainCPU101は、緊急度の高い実行単位の総数と対象の実行単位を持つタスクが使用しているSubCPUの数を比較する(S702)。
そして、緊急度の高い実行単位の総数と対象の実行単位を持つタスクが使用しているSubCPUの数が等しい場合(S702でYes)、対象の実行単位をプロセッサへ割り当てることができないため、MainCPU101は、待ち状態となる。
一方、緊急度の高い実行単位の総数と対象の実行単位を持つタスクが使用しているSubCPUの数が等しくない場合(S702でNo)、MainCPU101は、空き状態のSubCPUがあるかを調べる(S703)。
そして、空き状態のSubCPUがあると判断した場合(S703でYes)、MainCPU101は、対象の実行単位を、上記空き状態のSubCPUに割り当てる(S706)。そして、本フローチャートの処理を終了する。
一方、空き状態のSubCPUが無いと判断した場合(S703でNo)、MainCPU101は、本スケジューリング対象ではないその他の処理204のタスクが使用しているSubCPUが空き状態となるのを待つ(S704)
そして、本スケジューリング対象ではないその他の処理204のタスクが使用しているSubCPUが空き状態となると、MainCPU101は、該空き状態となったSubCPUに対して、対象の実行単位を割り当てる(S705)。そして、本フローチャートの処理を終了する。
<図6の説明>
図6は、本発明のスケジューリング方法を画像形成装置に対して実施した際の概念図である。なお、この画像形成装置は、図1に示したマルチプロセッサシステム100に対応しており、送信タスク203、受信タスク201、状態通知タスク202を持っている。
図6に示すように、画像形成装置は、接続されているPC等から機器の状態等の問い合わせ(501〜503)を受信タスク201にて受け取る。即ち、これらの受信処理に対応する実行単位が受信タスク201のキューに格納され、該キュー内の実行単位を受信タスク201に割り当てられているSubCPUが実行する。この時、問い合わせ502は、緊急度の高い問い合わせとする。
また、緊急度の高い問い合わせの例としては、機器が印刷不可能になった際のエラー状態に対する問い合わせ等が挙げられる。
受信タスク201が問い合わせ(501〜503)を受け取ると、画像処理装置は、問い合わせに応じた処理(513)を行う。なお、上記問い合わせに対応する処理513の例としては、印刷不可能になった際のエラー状態に対する問い合わせに対して、画像形成装置が、自身のエラー状態を確認して送信タスク203へ応答結果を送る処理等が挙げられる。
また、状態通知タスク202も、送信タスク203へジョブ制御514が検知した機器の状態変化を送る処理を行う。即ち、この処理に対応する実行単位が状態通知タスク202のキューに格納され、該キュー内の実行単位を状態通知タスク202に割り当てられているSubCPUが実行する。
さらに、状態通知タスク202は、上記ジョブ制御514が検知した機器の状態変化を内部状態の変化を状態変化通知(510〜512)としてUI515へも伝える処理を行う。即ち、これらの処理に対応する実行単位が状態通知タスク202のキューに格納され、該キュー内の実行単位を状態通知タスク202に割り当てられているSubCPUが実行する。
問い合わせの応答結果や状態変化通知を受け取った送信タスク203は、それらを通知情報(507〜509)として、画像形成装置に接続されている機器へ送信する処理を行う。即ち、これらの送信処理に対応する実行単位が送信タスク203のキューに格納され、該キュー内の実行単位を送信タスク203に割り当てられているSubCPUが実行する。
なお、画像形成装置のMainCPU101は、上述した処理が行われている間も、スケジュール対象のタスクのキューに積まれた実行単位の緊急度を判断して、各タスクに割り当てるSubCPUの数を制御している。
即ち、MainCPU101は、受信タスク201、状態通知タスク202、送信タスク203に緊急度の高い入力があると、図5に示したスケジューリング処理を実行する。即ち、MainCPU101は、緊急度の高い入力があったタスクに割り当てられるプロセッサ(SubCPU)の数を増加するように制御する。
この際、MainCPU101は、タスク毎に設定される割り当て可能なプロセッサの最大数と最小数の範囲内で、各タスクに割り当てるプロセッサの数を制御する。
また、MainCPU101は、タスク毎に設定される割り当て可能なプロセッサの最大数と最小数を、各タスクの緊急度を有する実行単位の数に応じて変更設定する。例えば、タスク内の緊急度を有する実行単位の数と該タスクに割り当て可能なプロセッサの最大数との差に応じて、該タスクに設定される割り当て可能なプロセッサの最大数を変更設定する。
<図7の説明>
図7は、図2における送信タスク、受信タスク、状態通知タスクの詳細例を示す図である。
デバイス602は、図1に示したマルチプロセッサシステム100に対応しており、送信タスク203、受信タスク201、状態通知タスク202が実装されている。
PC601は、デバイス602へ対して、印刷可能かどうかといった機器状態に関する問い合わせ603を行う。この時、この問い合わせの受信処理を、デバイス602の受信タスク201が行う。即ち、この受信処理に対応する実行単位が受信タスク201のキューに格納され、該キュー内の実行単位を、受信タスク201に割り当てられているSubCPUが実行する。
また、上記機器状態に関する問い合わせ603を受信すると、デバイス602は、自身が印刷可能状態かどうか確認する等の自身の状態確認を行い、機器状態に関する問い合わせ603に対する機器状態の返答604をPC601に送信する処理を行う。即ち、この処理に対応する実行単位が対応するタスクのキューに格納され、該キュー内の実行単位を、その他の処理204に割り当てられているSubCPUが実行する。
また、デバイス602内で、機器故障のような内部状態の変化605が発生すると、デバイス602は、自身が持つパネルなどの表示手段を用いて、内部状態の変化605を表示する処理を行う(606)。この時この内部状態変化の表示処理に対応する実行単位が状態通知タスク202のキューに格納され、該キュー内の実行単位を、状態通知タスク202に割り当てられているSubCPUが実行する。
また、デバイス602を上記内部状態の変化605を、PC601に対しても通知する(607)。この時、PC601に対する内部状態変化の通知処理に対応する実行単位が送信タスク203のキューに格納され、該キュー内の実行単位を送信タスク203に割り当てられているSubCPUが実行する。
なお、デバイス602のMainCPU101は、上述した処理が行われている間も、スケジュール対象のタスクのキューに積まれた実行単位の緊急度を判断して、各タスクに割り当てるSubCPUの数を制御している。
即ち、MainCPU101は、受信タスク201、状態通知タスク202、送信タスク203に緊急度の高い入力があると、図5に示したスケジューリング処理を実行する。即ち、MainCPU101は、緊急度の高い入力があったタスクに割り当てられるプロセッサ(SubCPU)の数を増加するように制御する。
この際、MainCPU101は、タスク毎に設定される割り当て可能なプロセッサの最大数と最小数の範囲内で、各タスクに割り当てるプロセッサの数を制御する。
また、MainCPU101は、タスク毎に設定される割り当て可能なプロセッサの最大数と最小数を、各タスクの緊急度を有する実行単位の数に応じて変更設定する。例えば、タスク内の緊急度を有する実行単位の数と該タスクに割り当て可能なプロセッサの最大数との差に応じて、該タスクに設定される割り当て可能なプロセッサの最大数を変更設定する。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図8に示すメモリマップを参照して、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップの構成について説明する。
図8は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体(記録媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図5に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
したがって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
以上説明したように、本実施形態では、MainCPU101が複数の並行処理可能なスケジューリング対象の実行単位(スレッド)をタスク毎にグループ化し、各グループにSubCPU102a〜102nを割り当てるスケジューリング処理を行う。このスケジューリング処理では、実行単位に対して処理の緊急度を判断し、前記グループ内の緊急度を有する実行単位の数に応じて、前記各グループに割り当てるSubCPU102の数を制御する。
また、グループ毎に、割り当てられるSubCPU102の最大数と最小数を設定しておく。そして、前記スケジューリング処理では、前記各グループに割り当てられるSubCPU102の最大数と最小数の範囲内で、前記各グループに割り当てるSubCPU102の数を制御する。
また、前記スケジューリング処理において、前記グループ毎に割り当てられるSubCPU102の最大数と最小数を、前記グループ内の緊急度を有する実行単位の数と該グループに割り当てられる実行手段の最大数との差に応じて変更設定する。
このような構成によれば、マルチプロセッサシステムの資源を有効利用し、並列処理の効率化,高速化を図ることができる。
本発明の一実施形態を示すマルチプロセッサシステムで動作する情報処理装置の構成の一例を示すブロック図ある。 本発明におけるプロセッサ割り当ての一例を示す図である。 本発明におけるスケジューリング方法を実施した際のプロセッサの割り当てを詳細に示した図である。 本発明におけるスケジューリング方法を実施した際のプロセッサの割り当てを詳細に示した図である。 本発明におけるスケジューリング方法を実施した際のプロセッサの割り当てを詳細に示した図である。 本発明のスケジューリング方法における各タスクへのプロセッサの割り当て最大数、最小数の変更方法の一例を示した図である。 本発明においてプロセッサへ実行単位を割り当てるスケジューリング処理の一例を示すフローチャートである。 本発明のスケジューリング方法を画像形成装置に対して実施した際の概念図ある。 図2における送信タスク、受信タスク、状態通知タスクの詳細例を示す図である。 本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体(記録媒体)のメモリマップを説明する図である。
符号の説明
100 マルチプロセッサシステム
101 MainCPU
102a〜102n SubCPU
107 メモリ

Claims (10)

  1. データ処理を分割した処理の1つに当たる実行単位を実行する複数の実行手段と、
    前記複数の実行手段が実行する実行単位の処理データを記憶する記憶手段と、
    前記記憶手段に記憶される、並行処理可能なスケジューリング対象の実行単位をグループ化し、各グループに前記実行手段を割り当てるスケジューリング手段と、を有し、
    前記スケジューリング手段は、前記実行単位に対して処理の緊急度を判断し、前記グループ内の緊急度を有する実行単位の数に応じて、前記各グループに割り当てる実行手段の数を制御する、ことを特徴とする情報処理装置。
  2. 前記グループ毎に、割り当てられる実行手段の最大数と最小数を設定する設定手段を有し、
    前記スケジューリング手段は、前記各グループに割り当てられる実行手段の最大数と最小数の範囲内で、前記各グループに割り当てる実行手段の数を制御することを特徴とする請求項1に記載の情報処理装置。
  3. 前記スケジューリング手段は、前記各グループに割り当てられる実行手段の最大数と最小数を、前記各グループ内の緊急度を有する実行単位の数に応じて変更設定する、ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記スケジューリング手段は、前記グループ毎に割り当てられる実行手段の最大数と最小数を、前記グループ内の緊急度を有する実行単位の数と該グループに割り当てられる実行手段の最大数との差に応じて変更設定する、ことを特徴とする請求項3に記載の情報処理装置。
  5. データ処理を分割した処理の1つに当たる実行単位を実行する複数の実行手段と、前記複数の実行手段が実行する実行単位の処理データを記憶する記憶手段とを有する情報処理装置における情報処理方法であって、
    スケジューリング手段が、前記記憶手段に記憶される、並行処理可能なスケジューリング対象の実行単位をグループ化し、各グループに前記実行手段を割り当てるスケジューリングステップを有し、
    前記スケジューリングステップは、前記実行単位に対して処理の緊急度を判断し、前記グループ内の緊急度を有する実行単位の数に応じて、前記各グループに割り当てる実行手段の数を制御する、ことを特徴とする情報処理方法。
  6. 設定手段が、前記グループ毎に、割り当てられる実行手段の最大数と最小数を設定する設定ステップを有し、
    前記スケジューリングステップは、前記グループ毎に割り当てられる実行手段の最大数と最小数の範囲内で、前記各グループに割り当てる実行手段の数を制御することを特徴とする請求項5に記載の情報処理方法。
  7. 前記スケジューリングステップは、前記グループ毎に割り当てられる実行手段の最大数と最小数を、前記グループ内の緊急度を有する実行単位の数に応じて変更設定する、ことを特徴とする請求項6に記載の情報処理方法。
  8. 前記スケジューリングステップは、前記グループ毎に割り当てられる実行手段の最大数と最小数を、前記グループ内の緊急度を有する実行単位の数と該グループに割り当てられる実行手段の最大数との差に応じて変更設定する、ことを特徴とする請求項7に記載の情報処理方法。
  9. 請求項5乃至8のいずれか1項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
  10. 請求項5乃至8のいずれか1項に記載の情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータが読み取り可能な記憶媒体。
JP2008056028A 2008-03-06 2008-03-06 情報処理装置、情報処理方法、プログラム、及び、記憶媒体 Withdrawn JP2009211604A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008056028A JP2009211604A (ja) 2008-03-06 2008-03-06 情報処理装置、情報処理方法、プログラム、及び、記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008056028A JP2009211604A (ja) 2008-03-06 2008-03-06 情報処理装置、情報処理方法、プログラム、及び、記憶媒体

Publications (1)

Publication Number Publication Date
JP2009211604A true JP2009211604A (ja) 2009-09-17

Family

ID=41184658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008056028A Withdrawn JP2009211604A (ja) 2008-03-06 2008-03-06 情報処理装置、情報処理方法、プログラム、及び、記憶媒体

Country Status (1)

Country Link
JP (1) JP2009211604A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690730B2 (en) 2012-11-22 2017-06-27 Samsung Electronics Co., Ltd. Register slicing circuit and system on chip including the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690730B2 (en) 2012-11-22 2017-06-27 Samsung Electronics Co., Ltd. Register slicing circuit and system on chip including the same

Similar Documents

Publication Publication Date Title
JP4606142B2 (ja) スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP5597196B2 (ja) プロセス内のスケジューラインスタンス
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN106293893B (zh) 作业调度方法、装置及分布式系统
WO2016039963A2 (en) Resource sharing between two resource allocation systems
US20080229319A1 (en) Global Resource Allocation Control
JP2018022345A (ja) 情報処理システム
KR101697647B1 (ko) 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
JP2010044784A (ja) システムにおける要求のスケジューリング
US10459771B2 (en) Lightweight thread synchronization using shared memory state
US20160210171A1 (en) Scheduling in job execution
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
CN111625339A (zh) 集群资源调度方法、装置、介质和计算设备
CN107528871B (zh) 存储系统中的数据分析
JP2013114538A (ja) 情報処理装置、情報処理方法及び制御プログラム
JP2009211604A (ja) 情報処理装置、情報処理方法、プログラム、及び、記憶媒体
KR101332839B1 (ko) 병렬 컴퓨팅 프레임워크 기반 클러스터 시스템의 호스트 노드 및 메모리 관리 방법
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
JP5540799B2 (ja) データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置
WO2022137838A1 (ja) プロセス割当制御装置、プロセス割当制御方法、及び、プロセス割当制御プログラムが格納された記録媒体
US20240231946A9 (en) Process allocation control device, process allocation control method, and recording medium storing process allocation control program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110510