JP2009020692A - タスク管理装置、タスク管理方法及びタスク管理プログラム - Google Patents

タスク管理装置、タスク管理方法及びタスク管理プログラム Download PDF

Info

Publication number
JP2009020692A
JP2009020692A JP2007182574A JP2007182574A JP2009020692A JP 2009020692 A JP2009020692 A JP 2009020692A JP 2007182574 A JP2007182574 A JP 2007182574A JP 2007182574 A JP2007182574 A JP 2007182574A JP 2009020692 A JP2009020692 A JP 2009020692A
Authority
JP
Japan
Prior art keywords
task
group
tasks
assigned
cpu
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
JP2007182574A
Other languages
English (en)
Inventor
Tatsuya Mori
達矢 森
Hidenori Matsuzaki
秀則 松崎
Shigehiro Asano
滋博 浅野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007182574A priority Critical patent/JP2009020692A/ja
Priority to US12/041,325 priority patent/US20090019450A1/en
Publication of JP2009020692A publication Critical patent/JP2009020692A/ja
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】プロセッサにタスクを適切に割り当てることで、プロセッサの処理効率を向上させる。
【解決手段】タスクを実行する複数のCPUと、所定時間以内にCPUに割り当てられる複数のタスクと当該複数タスク毎に割り当てられた時間的局所グループと対応付けて記憶するタスクテーブルと、複数のタスクのいずれか一つのタスクを、複数のCPUのうちいずれか一つに対して割り当てる第1の割当部と、割り当てた後に、タスクが終了したCPUに対して、割り当てたタスクに対応付けられた時間的局所グループと同じ時間的局所グループと対応付けられているタスクを、当該時間的局所グループに対応付けられていない他のタスクより先に割り当てる第2の割当部と、を備える。
【選択図】 図1

Description

この発明は、タスクのスケジューリングを行うタスク管理装置、タスク管理方法及びタスク管理プログラムに関するものである。
従来から、OSのマルチタスク化に伴い、プロセッサに対してタスクを割り当てる様々な手法が提案されている。例えば、Linux(登録商標)など汎用OSでは、実行可能状態にあるタスクに対してその優先度の高いものから順々にプロセッサの使用権限を与えていくスケジューリング方式を採っている。
ところで、プロセッサでタスクを処理する際に、複数のタスクをほぼ同じ時間に実行したい場合が存在する。このような場合に、優先度で割り当てる手法では、タスクが多い場合に管理が難しくなり、スケジューラが遅延する。
そこで、特許文献1に記載されている技術が提案されている。当該特許文献1に記載されている技術では、タスクの実行が開始される前に、プロセッサに対してタスクの割り当て及び実行順序を静的に決定する手法が提案されている。これにより、複数のプロセッサにおいて互いに協働して動作させることを可能としている。
特開2005−18590号公報
しかしながら、特許文献1に記載された技術は、タスクを同じ時間に割り当てることができるがスタティックであり、前もってスケジューリングするためにタスク毎に正確に処理に必要な時間の長さの見積もりが必要という問題がある。
本発明は、上記に鑑みてなされたものであって、プロセッサにタスクを適切に割り当てることで、プロセッサの処理効率を向上させることを可能とするタスク管理装置、タスク管理方法及びタスク管理プログラムを提供する。
上述した課題を解決し、目的を達成するために、本発明にかかるタスク管理装置は、タスクを実行する複数のプロセッサと、所定時間以内に前記プロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けて記憶するタスク記憶部と、複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当部と、前記第1の割当部が割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当部と、を備える。
また、本発明にかかるタスク管理装置は、プロセッサと、所定時間以内に前記プロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けて記憶するタスク記憶部と、複数の前記タスクのいずれか一つのタスクを、前記プロセッサに対して割り当てる第1の割当部と、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に前記プロセッサに割り当てる第2の割当部と、を備えることを特徴とする。
また、本発明にかかるタスク管理方法は、所定時間以内にプロセッサに割り当てられる時間的グループにグループ化された複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けてタスク記憶部に記憶するタスク記憶ステップと、複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当ステップと、前記第1の割当ステップが割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当ステップと、を有することを特徴とする。
また、本発明にかかるタスク管理プログラムは、所定時間以内にプロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けてタスク記憶部に記憶するタスク記憶ステップと、複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当ステップと、前記第1の割当ステップが割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当ステップと、をコンピュータに実行させることを特徴とする。
本発明によれば、タスクを適切にプロセッサに割り当てることで、プロセッサの処理効率を向上させるという効果を奏する。
以下に添付図面を参照して、この発明にかかるタスク管理装置、タスク管理方法及びタスク管理プログラムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態にかかるタスク管理装置100の構成を示すブロック図である。本図に示すように、タスク管理装置100は、ソフトウェア部にアプリケーション150a〜nと、OS101とを備え、ハードウェア部にキャッシュメモリ11と、CPU12と、RAM13とを備える。
CPU12は、タスク管理装置100の動作を制御するメインプロセッサであり、後述するOS101により割り当てられたタスクを実行する。また、CPU12は、割り当てられたタスクを格納するタスクキューを有する。
キャッシュメモリ11は、CPU12に対して設けられた記憶装置であり、CPU12において使用する確率の高いデータを蓄積する。なお、キャッシュメモリ11は、後述するRAM13より高速に読み書きを行うことができる。RAM13は、タスク管理装置100に対して設けられた記憶装置であり、キャッシュメモリ11に格納しきれないデータの退避先などに用いられる。
アプリケーション150a〜nは、タスク管理装置100のOS101上で動作するアプリケーションとする。そして、これらアプリケーション150a〜nが、OS101に対して、処理の実行を依頼する。
OS101は、タスク生成部102と、スケジューリング履歴記憶部103と、タスクテーブル104と、スケジューリング部105と、を備える。
タスク生成部102は、アプリケーション150a〜nからの処理の実行の依頼に応じて、タスクを生成する。そして、タスク生成部102により生成されたタスクは、既にグループ化が行われているものとする。
図2に示した各タスクを結ぶ直線はタスク間の依存関係を示している。この場合、タスクAの後にB及びBが実行され、タスクCの後にD及びDが実行される。このような依存関係が存在している場合に、タスクを処理する時間について特に設定を行わないと、処理に遅延が生じることがある。
処理に遅延が生じる例としては、図3に示すようにタスクAの実行結果がキャッシュメモリ11からRAM13に退避された場合がある。つまり、キャッシュメモリ11にタスクAの実行結果が格納されていれば、CPU12はすぐにタスクAの実行結果を取得して、当該実行結果を用いた次の処理を行うことができる。しかしながら、タスクAを実行した後、タスクAと関係のないタスクが実行された場合、タスクAの実行結果が、RAM13に退避される。この場合、CPU12はタスクAの実行結果を取得して、当該実行結果を用いた次の処理を行う際に、遅延が生じることになる。
なお、上述した例はタスクの実行で遅延等が生じる一例を示したものであり、他にもさまざまな要因で遅延等が生じることになる。
そこで、本実施の形態では、図4に示すように、近しい時間で実行すべき複数のタスクをグループ化することとした。つまり、図5に示すように、処理待ちのタスク群において、複数のグループに分けられたタスクが存在することになる。
そして、同一の処理結果を用いるタスクのグループ化や、優先的に実行すべきタスクのグループ化を行うことで、上述した問題点を解消することが可能となる。以下、複数のタスクが近い時間にCPUに割り当てられることを示す概念を時間的局所性とする。そして当該概念に基づいてタスクを分けたグループを、時間的局所グループとする。
そして、この時間的局所グループに属する一つのタスクがCPUに割り当てられた場合、所定時間以内に他のタスクについてもCPUに割り当てられるように制御される。これにより当該時間的グループに属しているタスク群が近い時間で実行されることになる。なお、この所定時間は任意の時間で良く、当該グループに属するタスクの数やCPUの数等に応じて変更されてもよい。
なお、タスクをグループ化する手法は、どのような手法を用いて良い。例えばアプリケーション150a〜nを設計する開発者が、当該アプリケーション150a〜nのプリグラムソース上で、タスクグループを明示的に記載する手法や、これらアプリケーション150a〜nをコンパイラが最適化を行う際に各アプリケーションが行う処理に対してグループ化する手法などが考えられる。
図1に戻り、タスクテーブル104は、タスク生成部102により生成されたタスクであって、CPU12による処理待ちのタスクを管理する。図6に示すように、タスクテーブル104は、タスクIDと、時間的局所グループIDとを対応付けて記憶する。また、タスクIDは、タスクを識別するIDを示し、時間的局所グループIDは、時間的局所グループを識別するIDとする。当該タスクテーブル104により、処理待ちのタスクの時間的局所グループを特定することができる。
スケジューリング履歴記憶部103は、アクティブグループ管理テーブルを保持する。図7に示すように、アクティブグループ管理テーブルは、CPU12が既に処理を行った又は現在処理を行っているタスクの属する時間的局所グループを識別するIDを保持している。以下、CPU12が既に処理を行った又は現在処理を行っているタスクが属する時間的局所グループを、アクティブな時間的局所グループと表現する。
図1に戻り、スケジューリング部105は、第1割当部111と、第2割当部112と、グループ判断部113と、アクティブ設定部114と、を備え、タスクテーブル104で管理しているタスクをCPU12に対して割り当てる処理を行う。
また、スケジューリング部105は、第1割当部111又は第2割当部112でCPU12に対して割り当てられたタスクを、システムバスを経由して、CPU12に対して出力する。
本実施の形態にかかるスケジューリング部105におけるスケジューリングとは“CPU12へ割り当てるタスクを決定”することである。なお、第2の実施形態以降においては、複数のCPUのうち、任意のCPUに対して割り当てるタスクを決定することとする。
グループ判断部113は、アクティブな時間的局所グループが存在するか否か判断する。
第1割当部111は、アクティブな時間的局所グループが存在しない場合に、CPU12に対して、タスクテーブル104で管理しているタスクの割当を行う。
第2割当部112は、アクティブな時間的局所グループが存在している場合に、当該時間的局所グループに属している他のタスクを、当該時間的局所グループに属していないタスクより先に、CPU12に対して割当を行う。つまり、CPU12に割り当てられたタスクが属する時間的局所グループと同じ時間的局所グループに属する他のタスクを、当該時間的局所グループに属していないタスクより先に割り当てることになる。なお、タスクが時間的局所グループに属しているか否かは、タスクテーブル104が保持する対応関係より把握できる。
アクティブ設定部114は、第1割当部111がCPU12に対して割り当てたタスクが属している時間的局所グループをアクティブなタスクグループとして設定する。
次に、タスク管理装置100のタスクの生成からCPU12に対してタスクを割り当てるまでの処理手順について、図8を用いて説明する。
まず、タスク生成部102は、アプリケーション150a〜nからの依頼に従って、タスクを生成する(ステップS801)。
次に、タスク生成部102は、生成したタスクを、タスクテーブル104に格納する(ステップS802)。
そして、スケジューリング部105は、CPU12に対して、タスクテーブル104に格納されたタスクを割り当てる(ステップS803)。なお、割り当て手順の詳細については後述する。
次に、タスク管理装置100におけるCPU12に対するタスクの割り当て手順について、図9を用いて説明する。
まず、グループ判断部113は、アクティブグループ管理テーブルを参照して、アクティブな時間的局所タスクグループは存在するか否か判断する(ステップS901)。
そして、グループ判断部113は、アクティブな時間的局所グループが存在すると判断した場合(ステップS901:Yes)、第2割当部112が、タスクテーブル104から当該時間的局所グループに含まれるタスクを処理対象として選択する(ステップS902)。
次に、第2割当部112は、選択されたタスクを、CPU12に対して割り当てる(ステップS903)。
また、グループ判断部113がアクティブな時間的局所グループが存在しないと判断した場合(ステップS901:No)、タスクテーブル104を参照して、処理待ちのタスクが存在するか否か判断する(ステップS904)。そして、グループ判断部113が処理待ちのタスクが存在しないと判断した場合(ステップS904:No)、処理を終了する。
また、グループ判断部113が処理待ちのタスクが存在すると判断した場合(ステップS904:Yes)、第1割当部111がタスクテーブル104に格納されている処理待ちのタスクから、処理対象となるタスクを選択する(ステップS905)。
そして、第1割当部111は、選択したタスクをCPU12に対して割り当てる(ステップS906)。
次に、アクティブ設定部114が、第1割当部111で選択されたタスクが、時間的局所グループに属しているか否か判断する(ステップS907)。そして、アクティブ設定部114が選択したタスクが時間的局所グループに属していないと判断した場合(ステップS907:No)、処理を終了する。
そして、アクティブ設定部114が選択したタスクが時間的局所グループに属していると判断した場合(ステップS907:Yes)、選択されたタスクが属している時間的局所グループを、アクティブに設定する(ステップS908)。本実施の形態では、アクティブ設定部114が、当該時間的局所グループを識別するIDをアクティブグループ管理テーブルに登録する。
上述した処理手順により、時間的局所グループに属しているタスクを近しい時間で処理することが可能となる。
図10に示すように、本実施の形態のタスク管理装置100は、CPU12と、キャッシュメモリ11と、ROM14と、RAM13と、通信I/F15とこれらを接続するバス16とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
なお、本実施形態のタスク管理装置100で実行されるタスク管理プログラムは、ROM14等に予め組み込まれて提供される。
上述した実施の形態にかかるタスクテーブル104で、タスクIDと時間的局所グループIDとを対応付けて記憶している。つまり、タスク管理装置100では、タスクテーブル104が管理している情報を用いて、スケジューリング部105が上述した処理を行うことで、時間的局所グループに属するタスク群を近しい時間に行うことを可能としている。これにより、タスク管理装置100では、CPU12に対してタスクを効率的に割り当てることを可能としている。そして、タスク管理装置100ではCPUの処理効率を向上させることが可能となる。
また、本実施の形態にかかるタスク管理装置100では、同一の時間的局所グループに属しているタスクを連続して実行されることで、他のタスクが共有キャッシュを使用することを抑止できる。これにより、タスク間で共有キャッシュ経由でデータの受け渡しが可能となり、迅速な処理を可能としている。
(第2の実施の形態)
第1の実施の形態では、タスク管理装置100が1個のCPUのみ備えている場合について説明した。次に第2の実施の形態ではタスク管理装置が複数のCPUを備えている場合について説明する。
図11に示すように、第2の実施の形態に係るタスク管理装置1100は、上述した第1の実施の形態に係るタスク管理装置100とは、OS101と処理が異なるOS1101に変更され、CPU及びキャッシュメモリが3個に変更された点が異なる。また、当該個数が変更されたCPU及びキャッシュメモリは、第1CPU22、第2CPU24、第3CPU26、第1キャッシュメモリ21、第2キャッシュメモリ23、第3キャッシュメモリ25とする。また、OS1101は、第1の実施の形態にかかるOS101とは、スケジューリング部105がスケジューリング部1102に変更されている点とする。なお、本実施の形態のタスク管理装置1100の構成で、第1の実施の形態のタスク管理装置100と共通な構成については説明を省略する。
本実施の形態にかかるタスク管理装置1100では、マルチコアプロセッサシステムを採用し、3つのプロセッサ(第1CPU22、第2CPU24、第3CPU26)がシステムバスを介してOS1101と相互接続している。
第1CPU22、第2CPU24、第3CPU26は、第1の実施の形態にかかるCPU12と同様の構成のため説明を省略する。また、第1キャッシュメモリ21、第2キャッシュメモリ23、第3キャッシュメモリ25も第1の実施の形態にかかるキャッシュメモリ11と同様の構成のため説明を省略する。
スケジューリング部1102は、グループ判断部113と、第1割当部1111と、第2割当部1112と、アクティブ設定部114とを備えている。
第1割当部1111は、アクティブな時間的局所グループが存在しない場合に、第1CPU22、第2CPU24、又は第3CPU26のいずれか一つに対して、タスクテーブル104で管理しているタスクのうちいずれか一つのタスクを割り当てる。
第2割当部1112は、アクティブな時間的局所グループが存在している場合に、第1CPU22、第2CPU24、又は第3CPU26に対して、第1の割当部1111が割り当てたタスクの属する時間的局所グループと同じ時間的局所グループに属している他のタスクを、当該時間的局所グループに属していないタスクより先に割り当てる。
まずは、従来のタスクの割り当て手法について説明する。図12に示すように、従来通りのタスクのスケジューリングでは、タスク毎に優先度が割り当てられているものとする。例えば、タスクB、Bに対して優先度1が割り当てられ、タスクC、Cに対して優先度2が割り当てられているものとする。
これにより、図13に示すように、第1CPU22のタスクAが第2CPU24のタスクAより先に終了した場合に、優先度に基づいてタスクB及びBを近しい時間に実行することができる。
しかしながら、第2CPU24のタスクAが第1CPU22のタスクAより先に終了した場合に、図14の符号1401に示されるように、第1CPU22のタスクAが終了するまで、第2のCPU24が処理を行わないことになり、処理効率が悪化する。
また、符号1402に示されるように、優先度を無視して各CPUに対してタスクを割り当てれば処理効率は悪化しないが、近しい時間に複数のタスク(例えばタスクB及びB)を行うという目的を達成することが困難になる。
つまり、従来技術ではCPUのタスクの終了順序によっては、後続のタスクが待たされてしまい性能が低下していた。また、この性能低下を避けるために優先度を無視してスケジューリングすると、タスクを行う際の時間的局所性が損なわれていた。
これに対して、本実施の形態にかかるタスク管理装置1100では、タスクに対して優先度を設定するのではなく、近しい時間に処理すべきタスクをグループ化することとした。このグループは、第1実施の形態と同様に、時間的局所グループとする。そして、図15に示すように、タスクB及びBを同じタスクグループに設定し、タスクC及びCを同じタスクグループに設定した。なお、グループ化する際の処理は、第1実施の形態と同様とする。
これにより、図16に示すように、第1CPU22のタスクAの処理が終了した場合にタスクBが割り当てられ、その後、第2CPU24のタスクAの処理が終了した場合に、タスクBと同一の時間的局所グループであるタスクBが割り当てられることになる。これにより、タスクB及びBを近しい時間に実行することができる。
逆に、図17に示すように、第2CPU24のタスクAの処理が終了した場合にタスクCが割り当てられ、その後、第1CPU22のタスクAの処理が終了した場合に、タスクCと同一の時間的局所グループであるタスクCが割り当てられることになる。これにより、タスクC及びCを近しい時間に実行することができる。これにより、本実施の形態にかかるタスク管理装置1100では、各CPUにおけるタスクの終了順序に依存せずに、性能確保と時間的局所性の両立が達成することができる。
本実施の形態にかかるタスク管理装置1100では、時間的局所グループに含まれているタスクであれば、マルチコアプロセッサシステムの各CPUの処理の終了時間と関係なく、近しい時間に実行することができる。また、その際に、タスク管理装置1100では、各CPUでタスクが割り当てられるために待機時間が発生することもない。これにより、タスク管理装置1100では、各CPU(第1CPU22、第2CPU24、第3CPU26)に対してタスクを効率的に割り当てることを可能としている。これにより、本実施の形態にかかるタスク管理装置1100は、第1の実施の形態にかかるタスク管理装置100と同様の効果を得ることができる。
また、図18に示すように、本実施の形態のタスク管理装置1100は、第1キャッシュメモリ21と、第1CPU22と、第2キャッシュメモリ23と、第2CPU24と、第3キャッシュメモリ25と、第3CPU26と、ROM14と、RAM13と、通信I/F15とこれらを接続するバス16とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
なお、本実施形態のタスク管理装置1100で実行されるタスク管理プログラムは、ROM14等に予め組み込まれて提供される。なお、後述する実施の形態についても同様のハードウェア構成を備えているものとして説明を省略する。
(第3の実施の形態)
上述した第1及び第2の実施形態では、タスクを時間的局所グループでグループ化した。しかしながら、グループ化は時間的局所性の概念に制限するものではない。そこで、第3の実施の形態では、時間的局所性以外の概念を用いてグループ化した例について説明する。
図19に示すように、第3の実施の形態に係るタスク管理装置1900は、上述した第2の実施の形態に係るタスク管理装置1100とは、OS1101と処理が異なるOS1901に変更された点のみ異なる。また、OS1901は、第2の実施の形態にかかるOS1101とは、タスク生成部102がタスク生成部1905に変更され、タスクテーブル104がタスクテーブル1902に変更され、スケジューリング部1102がスケジューリング部1903に変更され、スケジューリング履歴記憶部103がスケジューリング履歴記憶部1904に変更されている点とする。なお、本実施の形態のタスク管理装置1900の構成で、第2の実施の形態のタスク管理装置1100と共通な構成については説明を省略する。
タスク生成部1905は、アプリケーション150a〜nからの処理の実行の依頼に応じて、時間的局所性及び空間的局所性に基づいてグループ化されたタスクを生成する。空間的局所性とは、複数のタスクが同一のCPUに割り当てられることを示す概念とする。つまり、タスク生成部1905で生成されたタスクのうち、同一グループの属する複数のタスクは、同一CPUで近しい時間で処理が行われることになる。
次に、空間的局所性でグループ化した場合の利点について一例を挙げて説明する。図20に示すように、タスクAの処理が第1CPU22で実行され、タスクAの処理結果が第1キャッシュメモリ21に格納された場合、タスクAの処理結果を利用するタスクは、第1CPU22で実行された場合にすぐ結果を取得することができる。これに対して、第2CPU24でタスクAの処理結果を利用するタスクが実行された場合、RAM13やシステムバスを介して処理結果を取得する必要があるため、遅延が生じることになる。そこで、本実施の形態にかかるタスク管理装置1900では、時間的局所性のみならず、空間的局所性でグループ化してタスクを実行することとした。
なお、従来の技術では、タスクを連続的に同一CPUで処理したい場合には、図21に示すようにタスク毎に処理を行うCPUを指定することができた。この場合、図22に示すように、第1CPU22でタスクAが実行され、第2CPU24でタスクAが実行された場合には、効率よく処理を行うことが可能であった。
しかしながら、図23の符号2301に示すように、第1CPU22でタスクAが実行され、第2CPU24でタスクAが実行された場合には、第2CPU24でタスクAが終了した後であっても、第1CPU22のタスクAが終了するまで、タスクB及びBをCPUに割り当てることができない。つまり、第2CPU24では、第1CPU22のタスクAの処理が終了するまで、処理が行われないことになる。
さらに、符号2302が示すように、リバランスによりタスクBを第2CPU24に割り当てた場合、第2CPU24の処理待ちを抑止することができるが、空間的局所性を保つことができなくなる。
つまり、従来の技術では、各CPUにおけるタスクの終了に応じて、後続のタスクが待たされてしまい、性能が低下していた。また、この性能低下を避けるために待ちが発生した時点で動的に再スケジューリング(リバランス)すると、タスク間の空間的局所性が損なわれていた。
そこで、本実施の形態にかかるタスク管理装置1900では、空間的局所性に基づいてグループ化されたタスクを、各CPUに割り当てることとした。図24に示すように、本実施の形態にかかるタスク管理装置1900では、同一のCPUで処理すべきタスクを予めグループ化しておく。なお、グループ化する手法については上述した実施の形態と同様とする。
本実施の形態にかかるタスク管理装置1900では、このようにグループ化をされているので、図25に示すように、第1CPU22でタスクAの処理が終了した後に、空間的局所性でグループ化されているタスクB及びタスクBが割り当てられ、第2CPU24でタスクAの処理が終了した後に、空間的局所性でグループ化されているタスクC及びCが割り当てられる。
さらに、図26に示すように、第1CPU22でタスクAの処理が行われ、第2CPU24にタスクAの処理が行われた場合には、第2CPU24でタスクAの処理の終了後にタスクB及びタスクBが割り当てられ、第1CPU22でタスクAの処理が終了した後に、タスクC及びCが割り当てられる。
このように空間的局所グループでグループ化することで、効率的に処理を行うことができる。つまり、本実施の形態にかかるタスク管理装置1900では、タスクがどのCPUで処理されるかに依存することなく、性能確保と空間的局所性の両立が達成されている。
また、本実施の形態にかかるタスク管理装置1900では、図27に示すように、各タスクは、複数のタスクグループに属することはなく、一つのタスクグループ(空間的局所性及び時間的局所性のタスクグループ)に属する又はタスクグループに属さないこととする。
図19に戻り、タスクテーブル1902は、タスク生成部1905により生成されたタスクであって、複数のCPUによる処理待ちのタスクを管理する。図28に示すように、タスクテーブル1902は、タスクIDと、タスクグループIDとを対応付けて記憶する。
図19に戻り、スケジューリング履歴記憶部1904は、アクティブグループ対応管理テーブルを保持する。図29に示すように、アクティブグループ対応管理テーブルは、タスクグループIDとCPU_IDとを対応付けて保持している。つまり、アクティブグループ対応管理テーブルでは、当該タスクグループIDで識別されるタスクグループが、CPU_IDで識別されるCPUに対して割り当てられていることを意味する。
図19に戻り、スケジューリング部1903は、グループ判断部1913と、第1割当部1911と、第2割当部1912と、アクティブ設定部1914とを備えている。
グループ判断部1913は、任意のCPUに対してタスクを割り当てる際、当該CPUに割り当てられたタスクグループは存在するか否か判断する。
第1割当部1911は、CPU(第1CPU22、第2CPU24又は第3CPU26)に割り当てられたタスクグループが存在しない場合に、タスクテーブル1902で管理しているタスクのうち、他のCPUに割り当てられたタスクグループに含まれていない処理待ちのタスクを当該CPUに対して割り当てる。
第2割当部1912は、割り当てられたタスクグループが存在する場合に、第1割当部1911が割り当てたタスクが終了したCPU(第1CPU22、第2CPU24又は第3CPU26)に対して、当該CPUに割り当てられたタスクの属するタスクグループと同じタスクグループに属する他のタスクを、当該タスクグループに属していないタスクより先に割り当てる。
アクティブ設定部1914は、第1割当部1911がCPU(第1CPU22、第2CPU24又は第3CPU26)に対して割り当てたタスクグループを、当該CPUでアクティブなタスクグループとして設定する。
本実施の形態にかかるタスク管理装置1900は、タスク管理装置100の処理とは、CPUに対するタスクの割り当て手順のみ異なる。そこで、タスク管理装置1900におけるCPUに対するタスクの割り当て手順について、図30を用いて説明する。なお、以下の処理では、当該割当先のCPUを割当先CPUという。
まず、グループ判断部1913は、割当先CPUに割り当てられたタスクグループが存在するか否か判断する(ステップS3001)。なお、割り当てられたタスクグループが存在するか否かは、図29に示したアクティブグループ対応管理テーブルを参照することで、確認できる。
そして、グループ判断部1913は、割り当てられたタスクグループが存在すると判断した場合(ステップS3001:Yes)、第2割当部1912が、タスクテーブル1902から当該タスクグループに含まれるタスクを処理対象として選択する(ステップS3002)。
次に、第2割当部1912は、選択されたタスクを、割当先CPUに対して割り当てる(ステップS3003)。
また、グループ判断部1913がアクティブな時間的局所グループが存在しないと判断した場合(ステップS3001:No)、タスクテーブル1902を参照して、処理待ちのタスクが存在するか否か判断する(ステップS3004)。そして、グループ判断部1913が処理待ちのタスクが存在しないと判断した場合(ステップS3004:No)、処理を終了する。
また、グループ判断部1913が処理待ちのタスクが存在すると判断した場合(ステップS3004:Yes)、第1割当部1911がタスクテーブル1902に格納されている処理待ちのタスクから、処理対象となるタスクを選択する(ステップS3005)。
そして、第1割当部1911は、選択したタスクを割当先CPUに対して割り当てる(ステップS3006)。
次に、アクティブ設定部1914が、第1割当部1911で選択されたタスクが、タスクグループに属しているか否か判断する(ステップS3007)。そして、アクティブ設定部1914が選択したタスクがタスクグループに属していないと判断した場合(ステップS3007:No)、処理を終了する。
そして、アクティブ設定部1914が選択したタスクがタスクグループに属していると判断した場合(ステップS3007:Yes)、選択されたタスクが属しているタスクグループを、割当先CPUの処理対象として設定する(ステップS3008)。本実施の形態では、アクティブ設定部1914が、タスクグループを識別するIDをアクティブグループ対応管理テーブルに登録する。
これにより、本実施の形態にかかるタスク管理装置1900は、第2の実施の形態にかかるタスク管理装置1100と同様の効果を得ることができるほか、同一のタスクグループに属しているタスクが同一のCPUで連続して実行されるので、タスク間でCPUが備えるキャッシュメモリ経由でデータの受け渡しを行うことができるので、処理効率が向上する。
(第4の実施の形態)
第4の実施の形態では、時間的局所性及び空間的局所性のそれぞれについてグループ化した場合について説明する。
図31に示すように、第4の実施の形態に係るタスク管理装置3100は、上述した第3の実施の形態に係るタスク管理装置1900とは、OS1901と処理が異なるOS3101に変更された点のみ異なる。
また、OS3101では、第3の実施の形態にかかるOS1901とは、タスク生成部1905がタスク生成部3105に変更され、タスクテーブル1902がタスクテーブル3102に変更され、スケジューリング部1903がスケジューリング部3104に変更され、スケジューリング履歴記憶部1904がスケジューリング履歴記憶部3103に変更されている点とする。なお、本実施の形態のタスク管理装置3100の構成で、第3の実施の形態のタスク管理装置1900と共通な構成については説明を省略する。
タスク生成部3105は、アプリケーション150a〜nからの処理の実行の依頼に応じて、時間的局所グループ及び/又は空間的局所グループに属するタスクを生成する。つまり、時間的局所グループに属するタスクは、近しい時間に処理が行われるタスクとなる。そして、空間的局所グループに属するタスクは、同一のCPUで処理が行われるタスクとなる。
また、従来の技術では、複数のタスクを同一のCPUで近い時間に処理したい場合、図32に示すように、処理を行うCPUの指定及び優先度を設定することで対応することができた。この場合、図33に示すように、第1CPU22でタスクAが実行され、第2CPU24でタスクAが実行された場合には、効率よく処理を行うことが可能であった。
しかしながら、図34の符号3401に示すように、第2CPU24でタスクAが、第1CPU22のタスクAより先に処理が終了した場合、第1CPU22でタスクA1の処理が終了するまで、第2CPU24はタスクBの処理を行うことができない。
さらに、符号3402が示すように、優先度を無視した場合、第2CPU24においてすぐに処理を行うことが可能となるが、タスクB及びタスクBを近しい時間に処理を行うことができなくなる。
さらに、符号3403が示すように、リバランスを行った場合、第2CPU24においてすぐに処理を行うことが可能となるが、空間的局所性を保つことができなくなる。
つまり、従来の技術ではタスクの終了順序、若しくはタスクがどのCPUで処理されるかに依存して後続のタスクが待たされてしまい性能が低下していた。さらに、この性能低下を避けるために優先度を無視してスケジューリングすると、タスクを実行する際の時間的局所性が損なわれていた。また、タスクの処理待ちが発生した時点で動的に再スケジューリング(リバランス)すると、タスクの実行について空間的局所性が損なわれていた。
そこで、本実施の形態にかかるタスク管理装置3100では、空間的局所グループ及び時間的局所グループでグループ化したタスクを、各CPUに割り当てることとした。図35に示すように、本実施の形態にかかるタスク管理装置3100では、時間的局所グループと空間的局所グループとは別のグループとする。
そこで、本実施の形態にかかるタスク管理装置3100では、時間的局所グループと空間的局所グループとによりグループ化しているので、図36に示すように、第1CPU22のタスクA1の処理が終了した後に第2CPU24のタスクA2の処理が終了した場合に、要求通りに時間的局所性及び空間的局所性を保つことができる。
また、タスク管理装置3100では、図37に示すように、第2CPU24のタスクA2の処理が終了した後に第1CPU22のタスクA1の処理が終了した場合であっても、CPUの性能確保、時間的局所性及び空間的局所性を達成することができる。
また、本実施の形態にかかるタスク管理装置3100では、図38に示すように、各タスクは、空間的局所グループ及び/又は時間的局所グループに属している。なお、図示していないが、タスクは、空間的局所グループ及び時間的局所グループのいずれにも属していなくてもよい。
図31に戻り、タスクテーブル3102は、タスク生成部3105により生成されたタスクであって、複数のCPUによる処理待ちのタスクを管理する。図39に示すように、タスクテーブル3102は、タスクIDと、時間的局所グループIDと、空間的局所グループIDとを対応付けて記憶する。
図31に戻り、スケジューリング履歴記憶部3103は、アクティブグループ対応管理テーブルとアクティブグループ管理テーブルとを保持する。図40に示すように、アクティブグループ対応管理テーブルは、空間的局所グループIDとCPU_IDとを対応付けて保持している。つまり、アクティブグループ対応管理テーブルでは、空間的局所グループIDで識別される空間的局所グループが、CPU_IDで識別されるCPUに対して割り当てられていることを意味する。
アクティブグループ管理テーブルは、第1の実施の形態にかかる図7に示したので説明を省略する。
図31に戻り、スケジューリング部3104は、グループ判断部3113と、第1割当部3111と、第2割当部3112と、アクティブ設定部3114とを備えている。
グループ判断部3113は、任意のCPUに対してタスクを割り当てる際、他のCPUに割り当てられた空間的局所グループを除き、アクティブな時間的局所グループが存在するか否か判断する。
第1割当部3111は、グループ判断部3113にアクティブな時間的局所グループが存在しないと判断された場合に、タスクテーブル3102で管理しているタスクのうち、他のCPUに割り当てられたタスクグループに含まれていない処理待ちのタスクを当該CPUに対して割り当てる。
第2割当部3112は、グループ判断部3113がアクティブな時間的局所グループが存在すると判断された場合に、当該任意のCPU(第1CPU22、第2CPU24又は第3CPU26)に対して、アクティブな時間的局所グループに属するタスクを割り当てる。つまり、CPUに割り当てられたタスクが属する時間的局所グループと同じ時間的局所グループに属する他のタスクを、当該時間的局所グループに属していないタスクより先に割り当てることになる。
アクティブ設定部3114は、第1割当部3111がCPU(第1CPU22、第2CPU24又は第3CPU26)に対して割り当てたタスクの属するタスクグループに対して設定を行う。なお、設定の詳細については後述する。
このように、本実施の形態にかかるタスク管理装置3100では、時間的局所性及び空間的局所性に基づいて、適切にタスクを各CPUに割り当てることができる。
本実施の形態にかかるタスク管理装置3100は、タスク管理装置100の処理とは、CPUに対するタスクの割り当て手順のみ異なる。そこで、タスク管理装置3100におけるCPUに対するタスクの割り当て手順について、図41を用いて説明する。なお、以下の処理では、当該割当先のCPUを割当先CPUという。
まず、グループ判断部3113は、他のCPU(割当先CPU以外)に割り当てられた空間的局所グループを除き、アクティブな時間的局所グループが存在するか否か判断する(ステップS4101)。なお、他のCPUに割り当てられたタスクグループは、図40に示したアクティブグループ対応管理テーブルを参照することで、確認できる。
そして、グループ判断部3113は、アクティブな時間的局所グループが存在すると判断した場合(ステップS4101:Yes)、第2割当部3112が、タスクテーブル3102から当該時間的局所グループに含まれるタスクを処理対象として選択する(ステップS4102)。
次に、第2割当部3112は、選択されたタスクを、割当先CPUに対して割り当てる(ステップS4103)。
また、グループ判断部3113がアクティブな時間的局所グループが存在しないと判断した場合(ステップS4101:No)、他のCPUに割り当てられた空間的局所グループに属していない処理待ちのタスクは存在するか否か判断する(ステップS4104)。そして、グループ判断部3113が処理待ちのタスクが存在しないと判断した場合(ステップS4104:No)、処理を終了する。
また、グループ判断部3113が処理待ちのタスクが存在すると判断した場合(ステップS4104:Yes)、第1割当部3111がタスクテーブル3102に格納されている処理待ちのタスクから、処理対象となるタスクを選択する(ステップS4105)。
そして、第1割当部3111は、選択したタスクを割当先CPUに対して割り当てる(ステップS4106)。
次に、アクティブ設定部3114が、第1割当部3111で選択されたタスクが、空間的局所グループに属しているか否か判断する(ステップS4107)。そして、アクティブ設定部3114が選択したタスクが空間的局所グループに属していないと判断した場合(ステップS4107:No)、特に処理を行わない。
そして、アクティブ設定部3114が選択したタスクが空間的局所グループに属していると判断した場合(ステップS4107:Yes)、選択されたタスクが属している空間的局所グループを、割当先CPUの処理対象として設定する(ステップS4108)。本実施の形態では、アクティブ設定部3114が、タスクグループを識別するIDをアクティブグループ対応管理テーブルに登録する。
次に、アクティブ設定部3114が、第1割当部3111で選択されたタスクが、時間的局所グループに属しているか否か判断する(ステップS4109)。そして、アクティブ設定部3114が選択したタスクが時間的局所グループに属していないと判断した場合(ステップS4109:No)、特に処理を行わない。
そして、アクティブ設定部3114が選択したタスクが時間的局所グループに属していると判断した場合(ステップS4109:Yes)、選択されたタスクが属している時間的局所グループを、アクティブに設定する(ステップS4110)。本実施の形態では、アクティブ設定部3114が、時間的局所グループを識別するIDを、図7に示すアクティブグループ管理テーブルに登録する。
本実施の形態にかかるタスク管理装置3100では、時間的局所性及び空間的局所性を考慮することで、効率的にタスクをCPUに割り当てることができる。また、時間的局所性と空間的局所性とを別グループでグルーピングを行うことで、より複雑なスケジューリングを可能としている。さらに、グループ化の手続が容易であるため、グループ分けを行う主体(例えば開発者など)から直感的に理解することが可能となる。
(第5の実施の形態)
次に、グループ化されたタスクをCPUに割り当てた後、割り当てたタスクを別のCPUに再割り当てを行う場合について説明する。
図42に示すように、第5の実施の形態に係るタスク管理装置4200は、上述した第4の実施の形態に係るタスク管理装置3100とは、OS3101と処理が異なるOS4201に変更された点のみ異なる。
また、OS4201では、第5の実施の形態にかかるOS3101とは、スケジューリング部3104がスケジューリング部4202に変更されている点とする。なお、本実施の形態のタスク管理装置4200の構成で、第4の実施の形態のタスク管理装置3100と共通な構成については説明を省略する。
スケジューリング部4202は、グループ判断部3113と、第1割当部3111と、第2割当部3112と、再割当部4211と、アクティブ設定部4212とを備えている。
再割当部4211は、各CPUに割り当てられた空間的局所グループを、他のタスクグループに再割当(リバランス)を行う。具体的には、再割当部4211は、任意のCPUが他のCPUより割り当てられたタスクの数が多い場合に、当該任意のCPUに対して割り当てられているタスクと同じ空間的局所性グループに属している他のタスクを、他のCPUに対して割り当てる。なお、詳細な処理手順については後述する。
アクティブ設定部4212は、アクティブ設定部3114と同様の機能を備えているほかに、再割当部4211が行った再割当に従って、時間的局所グループの再設定を行う。具体的には、アクティブ設定部4212は、アクティブグループ対応管理テーブルの更新を行う。
図43に示すように、各タスクがグループ化された場合について説明する。この場合、タスクB、B及びBが同じ空間的局所グループに属している。また、タスクC、C及びCも同様に同じ空間的局所グループに属している。なお、各タスクを結ぶ直線はタスク間の依存関係を示している。つまり、依存関係が生じているタスクB、B及びBと、タスクC、C及びCとをそれぞれ同一プロセッサで処理したいとする。
この場合、図44に示すようにタスクの処理順序によっては、タスクB、B及びBの空間的局所グループ、及びタスクC、C及びCの空間的局所グループが同じCPU(例えば第1CPU22)に割り当てられることも考えられる。
そこで本実施の形態にかかるタスク管理装置4200では、図45に示すような再割当(リバランス)を行うこととした。つまり、タスク管理装置4200では、一つのCPUに対して処理対象とされたタスクが片寄ることを抑止して、性能が低下することを抑止することができる。
この場合、第1CPU22が使用する第1キャッシュメモリ21と、第2CPU24が使用する第2キャッシュメモリ23との間でデータの送受信が発生するが、第2CPU24が有効に利用され、結果として処理効率が向上する。
次に、タスク管理装置4200におけるCPUに対するタスクの割り当て手順について、図46を用いて説明する。なお、以下の処理では、当該割当先のCPUを割当先CPUという。
まず、グループ判断部3113は、図41のステップS4101及びステップS4104の処理手順で、割当先CPUにおいて、処理対象となる時間的局所グループ又は処理待ちのタスクの存在を確認する(ステップS4601)。
次に、再割当部4211が、割当先CPUに割り当てられた時間的局所グループ又は処理待ちのタスクが存在するか否か判断する(ステップS4602)。
そして、再割当部4211が存在すると判断した場合(ステップS4602:Yes)、図41のステップS4102、S4103、S4105〜S4110の処理手順で、処理対象となるタスクの選択(ステップS4603)、及びアクティブとなるタスクグループの設定(アクティブグループ)の処理を行う(ステップS4604)。
また、再割当部4211が割当先CPUに割り当てられた時間的局所グループ又は処理待ちのタスクが存在しないと判断した場合(ステップS4602:No)、他のCPUに割り当てられた空間的局所グループが存在するか否か判断する(ステップS4605)。再割当部4211は存在しないと判断した場合(ステップS4605:No)、処理を終了する。
また、再割当部4211が、他のCPUに割り当てられた空間的局所グループが存在すると判断した場合(ステップS4605:Yes)、他のCPUに割り当てられた空間的局所グループのタスクを処理対象として選択する(ステップS4606)。
そして、再割当部4211は、選択したタスクを割当先CPUに割り当てる(ステップS4607)。
次に、アクティブ設定部4212が、再割当部4211が再割当を行ったタスクが属している空間的局所グループを割当先CPUの処理対象として設定すると共に、他のCPUから処理対象の解除を行う(ステップS4608)。
本実施の形態にかかるタスク管理装置4200では、処理すべきタスクが一つのCPUに片寄りが生じた際に、空間的局所グループの動的な再スケジューリングを行うことで負荷バランスを調整する。つまり、再スケジュールを行うことで通信ペナルティーが発生するが、空間的局所グループを同一のプロセッサに割り当てることで後続の通信ペナルティーを抑えることができる。
(第6の実施の形態)
次に、空間的局所グループ及び時間的局所グループが存在する場合にさらに詳細に割り当てる条件を定めた例について説明する。
図47に示すように、第6の実施の形態に係るタスク管理装置4700は、上述した第4の実施の形態に係るタスク管理装置3100とは、OS3101と処理が異なるOS4701に変更された点のみ異なる。
また、OS4701では、第4の実施の形態にかかるOS3101とは、スケジューリング部3104がスケジューリング部4702に変更されている点とする。なお、本実施の形態のタスク管理装置4700の構成で、第4の実施の形態のタスク管理装置3100と共通な構成については説明を省略する。
スケジューリング部4702は、グループ判断部4713と、第1割当部4711と、第2割当部4712と、アクティブ設定部3114とを備えている。
グループ判断部4713は、任意のCPUに対してタスクを割り当てる際、空間的局所性及び時間的局所性に基づいて、処理対象となるタスクグループを判断する。なお、詳細な処理手順については後述する。
第1割当部4711、及び第2割当部4712は、グループ判断部3113により処理対象として判断されたタスクグループに属しているタスクをCPUに対して割り当てる。
本実施の形態にかかる第2割当部4712は、時間的局所グループに属しているタスクが、空間的局所グループに属している場合、当該タスクを、空間的局所グループに属していないタスクより先にCPUに割り当てる。なお、詳細な処理手順については後述する。
次に、時間的局所グループ及び空間的局所グループに属するタスクの割当について説明する。図48のタスク管理装置4700のタスクの管理概念に示されるように、任意のCPUに割り当てられた空間的局所グループのタスクは、他のCPUから参照することができない。また、図48に示すように、アクティブな時間的局所グループは、空間的局所性によりそれぞれのCPUに限り実行可能なものと、全てのCPUで実行可能なものとがある。
また、図中の「(数字)」は、第2CPU24に割り当てられるタスクグループの優先順位を示したものとする。また、図中の「[数字]」は、第3CPU26に割り当てられるタスクグループの優先順位を示したものとする。なお、後述する説明では、Sp2を第2CPU24に割り当てられた空間的局所グループを示し、S―p2を第2CPU24以外のCPUに割り当てられた空間的局所グループを示す。
そして、図49に示すように、タスク管理装置4700は、時間的局所グループS及び空間的局所グループSと、時間的局所グループTとが、CPUに未割当の処理待ちのタスクグループとして受け取った場合について説明する。なお、重なっている領域は、複数のタスクグループに属しているタスクが存在していることを示している。
その後、図50に示すように、第1割当部4711が空間的局所グループSを第3CPU26に割り当てた場合、アクティブ設定部3114がアクティブな空間的局所グループS’を設定する。なお、空間的局所グループS’は、時間的局所グループTの一部のタスクを含んでいる。
そして、図51に示すように、アクティブ設定部3114が時間的局所グループTをアクティブに設定する。アクティブに設定された時間的局所グループTを、T’と示す。これに伴い、空間的局所グループS’及び時間的局所グループT’に属するタスクは、第3CPU26の処理対象として最も優先度が高く設定される。
そして、空間的局所グループS’に含まれていない時間的局所グループT’は、各CPUで優先度が2番目に高いものとして設定される。さらに、時間的局所グループT’に属していない空間的局所グループS’のタスクは、第3CPU26の処理対象として優先度が3番目に高いものとして設定される。
次に、図52に示すように、第1割当部4711が空間的局所グループS2を第2CPU24に割り当てた場合、アクティブ設定部3114がアクティブな空間的局所グループS’を設定する。これにより、空間的局所グループS2及び時間的局所グループT’に属するタスクが、第2CPU24で最も優先度が高く設定される。
そこで、タスク管理装置4700におけるCPUに対するタスクの割り当て手順について、図53を用いて説明する。なお、以下の処理では、当該割当先のCPUを割当先CPUという。
まず、グループ判断部4713は、他のCPU(割当先CPU以外)に割り当てられた空間的局所グループを除き、アクティブな時間的局所グループが存在するか否か判断する(ステップS5301)。
そして、グループ判断部4713は、アクティブな時間的局所グループが存在すると判断した場合(ステップS5301:Yes)、アクティブな時間的局所グループに属するタスクであって、本処理手順において割当対象であるCPUに割り当てられた時間的局所タスクグループに属するタスクが存在するか否か判断する(ステップS5302)。
そして、グループ判断部4713がアクティブな時間的局所グループに属するタスクであって、割当先CPUに割り当てられた空間的局所グループに属しているタスクが存在すると判断した場合(ステップS5302:Yes)、第2割当部4712は当該タスクを次に処理を行う対象として選択し(ステップS5303)、選択したタスクを割当先CPUに対して割り当てる(ステップS5304)。
また、グループ判断部4713がアクティブな時間的局所グループに属するタスクであって、割当先CPUに割り当てられた空間的局所グループに属しているタスクが存在しないと判断した場合(ステップS5302:No)、第2割当部4712はアクティブな時間的局所グループに属するタスクであって、他のCPUに割り当てられた空間的局所グループに属していないタスクを選択し(ステップS5305)、選択したタスクを割当先CPUに対して割り当てる(ステップS5306)。
また、グループ判断部4713がアクティブな時間的局所グループが存在しないと判断した場合(ステップS5301:No)、他のCPUに割り当てられた空間的局所グループに属していない処理待ちのタスクは存在するか否か判断する(ステップS5307)。そして、グループ判断部4713が処理待ちのタスクが存在しないと判断した場合(ステップS5307:No)、処理を終了する。
次に、グループ判断部4713が、割当先CPUに割り当てられた空間的局所グループが存在するか否か判断する(ステップS5308)。
そして、グループ判断部4713が、割当先CPUに割り当てられた空間的局所グループが存在すると判断した場合(ステップS5308:Yes)、第2割当部4712は、当該空間的局所グループに属してるタスクを選択し(ステップS5309)、選択したタスクを割当先CPUに対して割り当てる(ステップS5310)。
また、グループ判断部4713が、割当先CPUに割り当てられた空間的局所グループが存在しないと判断した場合(ステップS5308:No)、第1割当部4711は、処理待ちのタスクのうち、他のCPUに割り当てられた空間的局所グループに属していないタスクを選択し(ステップS5311)。選択したタスクを割当先CPUに対して割り当てる(ステップS5312)。その後、アクティブ設定部3114が、図41のステップS4107〜S4110と同様の処理を行い、処理対象の設定(アクティブグループ)を行う(ステップS5313)。
なお、本実施の形態に係るタスク管理装置4700で説明した処理と、第5の実施形態で説明した再割当処理とを組み合わせても良い。
CPUに割り当てるタスクの条件を詳細に設定した。これにより、例えば、アクティブな時間的局所グループを優先的に処理を行う際に、当該CPUに対して割り当てられた空間的局所グループに属しているタスクを優先的に処理を行うため、CPUに割り当てられるタスクに偏りが生じることを抑止することができる。
このように本実施の形態にかかるタスク管理装置4700では、CPUに割り当てられるタスクに片寄りが発生することを抑止して、空間的局所性が達成される可能性が向上する。
上述した実施の形態のタスク管理装置で実行されるタスク管理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、上述した実施の形態にかかるタスク管理装置で実行されるタスク管理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態のタスク管理装置で実行されるタスク管理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
上述した実施の形態のタスク管理装置で実行されるタスク管理プログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)がROMから認証プログラムを読み出して実行することにより上記各部が、タスク管理装置が有する主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
また、上述した実施の形態にかかるタスク管理装置のソフトウェア部で示した各構成要素は、ソフトウェアで実装することに制限するものではなく、一部もしくは全部をハードウェア実装してもよい。
なお、本発明は上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述した実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
第1の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 第1の実施の形態において処理対象となるタスクの依存関係を示した概念図である。 キャッシュメモリ及びRAMにタスクの処理結果を格納する概念を示した説明図である。 タスクを時間的局所性に基づいてグループ化した概念を示した説明図である。 時間的局所グループに分けられたタスクを示した説明図である。 第1の実施形態にかかるタスクテーブルのテーブル構造を示した図である。 第1の実施形態にかかるアクティブグループ管理テーブルのテーブル構造を示した図である。 第1の実施形態にかかる、タスクの生成から当該タスクを割り当てるまでの処理手順を示すフローチャートである。 第1の実施形態にかかる、タスクの割り当て手順を示すフローチャートである。 第1の実施形態にかかるタスク管理装置のハードウェア構成を示した図である。 第2の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 依存関係があるタスクに対して優先度を割り当てる概念を示した説明図である。 優先度が割り当てられたタスクを複数のCPUで処理した第1の例を示した図である。 優先度が割り当てられたタスクを複数のCPUで処理した第2の例を示した図である。 依存関係があるタスクに対して、時間的局所性でグループ化した概念を示した説明図である。 第2の実施の形態において、時間的局所性でグループ化したタスクを処理した第1の例を示した図である。 第2の実施の形態において、時間的局所性でグループ化したタスクを処理した第2の例を示した図である。 第2の実施形態にかかるタスク管理装置のハードウェア構成を示した図である。 第3の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 複数のCPUがキャッシュメモリのタスクの処理結果を利用する概念を示した説明図である。 依存関係があるタスクを処理するCPUを指定した概念を示した説明図である。 CPUを指定したタスクを処理する第1の例を示した図である。 CPUを指定したタスクを処理する第2の例を示した図である。 依存関係があるタスクに対して、時間的局所性及び空間的局所性でグループ化した概念を示した説明図である。 第3の実施の形態において、時間的局所性及び空間的局所性でグループ化したタスクを処理する第1の例を示した図である。 第3の実施の形態において、時間的局所性及び空間的局所性でグループ化したタスクを処理する第2の例を示した図である。 タスクグループに分けられたタスクを示した説明図である。 第3の実施の形態にかかるタスクテーブルのテーブル構造を示した図である。 第3の実施の形態にかかるアクティブグループ対応管理テーブルのテーブル構造を示した図である。 第3の実施形態における、タスクの割り当て手順を示すフローチャートである。 第4の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 依存関係があるタスクに対して処理を行うCPU及び優先度を指定した概念を示した説明図である。 優先度及びCPUを指定したタスクを処理する第1の例を示した図である。 優先度及びCPUを指定したタスクを処理する第2の例を示した図である。 依存関係があるタスクに対して、時間的局所性及び空間的局所性についてそれぞれ別にグループ化した第1の例を示した概念図である。 第4の実施の形態において、時間的局所性及び空間的局所性で別グループ化したタスクを処理した第1の例を示した図である。 第4の実施の形態において、時間的局所性及び空間的局所性で別グループ化したタスクを処理した第2の例を示した図である。 時間的局所性及び空間的局所性についてそれぞれ別のタスクグループに分けられたタスクを示した説明図である。 第4の実施の形態にかかるタスクテーブルのテーブル構造を示した図である。 第4の実施の形態にかかるアクティブグループ対応管理テーブルのテーブル構造を示した図である。 第4の実施形態における、タスクの割り当て手順を示すフローチャートである。 第5の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 依存関係があるタスクに対して、時間的局所性及び空間的局所性で別グループ化した第2の例を示した概念図である。 第5の実施の形態において、時間的局所性及び空間的局所性についてそれぞれ別にグループ化したタスクを処理する例を示した図である。 第5の実施の形態において、時間的局所性及び空間的局所性についてそれぞれ別にグループ化したタスクを再割り当てした後に処理する例を示した図である。 第5の実施形態における、タスクの割り当て手順を示すフローチャートである。 第6の実施の形態にかかるタスク管理装置の機能構成を示すブロック図である。 第6の実施の形態において、各CPUが処理すべきタスクの優先順位の概念を示した説明図である。 図48に示した優先順位の概念において、処理待ちのタスクが発生した状況を示した説明図である。 図48に示した優先順位の概念において、処理待ちのタスクの一部を第3CPUに割り当てた状況を示した説明図である。 図48に示した優先順位の概念において、さらに処理待ちのタスクの一部を、アクティブに設定した状況を示した説明図である。 図48に示した優先順位の概念において、さらに処理待ちのタスクの一部を第2CPUに割り当てた状況を示した説明図である。 第6の実施形態における、タスクの割り当て手順を示すフローチャートである。
符号の説明
11 キャッシュメモリ
12 CPU
13 RAM
14 ROM
15 通信I/F
16 バス
21 第1キャッシュメモリ
22 第1CPU
23 第2キャッシュメモリ
24 第2CPU
25 第3キャッシュメモリ
26 第3CPU
100、1100、1900、3100、4200、4700 タスク管理装置
101、1101、1901、3101、4201、4701 OS
102、1905、3105 タスク生成部
103、1904、3103 スケジューリング履歴記憶部
104、1902、3102 タスクテーブル
105、1102、1903、3104、4202、4702 スケジューリング部
111、1111、1911、3111、4711 第1割当部
112、1112、1912、3112、4712 第2割当部
113、1913、3113、4713 グループ判断部
114、1914、3114、4212 アクティブ設定部
150a〜n アプリケーション
4211 再割当部

Claims (8)

  1. タスクを実行する複数のプロセッサと、
    所定時間以内に前記プロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けて記憶するタスク記憶部と、
    複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当部と、
    前記第1の割当部が割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当部と、
    を備えることを特徴とするタスク管理装置。
  2. 前記タスク記憶部は、さらに、同じプロセッサに割り当てられるタスクをグループ化した空間的グループを、対応付けて記憶し、
    前記第2の割当部は、さらに前記第1の割当部が前記タスクを割り当てた前記プロセッサに対して、当該タスクに対応付けられた前記空間的グループと同じ前記空間的グループに対応付けられている他のタスクを割り当てること、
    を特徴とする請求項1に記載のタスク管理装置。
  3. 前記第2の割当部は、当該タスクに対応付けられた前記空間的グループと同じ前記空間的グループに対応付けられている他のタスクを、前記空間的グループと対応付けられていない前記タスクより先に前記プロセッサに割り当てること、
    を特徴とする請求項2に記載のタスク管理装置。
  4. 前記タスク記憶部は、所定時間以内に前記プロセッサに割り当てられると共に同じプロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、を対応付けて記憶し、
    前記第2の割当部は、前記第1の割当部が割り当てた前記タスクが終了した前記プロセッサに対して、当該タスクに対応付けられた前記時間的グループと同じ前記時間的グループと対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てること、
    を特徴とする請求項1に記載のタスク管理装置。
  5. 任意の前記プロセッサが他の前記プロセッサより割り当てられた前記タスクの数が多い場合に、任意の当該プロセッサに対して割り当てられている前記タスクに対応付けられた前記空間的グループと同じ前記空間的グループと対応付けられている他のタスクを、他の前記プロセッサに再割り当てを行う再割当部をさらに備えることを特徴とする請求項2乃至4のいずれか一つに記載のタスク管理装置。
  6. プロセッサと、
    所定時間以内に前記プロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けて記憶するタスク記憶部と、
    複数の前記タスクのいずれか一つのタスクを、前記プロセッサに対して割り当てる第1の割当部と、
    割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に前記プロセッサに割り当てる第2の割当部と、
    を備えることを特徴とするタスク管理装置。
  7. 所定時間以内にプロセッサに割り当てられる時間的グループにグループ化された複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けてタスク記憶部に記憶するタスク記憶ステップと、
    複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当ステップと、
    前記第1の割当ステップが割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当ステップと、
    を有することを特徴とするタスク管理方法。
  8. 所定時間以内にプロセッサに割り当てられる複数のタスクと、当該複数タスク毎に割り当てられた時間的グループと、対応付けてタスク記憶部に記憶するタスク記憶ステップと、
    複数の前記タスクのいずれか一つのタスクを、複数の前記プロセッサのうちいずれか一つに対して割り当てる第1の割当ステップと、
    前記第1の割当ステップが割り当てた後に、タスクが終了したプロセッサに対して、割り当てられた前記タスクに対応付けられた前記時間的グループと同じ前記時間的グループに対応付けられている他のタスクを、当該時間的グループに対応付けられていないタスクより先に割り当てる第2の割当ステップと、
    をコンピュータに実行させることを特徴とするタスク管理プログラム。
JP2007182574A 2007-07-11 2007-07-11 タスク管理装置、タスク管理方法及びタスク管理プログラム Pending JP2009020692A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007182574A JP2009020692A (ja) 2007-07-11 2007-07-11 タスク管理装置、タスク管理方法及びタスク管理プログラム
US12/041,325 US20090019450A1 (en) 2007-07-11 2008-03-03 Apparatus, method, and computer program product for task management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007182574A JP2009020692A (ja) 2007-07-11 2007-07-11 タスク管理装置、タスク管理方法及びタスク管理プログラム

Publications (1)

Publication Number Publication Date
JP2009020692A true JP2009020692A (ja) 2009-01-29

Family

ID=40254194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007182574A Pending JP2009020692A (ja) 2007-07-11 2007-07-11 タスク管理装置、タスク管理方法及びタスク管理プログラム

Country Status (2)

Country Link
US (1) US20090019450A1 (ja)
JP (1) JP2009020692A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113482A (ja) * 2008-11-05 2010-05-20 Panasonic Corp 資源割付方法、プログラム、及び資源割付装置
WO2014181924A1 (ko) * 2013-05-06 2014-11-13 (주)넥셀 프로세싱 장치 및 방법
JP2019106120A (ja) * 2017-12-14 2019-06-27 日本電気株式会社 プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法
JP2021005287A (ja) * 2019-06-27 2021-01-14 富士通株式会社 情報処理装置及び演算プログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
US9430286B2 (en) * 2011-12-12 2016-08-30 International Business Machines Corporation Authorizing distributed task processing in a distributed storage network
US9058217B2 (en) 2012-09-14 2015-06-16 International Business Machines Corporation Preferential CPU utilization for tasks
US9329671B2 (en) * 2013-01-29 2016-05-03 Nvidia Corporation Power-efficient inter processor communication scheduling
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9465645B1 (en) * 2014-06-25 2016-10-11 Amazon Technologies, Inc. Managing backlogged tasks
US10120716B2 (en) * 2014-10-02 2018-11-06 International Business Machines Corporation Task pooling and work affinity in data processing
US10366358B1 (en) 2014-12-19 2019-07-30 Amazon Technologies, Inc. Backlogged computing work exchange
US10013214B2 (en) 2015-12-29 2018-07-03 International Business Machines Corporation Adaptive caching and dynamic delay scheduling for in-memory data analytics
CN107329820B (zh) * 2016-04-28 2019-12-20 杭州海康威视数字技术股份有限公司 一种用于集群系统的任务处理方法及装置
CN111190717B (zh) * 2020-01-02 2023-04-25 北京字节跳动网络技术有限公司 任务的处理方法和系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH07152587A (ja) * 1993-09-21 1995-06-16 Microsoft Corp 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2004199674A (ja) * 2002-12-13 2004-07-15 Hewlett-Packard Development Co Lp 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法
JP2004326486A (ja) * 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd タスク管理装置
JP2005258920A (ja) * 2004-03-12 2005-09-22 Fujitsu Ltd マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2006155480A (ja) * 2004-12-01 2006-06-15 Sony Computer Entertainment Inc スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339415A (en) * 1990-06-11 1994-08-16 Cray Research, Inc. Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
JPH04195577A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd マルチプロセッサにおけるタスクスケジューリング方式
US6948172B1 (en) * 1993-09-21 2005-09-20 Microsoft Corporation Preemptive multi-tasking with cooperative groups of tasks
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6633897B1 (en) * 1995-06-30 2003-10-14 International Business Machines Corporation Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler
JP3730740B2 (ja) * 1997-02-24 2006-01-05 株式会社日立製作所 並列ジョブ多重スケジューリング方法
US6658448B1 (en) * 1999-10-21 2003-12-02 Unisys Corporation System and method for assigning processes to specific CPU's to increase scalability and performance of operating systems
US6996822B1 (en) * 2001-08-01 2006-02-07 Unisys Corporation Hierarchical affinity dispatcher for task management in a multiprocessor computer system
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
US7076781B2 (en) * 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
JP4028444B2 (ja) * 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
US8533716B2 (en) * 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US8051418B1 (en) * 2005-03-21 2011-11-01 Oracle America, Inc. Techniques for providing improved affinity scheduling in a multiprocessor computer system
US8489700B2 (en) * 2005-11-30 2013-07-16 International Business Machines Corporation Analysis of nodal affinity behavior
US8032884B2 (en) * 2006-10-31 2011-10-04 Hewlett-Packard Development Company, L.P. Thread hand off
US8645963B2 (en) * 2009-11-05 2014-02-04 International Business Machines Corporation Clustering threads based on contention patterns

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH07152587A (ja) * 1993-09-21 1995-06-16 Microsoft Corp 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2004199674A (ja) * 2002-12-13 2004-07-15 Hewlett-Packard Development Co Lp 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法
JP2004326486A (ja) * 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd タスク管理装置
JP2005258920A (ja) * 2004-03-12 2005-09-22 Fujitsu Ltd マルチスレッド実行方法、マルチスレッド実行プログラム、およびマルチスレッド実行装置
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2006155480A (ja) * 2004-12-01 2006-06-15 Sony Computer Entertainment Inc スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113482A (ja) * 2008-11-05 2010-05-20 Panasonic Corp 資源割付方法、プログラム、及び資源割付装置
WO2014181924A1 (ko) * 2013-05-06 2014-11-13 (주)넥셀 프로세싱 장치 및 방법
KR101476789B1 (ko) * 2013-05-06 2014-12-26 (주)넥셀 프로세싱 장치 및 방법
JP2019106120A (ja) * 2017-12-14 2019-06-27 日本電気株式会社 プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法
JP7009971B2 (ja) 2017-12-14 2022-01-26 日本電気株式会社 プロセススケジューリング装置およびプロセススケジューリング方法
JP2021005287A (ja) * 2019-06-27 2021-01-14 富士通株式会社 情報処理装置及び演算プログラム

Also Published As

Publication number Publication date
US20090019450A1 (en) 2009-01-15

Similar Documents

Publication Publication Date Title
JP2009020692A (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
WO2017166777A1 (zh) 一种任务调度方法及装置
JP5516744B2 (ja) スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
KR101378390B1 (ko) 공유 스택의 부분들을 할당하기 위한 시스템 및 방법
US20060123423A1 (en) Borrowing threads as a form of load balancing in a multiprocessor data processing system
EP1876531A1 (en) Multi-processor system abd program for causing computer to execute multi-processor system control method
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
US8024739B2 (en) System for indicating and scheduling additional execution time based on determining whether the execution unit has yielded previously within a predetermined period of time
CN107515781B (zh) 一种基于多处理器的确定性任务调度及负载均衡系统
US20110153971A1 (en) Data Processing System Memory Allocation
US20160139959A1 (en) Information processing system, method and medium
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
US20060143204A1 (en) Method, apparatus and system for dynamically allocating sequestered computing resources
US10782974B2 (en) VLIW interface device and method for controlling the same
JP5737298B2 (ja) スケジューリング方法およびスケジューリングシステム
US9678752B2 (en) Scheduling apparatus and method of dynamically setting the size of a rotating register
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
TWI783401B (zh) 記憶體管理方法和相關產品
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2015026132A (ja) リソース制御装置及び方法及びプログラム
JP6428557B2 (ja) 並列化方法、並列化ツール
KR20130067100A (ko) 이종 멀티코어 환경에서의 코어 배정 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121016