JP5780296B2 - スレッド処理方法、およびスレッド処理システム - Google Patents

スレッド処理方法、およびスレッド処理システム Download PDF

Info

Publication number
JP5780296B2
JP5780296B2 JP2013510763A JP2013510763A JP5780296B2 JP 5780296 B2 JP5780296 B2 JP 5780296B2 JP 2013510763 A JP2013510763 A JP 2013510763A JP 2013510763 A JP2013510763 A JP 2013510763A JP 5780296 B2 JP5780296 B2 JP 5780296B2
Authority
JP
Japan
Prior art keywords
terminal device
thread
devices
shared memory
priority
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
JP2013510763A
Other languages
English (en)
Other versions
JPWO2012144012A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012144012A1 publication Critical patent/JPWO2012144012A1/ja
Application granted granted Critical
Publication of JP5780296B2 publication Critical patent/JP5780296B2/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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、分散処理を行うスレッド処理方法、およびスレッド処理システムに関する。
従来から、複数の端末装置でデータを共有する技術として、各端末装置の実メモリに分散された分割されたデータを保持する仮想分散共有メモリという技術が開示されている。仮想分散共有メモリは、たとえば、インターネットなどの広域のネットワーク上にある装置を、一つの複合したコンピュータシステムとして提供するグリッド・コンピューティングにて使用されている。
仮想分散共有メモリの特徴として、アクセスの分散が図られ、ネットワークの負荷を軽減させることができる。また、端末装置で実行されるアプリケーションソフトウェア(以下、アプリ)が仮想分散共有メモリを意識することなく、一つの連続したメモリとしてアクセスすることが可能である。また、複数の端末装置で実行されるアプリは、各端末装置にスレッドを割り当てて分散処理、並列処理を実行する。なお、スレッドとは、プログラムの実行単位である。
仮想分散共有メモリに関する技術として、たとえば、有線による広域ネットワークで接続された装置のメモリを、仮想分散共有メモリとして使用する技術が開示されている。または、無線ネットワークの例にて、送受信バッファを仮想化することで、データをリレーし、直接接続されていない端末装置でデータを送受信できる技術が開示されている(たとえば、下記特許文献1、2を参照。)。
また、仮想分散共有メモリを用いた情報ストレージシステムにおいて、利用者が生産する情報を意味付けした情報要素として蓄積する。続けて、複数の端末装置からの情報取得要求があった場合、動的に情報取得要求を処理するマスタ端末装置を決定して、情報取得要求に対する情報を効率的に交換、または複製する技術が開示されている(たとえば、下記特許文献3を参照。)。
特開平6−19785号公報 特開2005−94776号公報 特開2005−4474号公報
上述した従来技術において、複数の分散処理、並列処理を実行する場合、複数の端末装置で同期処理を行いながら処理を実行することがある。同期処理とは、複数のスレッドの処理を特定のコード位置までで一旦停止させ、全てのスレッドが特定のコード位置に到達した際に、次の処理を継続する処理である。停止中となったスレッドを実行している端末装置は、同期待ちの状態となる。このとき、各スレッドが割り当てられた端末装置の処理性能や通信速度が異なる場合、処理性能、通信速度が高い端末装置での同期待ちの時間が長くなり、システム全体の処理性能が低下するという問題があった。
本発明は、上述した従来技術による問題点を解消するため、同期処理に伴うシステム全体の処理性能の低下を抑止するスレッド処理方法、およびスレッド処理システムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、特定の装置は複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当て、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を取得し、複数の装置から複数のスレッドの実行結果を受け付け終わったときの第2時刻情報と第1時刻情報とに基づいて、複数の装置の特定の装置および複数の装置で共有される共有メモリへのアクセス権の優先度を設定するスレッド処理方法、およびスレッド処理システムが提案される。
本発明の一側面によれば、同期処理に伴うシステム全体の処理性能の低下を抑止できるという効果を奏する。
図1は、スレッド処理システム100の動作例を示す説明図である。 図2は、スレッド処理システム100内の接続例を示す説明図である。 図3は、実施の形態にかかる端末装置103#0のハードウェアを示すブロック図である。 図4は、スレッド処理システム100の機能例を示すブロック図である。 図5は、同期待ち開始時刻テーブル421の記憶内容の一例を示す説明図である。 図6は、アクセス権優先度情報423の生成例を示す説明図である。 図7は、アクセス権優先度情報が設定された場合のスレッド処理システム100の動作例を示す説明図である。 図8は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャート(その1)である。 図9は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャート(その2)である。 図10は、スレーブ端末装置によるスレッド実行時の処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、開示のスレッド処理方法、およびスレッド処理システムの実施の形態を詳細に説明する。
図1は、スレッド処理システム100の動作例を示す説明図である。符号101で示す説明図は、共有メモリへのアクセス権の優先度が設定されていない状態でのスレッド処理システム100の動作例を示している。また、符号102で示す説明図は、共有メモリへのアクセス権の優先度が設定されている状態でのスレッド処理システム100の動作例を示している。
スレッド処理システム100は、携帯電話や携帯端末等といった端末装置103を複数含む。たとえば、図1で示すスレッド処理システム100は、端末装置103#0〜端末装置103#2を含む。以下、接尾記号“#n”が付随された記号は、n番目の端末装置103に対応する記号であることを示している。端末装置103#0〜端末装置103#2は、無線LAN(Local Area Network)、Bluetooth(登録商標)等の無線通信によって接続されている。また、端末装置103#0〜端末装置103#2は、仮想共有メモリ104にアクセス可能である。端末装置103#0〜端末装置103#2は、仮想共有メモリ104にアクセスすることで複数のスレッドを同期しつつ実行する。なお、仮想共有メモリ104の格納箇所は、端末装置103#0〜端末装置103#2内の記憶領域の一部となる。
また、スレッド処理システム100全体を制御するマスタ端末装置が端末装置103#0となり、マスタ端末装置によって制御されるスレーブ端末装置が端末装置103#1、端末装置103#2であることを想定する。また、端末装置103#2は高処理性能であり、端末装置103#1は低処理性能であり、端末装置103#0は、端末装置103#1と端末装置103#2の中間の処理性能を有していることを想定する。
このような状態で、符号101で示す説明図では、端末装置103#0が、時刻t0以降にて、端末装置103#1にスレッド1を割り当て、端末装置103#2にスレッド2を割り当てる。端末装置103#1、端末装置103#2は、割り当てられたスレッドを実行する。また、端末装置103#0は、自身にもスレッド0を割り当てて実行する。端末装置103#0〜端末装置103#2は、端末装置間で同期を取るために、スレッド0〜スレッド2が全て終了する時刻t1まで待機する。
高性能である端末装置103#2はスレッド2を早く終了し、実行結果を端末装置103#0に通知した後、同期待ち状態となる。端末装置103#2による通知後、端末装置103#0は、スレッド2の実行結果を受け付ける。続けて、中性能である端末装置103#0がスレッド0を終了する。最後に、低性能である端末装置103#1がスレッド1を終了し、実行結果を端末装置103#0に通知する。端末装置103#1による通知後、端末装置103#0は、スレッド1の実行結果を受け付ける。
結果、符号101で示すスレッド処理システム100は、端末装置103#1がボトルネックとなったため、端末装置103#2の同期待ち時間が長くなり、スレッド処理システム100全体の処理性能が低下している状態である。また、端末装置103#1は、同期待ち時間が短くなり、端末装置103#0の同期待ち時間は、端末装置103#1と端末装置103#2の中間となる。
次に、符号102で示す説明図は、仮想共有メモリ104へのアクセス権の優先度を端末装置103#0〜端末装置103#2に設定した状態である。具体的には、符号101で示すスレッド処理システム100にて実行結果の通知が遅かった端末装置103#1を、スレッド処理システム100は、優先度:高に設定する。また、スレッド処理システム100は、実行終了の時刻が中程度となった端末装置103#0を優先度:中に設定し、実行結果の通知が早かった端末装置103#0を優先度:低に設定する。
このようなアクセス権の優先度を設定することで、たとえば、端末装置103#1と端末装置103#3が同時に仮想共有メモリ104にアクセスした場合、端末装置103#1が優先して仮想共有メモリ104にアクセスするようになる。これにより、符号102で示す端末装置103#1は、符号101で示す端末装置103#1より、スレッド1を早く終了することができる。スレッド1が早く終了することで、同期待ちが終了する時刻がt1からt1’となり、端末装置103#0、端末装置103#2の同期待ち時間が短縮されるため、スレッド処理システム100の処理性能が向上することになる。
図2は、スレッド処理システム100内の接続例を示す説明図である。図2で示すスレッド処理システム100は、図1で示した端末装置103#0〜端末装置103#2に加えて、端末装置103#3を含む。端末装置103#3は、端末装置103#2と同等の処理性能となることを想定する。
また、端末装置103#0〜端末装置103#3は、無線通信で接続されている。端末装置103#0と端末装置103#2間、端末装置103#0と端末装置103#3間、端末装置103#2と端末装置103#3間は、無線LANといった高速通信で接続されている。また、端末装置103#0と端末装置103#1間、端末装置103#1と端末装置103#2間、端末装置103#1と端末装置103#3間は、Bluetooth(登録商標)といった低速通信で接続されている。
図3は、実施の形態にかかる端末装置103#0のハードウェアを示すブロック図である。なお、端末装置103#1〜端末装置103#3は、端末装置103#0と処理性能が異なるが同一のハードウェアを含むため、説明を省略する。また、図3の説明に登場するハードウェアは、全て端末装置103#0に含まれているため、説明の簡略化のため接尾記号“#0”を省略する。
図3において、端末装置103#0は、CPU301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、端末装置103#0は、フラッシュROM304と、フラッシュROMコントローラ305と、フラッシュROM306と、を含む。また、端末装置103#0は、ユーザやその他の機器との入出力装置として、ディスプレイ307と、I/F(Interface)308と、キーボード309と、を含む。また、各部はバス310によってそれぞれ接続されている。
ここで、CPU301は、端末装置103#0の全体の制御を司る。また、CPU301は、専用のキャッシュメモリを有してもよい。また、端末装置103は、複数のコアを含むマルチコアプロセッサシステムであってもよい。なお、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。
ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。また、RAM303とバス310は、メモリコントローラ311で接続されている。メモリコントローラ311は、CPU301によるRAM303へのアクセスの制御をする。また、メモリコントローラ311は、RAM303以外にも、ROM302、フラッシュROM304などのアクセスを制御してもよい。
フラッシュROM304は、読出し速度が高速なフラッシュROMであり、たとえば、NOR型フラッシュメモリである。たとえば、フラッシュROM304は、OS(Operating System)などのシステムソフトウェアやアプリケーションソフトウェアなどを記憶している。たとえば、OSを更新する場合、端末装置103#0は、I/F308によって新しいOSを受信し、フラッシュROM304に格納されている古いOSを、受信した新しいOSに更新する。
フラッシュROMコントローラ305は、CPU301の制御に従ってフラッシュROM306に対するデータのリード/ライトを制御する。フラッシュROM306は、データの保存、運搬を主に目的としたフラッシュROMであり、たとえば、NAND型フラッシュメモリである。フラッシュROM306は、フラッシュROMコントローラ305の制御で書き込まれたデータを記憶する。データの具体例としては、端末装置103#0を使用するユーザがI/F308を通して取得した画像データ、映像データや、また本実施の形態にかかるスレッド処理方法を実行するプログラムなどである。フラッシュROM306は、たとえば、メモリカード、SDカードなどを採用することができる。
ディスプレイ307は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ307は、たとえば、TFT(Thin Film Transistor)液晶ディスプレイなどを採用することができる。
I/F308は、通信回線を通じてLAN、WAN(Wide Area Network)、インターネットなどのネットワーク312に接続され、ネットワーク312を介して他の装置に接続される。そして、I/F308は、ネットワーク312と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F308には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード309は、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード309は、タッチパネル式の入力パッドやテンキーなどであってもよい。
(スレッド処理システム100の機能)
次に、スレッド処理システム100の機能例について説明する。図4は、スレッド処理システム100の機能例を示すブロック図である。スレッド処理システム100は、検出部401と、割当部402と、実行部403と、取得部404と、登録部405と、算出部406と、設定部407と、通知部408と、制御部409と、管理部410と、を含む。さらに、スレッド処理システム100は、管理部411と、受付部412と、実行部413と、制御部414と、を含む。
この制御部となる機能(検出部401〜制御部414)は、記憶装置に記憶されたプログラムをCPU301#0、CPU301#1が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図3に示したROM302、RAM303、フラッシュROM304、フラッシュROM306などである。
また、スレッド処理システム100は、同期待ち開始時刻テーブル421、共有メモリ422にアクセス可能である。さらに、スレッド処理システム100は、アクセス権優先度情報423を生成する。また、CPU301#0は、OS431#0、スケジューラ432を実行し、CPU301#1は、OS431#1を実行する。さらに、スレッド処理システム100は、アプリ433を実行しており、アプリ433内のスレッド0がCPU301#0に割り当てられており、スレッド1がCPU301#1に割り当てられている。
また、検出部401〜管理部410は、マスタ端末装置となる端末装置103#0の機能であり、管理部411〜制御部414は、スレーブ端末装置となる端末装置103#1の機能である。なお、端末装置103#1がマスタ端末装置となる場合、端末装置103#1は検出部401〜管理部410を含む。また、端末装置103#0がスレーブ端末装置となる場合、端末装置103#0は管理部411〜制御部414を含む。また、検出部401〜実行部403は、スケジューラ432の機能に含まれる。なお、取得部404〜制御部409がスケジューラ432の機能に含まれてもよい。
OS431は、端末装置103を制御するプログラムである。具体的に、OS431#0は端末装置103#0を制御しており、OS431#1は端末装置103#1を制御している。OS431は、たとえば、アプリ433が使用するライブラリを提供する。また、OS431は、フラッシュROMコントローラ305、I/F308、キーボード309等を制御するデバイスドライバを有している。
スケジューラ432は、スレッド処理システム100で実行されているアプリ内のスレッドをCPU301に割り当てる順番を決定するプログラムである。また、本実施の形態にかかるスケジューラ432は、次に割り当てられることが決定したスレッドをCPU301に割り当てるディスパッチ機能が含まれていることを想定している。たとえば、スケジューラ432は、スレッド0をCPU301#0に割り当て、スレッド1をCPU301#1に割り当てる。
同期待ち開始時刻テーブル421は、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を記憶するテーブルである。同期待ち開始時刻テーブル421の具体的な記憶内容については、図5にて後述する。なお、同期待ち開始時刻テーブル421は、マスタ端末装置である端末装置103#0のRAM303#0内に記憶される。
共有メモリ422は、仮想共有メモリ104に対する実メモリである。共有メモリ422#0、共有メモリ422#1、また、他の端末装置103内にある共有メモリ422が結合され仮想共有メモリ104を形成する。なお、共有メモリ422#0はRAM303#0内に存在し、共有メモリ422#1はRAM303#1内に存在する。
アクセス権優先度情報423は、マスタ端末装置となる特定の装置にて、スレーブ端末装置となる複数の装置との仮想共有メモリ104へのアクセス権の優先度を記憶する情報である。アクセス権優先度情報423の生成例については、図6にて後述する。
検出部401は、新たなスレッドの割当要求が発生したことを検出する機能を有する。たとえば、検出部401は、実行中のアプリ433にて、新たなスレッドの割当要求が発生したことを検出する。具体的な検出方法として、実行中のアプリ433の実行コードに、新規スレッドを実行するAPIが呼び出された場合、検出部401は、新たなスレッドの割当要求が発生したことを検出する。なお、検出された割当要求は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
割当部402は、マスタ端末装置となる特定の装置にてスレーブ端末装置となる複数の装置のそれぞれに複数のスレッドのうちの一のスレッドを割り当てる機能を有する。また、割当部402は、マスタ端末装置にスレッドを割り当ててもよい。たとえば、割当部402は、スレッド0をCPU301#0に割り当て、スレッド1をCPU301#1に割り当てる。割当部402は、自装置以外にスレッドを割り当てる場合、割当を行う装置に対して、割当要求を通知する。なお、スレッドを割り当てるという情報は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶されてもよい。
実行部403、実行部413は、割り当てられたスレッドを実行する機能を有する。たとえば、実行部403はスレッド0を実行し、実行部413はスレッド1を実行する。なお、スレッドの実行結果は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
取得部404は、複数の装置のそれぞれから対応するスレッドの実行結果を受け付けるときの第1時刻情報を取得する機能を有する。たとえば、スレッド0が実行開始した時刻を0[ミリ秒]とし、スレッド0が終了した時刻を110[ミリ秒]とする場合を想定する。このとき、取得部404は、スレッド0の実行結果を受け付けるときの第1時刻情報となる同期待ち開始時刻を110[ミリ秒]として取得する。なお、取得された同期待ち開始時刻は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
登録部405は、複数の装置のそれぞれからスレッドの実行結果を受け付けるときの第1時刻情報を登録する機能を有する。たとえば、登録部405は、スレッド0の同期待ち開始時刻となった110[ミリ秒]を同期待ち開始時刻テーブル421に登録する。
算出部406は、第1時刻情報と複数の装置から複数のスレッドの実行結果を受け付け終わったときの第2時刻情報とに基づいて複数の装置のそれぞれの所定時間を算出する。ここで、所定時間は、対象の装置からの実行結果を受け付けた時刻から、全てのスレッドからの実行結果を受け付けた時刻までとなる同期待ち時間である。
たとえば、スレッド0が同期待ち開始時刻となった時刻が110[ミリ秒]であり、スレッド1が同期待ち開始時刻となった時刻が190[ミリ秒]であると想定する。また、スレッド1の実行結果を受け付けたときが、全てのスレッドの実行結果を受け付け終わったときであることを想定する。このとき、算出部406は、端末装置103#0の同期待ち時間を、190−110=80[ミリ秒]として算出し、端末装置103#1の同期待ち時間を、190−190=0[ミリ秒]として算出する。なお、算出された同期待ち時間は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
設定部407は、複数の装置の第1時刻情報と第2時刻情報に基づいて、特定の装置および複数の装置で共有される共有メモリ422へのアクセス権の優先度を設定する機能を有する。なお、共有メモリ422へのアクセス権の優先度と、共有メモリ422が結合された仮想共有メモリ104へのアクセス権の優先度は同一であるため、以降、仮想共有メモリ104へのアクセス権の優先度で統一して説明を行う。
たとえば、端末装置103#0の第1時刻情報が110[ミリ秒]、端末装置103#1の第1時刻情報が190[ミリ秒]であり、第2時刻情報が190[ミリ秒]である状態を想定する。たとえば、設定部407は、第1時刻情報が大きい順にアクセス権の優先度を設定する。この例では、設定部407は、端末装置103#0の優先度を低く設定し、端末装置103#1の優先度を高く設定する。
また、設定部407は、算出部406によって算出された所定時間に基づいてアクセス権の優先度を設定してもよい。たとえば、所定時間である同期待ち時間に関して、端末装置103#0の同期待ち時間が80[ミリ秒]、端末装置103#1の同期待ち時間が0[ミリ秒]であることを想定する。このとき、設定部407は、同期待ち時間が短い順にアクセス権の優先度を設定する。この例でも、設定部407は、端末装置103#0の優先度を低く設定し、端末装置103#1の優先度を高く設定する。なお、設定された優先度は、アクセス権優先度情報423として生成される。アクセス権優先度情報423は、CPU301#0のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
通知部408は、アクセス権の優先度に関する情報を複数の装置に通知する機能を有する。たとえば、通知部408は、設定部407によって生成されたアクセス権優先度情報423を端末装置103#1に通知する。
制御部409、制御部414は、共有メモリ422へのアクセスを制御するメモリコントローラ311をアクセス権の優先度に応じて制御する機能を有する。たとえば、設定部407が端末装置103#0の優先度を低く設定し、端末装置103#1の優先度を高く設定した場合を想定する。
このとき、制御部409は、CPU301#0からの共有メモリ422#0へのアクセス中に、I/F308#0を経由したアクセス要求があった場合、CPU301#0からのアクセスを一旦停止させるようにメモリコントローラ311#0を制御する。停止後、制御部409は、I/F308#0を経由した共有メモリ422#0へのアクセスを行う。具体的に、制御部409は、メモリコントローラ311#0の設定レジスタに、各端末装置103の優先度を書き込むことで、メモリコントローラ311#0の動作を制御する。同様に、制御部414は、受付部412によって受け付けたアクセス権の優先度に応じてメモリコントローラ311#1を制御する。
管理部410、管理部411は、仮想共有メモリ104を管理する機能を有する。たとえば、管理部410は、スレッド0からの仮想共有メモリ104へのアクセスを、仮想共有メモリ104に対応する実メモリである共有メモリ422#0、共有メモリ422#1へのアクセスに変換する。共有メモリ422#1へのアクセスに変換された場合、管理部410は、I/F308#0を経由して端末装置103#1にアクセス要求を通知する。
受付部412は、アクセス権の優先度を受け付ける機能を有する。たとえば、受付部412は、端末装置103#0からアクセス権優先度情報423を受け付ける。さらに、受付部412は、スレッドの割当要求を受け付ける。なお、受け付けたアクセス権優先度情報423、スレッドの割当要求の情報は、CPU301#1のレジスタ、キャッシュメモリ、RAM303などの記憶領域に記憶される。
図5は、同期待ち開始時刻テーブル421の記憶内容の一例を示す説明図である。同期待ち開始時刻テーブル421は、端末装置ID(IDentification)、同期待ち開始時刻という2つのフィールドを含む。端末装置IDフィールドには、端末装置103#0〜端末装置103#3の識別情報が格納される。同期待ち開始時刻フィールドには、端末装置103#0〜端末装置103#3が同期待ちを開始した時刻が格納される。
たとえば、図5に示す同期待ち開始時刻テーブル421には、レコード421−0〜レコード421−3が含まれる。また、図5では、同期処理を伴うスレッドを実行開始した時刻を0[ミリ秒]と想定している。このとき、レコード421−0は、端末装置103#0の同期待ち開始時刻が110[ミリ秒]であり、レコード421−1は端末装置103#1の同期待ち開始時刻が190[ミリ秒]であることを示している。同様に、レコード421−2は端末装置103#2の同期待ち開始時刻が70[ミリ秒]であり、レコード421−3は端末装置103#3の同期待ち開始時刻が60[ミリ秒]であることを示している。
図6は、アクセス権優先度情報423の生成例を示す説明図である。アクセス権優先度情報423を生成するマスタ端末装置は、同期処理を行うスレッドを実行する端末装置103の全てから実行結果を受け付けた場合、同期待ち時間を算出する。なお、マスタ端末装置も同期処理を行うスレッドを実行してもよい。この場合、同期待ち時間の算出を開始するタイミングは、マスタ端末装置がスレッドを終了しており、さらに、スレーブ端末装置もスレッドを終了している場合である。マスタ端末装置は、同期待ち時間を、下記(1)式で算出する。
同期待ち時間=実行結果を最後に受け付けた端末装置の同期待ち開始時刻−端末装置の同期待ち開始時刻 …(1)
たとえば、マスタ端末装置は、レコード421−0〜レコード421−3の同期待ち開始時刻フィールドから、端末装置103#1を、実行結果を最後に受け付けた端末装置であると特定する。続けて、マスタ端末装置は、端末装置103#0の同期待ち時間を(1)式から以下のように算出する。
端末装置103#0の同期待ち時間=190−110=80[ミリ秒]
マスタ端末装置は、端末装置103#1〜端末装置103#3の同期待ち時間についても、それぞれ、0[ミリ秒]、120[ミリ秒]、130[ミリ秒]と算出する。算出後、マスタ端末装置は、同期待ち時間の短い順に仮想共有メモリ104へのアクセス権の優先度を設定する。設定されたアクセス権の優先度は、アクセス権優先度情報423として生成される。
アクセス権優先度情報423は、端末装置ID、優先度という2つのフィールドを含む。端末装置IDフィールドには、端末装置103#0〜端末装置103#3の識別情報が格納される。優先度フィールドには、仮想共有メモリ104へのアクセス権の優先度が格納される。なお、図6で示す優先度は、1が最も優先度が高く、数値が大きくなるほど優先度が低くなる状態であると定義する。
マスタ端末装置は、同期待ち時間が最も短かった端末装置103#1を優先度1に設定する。続けて、マスタ端末装置は、同期待ち時間の短い順に、端末装置103#0を優先度2に設定し、端末装置103#2を優先度3に設定し、端末装置103#3を優先度4に設定する。
図7は、アクセス権優先度情報が設定された場合のスレッド処理システム100の動作例を示す説明図である。図7で示すスレッド処理システム100は、0[ミリ秒]の時点からスレッド0〜スレッド3を実行し、200[ミリ秒]にて、スレッド0’〜スレッド3’を実行する。ここで、スレッド0〜スレッド3とスレッド0’〜スレッド3’の処理量は、同一であることを想定している。
また、0[ミリ秒]〜190[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定されていない状態である。続けて、190[ミリ秒]〜200[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度を設定する処理を実行している。さらに、200[ミリ秒]〜370[ミリ秒]のスレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定された状態となる。
また、マスタ端末装置である端末装置103#0が、スレーブ端末装置となる端末装置103#1〜端末装置103#3と通信し、端末装置103#1〜端末装置103#3間では通信しないことを想定する。したがって、端末装置103#0は、端末装置103#2、端末装置103#3とは高速通信し、端末装置103#1とは低速通信する。
なお、スレッド0〜スレッド3の実行時間、およびスレッドの実行によって発生する通信時間について、図7では次のように想定する。端末装置103#0のスレッド0の処理時間が60[ミリ秒]であり、端末装置103#1のスレッド1の処理時間が110[ミリ秒]であり、端末装置103#2のスレッド2の処理時間と端末装置103#3のスレッド3の処理時間が40[ミリ秒]である。
また、低速通信である端末装置103#0−端末装置103#1間の通信時間は、30[ミリ秒]となることを想定する。高速通信である端末装置103#0−端末装置103#2、端末装置103#0−端末装置103#3間の通信時間は10[ミリ]秒であることを想定する。
このような状態で、端末装置103#0は、0[ミリ秒]の時点にて、スレッド0〜スレッド3を端末装置103#0〜端末装置103#3に割り当てる。スレッドを割り当てられた端末装置103#0〜端末装置103#3は、スレッドを実行するために仮想共有メモリ104にアクセスする。なお、このときアクセスする仮想共有メモリ104に対応する共有メモリ422が、共有メモリ422#0である場合を想定する。したがって、端末装置103#1〜端末装置103#3は、端末装置103#0と通信を行う。このとき、高速通信であり最も早く通信を開始できた端末装置103#3が端末装置103#0と通信を行う。
時刻10[ミリ秒]にて、端末装置103#0と端末装置103#3の通信が終了すると、次に端末装置103#0と端末装置103#2が通信を開始する。また、通信を終了した端末装置103#3は、スレッド3を実行する。また、時刻20[ミリ秒]にて、端末装置103#0と端末装置103#2の通信が終了すると、続けて端末装置103#0と端末装置103#1が通信を開始する。また、通信を終了した端末装置103#3は、スレッド2を実行する。続けて、時刻50[ミリ秒]にて、端末装置103#0と端末装置103#1の通信が終了すると、端末装置103#0がスレッド0を実行し、端末装置103#1がスレッド1を実行する。
また、端末装置103#3は、10[ミリ秒]の時点から40[ミリ秒]経過した50[ミリ秒]の時点でスレッド3を終了し、時刻60[ミリ秒]にて実行結果を端末装置103#0に通知する。端末装置103#0は、実行結果を受け付け、端末装置103#3の同期待ち開始時刻を60[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。時刻70[ミリ秒]でも同様に、端末装置103#2がスレッド2を終了し、実行結果を端末装置103#0に通知する。通知を受けた端末装置103#0は、実行結果を受け付け、端末装置103#2の同期待ち開始時刻を70[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。
また、時刻110[ミリ秒]にて、端末装置103#0がスレッド0を終了すると、端末装置103#0は、端末装置103#0の同期待ち開始時刻を110[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。さらに、時刻160[ミリ秒]にて、端末装置103#1がスレッド1を終了し、時刻190[ミリ秒]にて実行結果を端末装置103#0に通知する。端末装置103#0は、端末装置103#1の同期待ち開始時刻を190[ミリ秒]として、同期待ち開始時刻テーブル421に登録する。マスタ端末装置は、全ての端末装置103がスレッドを終了したため、次の処理を実行開始する。
また、時刻190[ミリ秒]にて、端末装置103#0は、各端末装置103の同期待ち時間を算出する。端末装置103#0〜端末装置103#3の同期待ち時間は、それぞれ、80[ミリ秒]、0[ミリ秒]、120[ミリ秒]、130[ミリ秒]、と算出される。算出結果から、端末装置103#0は、端末装置103#0〜端末装置103#3の仮想共有メモリ104へのアクセス権を、それぞれ、優先度:2、優先度:1、優先度:3、優先度:4に設定する。
優先度が設定された状態で、端末装置103#0は、200[ミリ秒]の時点にて、スレッド0’〜スレッド3’を端末装置103#1〜端末装置103#3に割り当てる。スレッドを割り当てられた端末装置103#1〜端末装置103#3は、スレッドを実行するために仮想共有メモリ104にアクセスする。端末装置103#1〜端末装置103#3は、端末装置103#0と通信を行う。
このとき、初めに、高速通信であり最も早く通信を開始できた端末装置103#3が端末装置103#0と通信を行う。しかし、その後、優先度が高い端末装置103#1からのアクセス要求を受け付けると、端末装置103#0は、端末装置103#3による共有メモリ422#0へのアクセスを一旦中断し、端末装置103#1からの共有メモリ422#0へのアクセスを行う。時刻230[ミリ秒]にて、端末装置103#0と端末装置103#1の通信が終了すると、次に優先度が高い端末装置103#2が端末装置103#0と通信を開始する。また、時刻240[ミリ秒]にて、端末装置103#0と端末装置103#2の通信が終了すると、次に優先度が高い端末装置103#3が端末装置103#0と通信を開始する。
通信が終了した端末装置103から順に、割り当てられたスレッド0’〜スレッド3’を実行する。端末装置103#2は、時刻290[ミリ秒]にて、スレッド2’の実行結果を通知し、端末装置103#0は、スレッド2’の実行結果を受け付ける。同様に、端末装置103#3は、時刻300[ミリ秒]にて、スレッド3’の実行結果を通知し、端末装置103#0は、スレッド3’の実行結果を受信する。端末装置103#1は、時刻370[ミリ秒]にて、スレッド1’の実行結果を通知し、端末装置103#0は、スレッド1’の実行結果を受け付ける。
このように、スレッド処理システム100は、仮想共有メモリ104へのアクセス権の優先度が設定されることで、ボトルネックとなっていた端末装置103#1の処理を早く終了でき、スレッド処理システム100の処理性能を向上できる。具体的に、図7では、仮想共有メモリ104へのアクセス権の優先度が設定されていないスレッド処理システム100は、全てのスレッドが終了するまで190[ミリ秒]経過していた。仮想共有メモリ104へのアクセス権の優先度が設定されたスレッド処理システム100では、全てのスレッドが終了するまで170[ミリ秒]となり、処理性能を向上させることができる。
次に、図7で示した動作を行うスレッド実行時の処理手順の一例を示すフローチャートを図8〜図10で示す。図8、図9では、マスタ端末装置によるスレッド実行時の処理手順を示しており、図10では、マスタ端末装置からの通知によって動作するスレーブ端末装置によるスレッド実行時の処理手順を示している。
図8は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャート(その1)である。マスタ端末装置は、新たなスレッドの割当要求が発生したか否かを判断する(ステップS801)。新たなスレッドの割当要求が発生していない場合(ステップS801:No)、マスタ端末装置は、一定時間経過後、ステップS801の処理を再び実行する。
新たなスレッドの割当要求が発生した場合(ステップS801:Yes)、マスタ端末装置は、新たなスレッドの割当要求をマスタ端末装置、またはスレーブ端末装置に通知する(ステップS802)。なお、新たなスレッドが複数発生した場合、マスタ端末装置は、ステップS802の処理を複数実行する。また、新たなスレッドをマスタ端末装置とスレーブ端末装置のうち、どの端末装置に割り当てるかを決定する処理は、スケジューラの機能に含まれる。スケジューラは、たとえば、マスタ端末装置とスレーブ端末装置のうち、最も負荷が最小となる端末装置に新たなスレッドを割り当ててもよい。スレッド割り当て後、マスタ端末装置は、マスタ端末装置に割り当てられたスレッドを実行する(ステップS803)。
続けて、マスタ端末装置は、割り当てられたスレッドの処理が終了したか否かを判断する(ステップS804)。スレッドの処理が終了した場合(ステップS804:Yes)、マスタ端末装置は、マスタ端末装置の実行結果を受け付けた時刻を同期待ち開始時刻として取得する(ステップS805)。取得後、マスタ端末装置は、取得された同期待ち開始時刻を同期待ち開始時刻テーブル421に登録する(ステップS806)。格納後、または、スレッドの処理が終了していない場合(ステップS804:No)、マスタ端末装置は、スレーブ端末装置から実行結果を受け付けたか否かを判断する(ステップS807)。なお、スレーブ端末装置の実行結果は、後述するステップS1004の処理によって通知されてくる。
実行結果を受け付けた場合(ステップS807:Yes)、マスタ端末装置は、スレーブ端末装置から実行結果を受け付けた時刻を同期待ち開始時刻として取得する(ステップS808)。取得後、マスタ端末装置は、取得された同期待ち開始時刻を同期待ち開始時刻テーブル421に登録する(ステップS809)。格納後、または実行結果を受け付けていない場合(ステップS807:No)、マスタ端末装置は、割り当てを行ったスレッドの実行結果を全て受け付けたか否かを判断する(ステップS810)。実行結果を全て受け付けていない場合(ステップS810:No)、マスタ端末装置は、ステップS804の処理に移行する。実行結果を全て受け付けた場合(ステップS810:Yes)、マスタ端末装置は、ステップS901の処理に移行する。
図9は、マスタ端末装置によるスレッド実行時の処理手順の一例を示すフローチャート(その2)である。ステップS810の処理実行後、マスタ端末装置は、実行結果を最後に受け付けた端末装置103の同期待ち開始時刻から、各端末装置103の同期待ち時間を算出する(ステップS901)。算出後、マスタ端末装置は、各端末装置103の同期待ち時間に応じて、仮想共有メモリ104へのアクセス権の優先度を設定する(ステップS902)。
続けて、マスタ端末装置は、設定された優先度から、アクセス権優先度情報423を生成し(ステップS903)、アクセス権優先度情報423をスレーブ端末装置に通知する(ステップS904)。通知後、マスタ端末装置は、マスタ端末装置の共有メモリ422へのアクセス権の優先度をマスタ端末装置のメモリコントローラ311に設定し(ステップS905)、ステップS801の処理に移行する。
図10は、スレーブ端末装置によるスレッド実行時の処理手順の一例を示すフローチャートである。スレーブ端末装置は、マスタ端末からの通知を受け付けたか否かを確認する(ステップS1001)。なお、マスタ端末装置からの通知は、ステップS802、ステップS905の処理によって通知されてくる。マスタ端末装置から通知を受け付けていない場合(ステップS1001:通知なし)、スレーブ端末装置は、一定時間経過後、ステップS1001の処理に移行する。
仮想共有メモリ104へのアクセス権優先度情報423の通知を受け付けた場合(ステップS1001:アクセス権優先度情報423)、スレーブ端末装置は、スレーブ端末装置の共有メモリ422へのアクセス権の優先度をスレーブ端末装置のメモリコントローラ311に設定する(ステップS1002)。設定後、スレーブ端末装置は、ステップS1001の処理に移行する。
スレッド割当要求の通知を受け付けた場合(ステップS1002:スレッド割当要求)、スレーブ端末装置は、割当要求のあったスレッドを実行する(ステップS1003)。実行終了後、スレーブ端末装置は、スレッドの実行結果をマスタ端末装置に通知し、ステップS1001の処理に移行する。
以上説明したように、スレッド処理方法、およびスレッド処理システムによれば、複数の端末装置で同期処理を行う場合、他端末装置を長時間待たせる低性能端末装置の共有メモリへのアクセス権の優先度を高く設定する。これにより、低性能端末装置の実行時間が短縮され他端末装置の同期待ち時間が削減されるため、スレッド処理システムは、全体の処理性能を向上できる。
また、全体の処理性能を向上させる他の技術として、データを冗長配置する方法が存在する。これにより、他の端末装置にアクセスする頻度が低下するため、処理性能を向上することができる。しかしながら、データを冗長配置しても、同期処理が頻繁に発生する場合、全体の処理性能が低下してしまっていた。本実施の形態におけるスレッド処理システムは、同期待ち時間を可能な限り削減するため、全体の処理性能を向上することができる。
また、データを冗長配置する方法は、メモリの使用容量が大きくなってしまう問題があった。本実施の形態の適用の対象となる携帯電話などの端末装置は、メモリ容量に限界があるため、メモリの使用容量が大きいデータの冗長配置を適用するのが困難である。本実施の形態のスレッド処理システムは、データを冗長配置しなくてよいため、メモリ容量の削減が可能であり、端末装置にも適用することができる。
また、スレッド処理システムは、共有メモリへのアクセス権の優先度をマスタ端末装置からスレーブ端末装置に通知してもよい。これにより、全端末装置で優先度制御を行った仮想分散共有メモリを運用することができる。
また、スレッド処理システムは、複数のスレッドの実行結果を受け付けるときの第1時刻情報と、複数のスレッドの実行結果を受け付け終わったときの第2時刻情報から、各端末装置の同期待ち時間を算出し、同期待ち時間に基づいて、優先度を設定してもよい。同期待ち時間を算出することで、スレッド処理システムは、ボトルネックとなっている端末装置を検出することができる。
なお、ボトルネックとなる端末装置は、低処理性能であったり、低速通信であったりする。しかし、本実施の形態にかかるスレッド処理システムは、端末の処理性能の取得、通信速度の取得を行わずに、実行結果を受け付けた時刻によってボトルネックとなる端末装置を検出することができる。したがって、本実施の形態におけるスレッド処理システムは、共有メモリの優先度情報以外の新たな情報を端末間で通信しなくてよい。
また、スレッド処理システムは、同期待ち時間が小さいとき共有メモリへのアクセス権の優先度を高く設定してもよい。これにより、スレッド処理システムは、ボトルネックとなり、同期待ち時間が小さくなった端末装置の優先度を高く設定することができ、全体の処理性能を向上させることができる。
なお、本実施の形態で説明したスレッド処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本スレッド処理方法を実行するスレッド処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本スレッド処理プログラムは、インターネット等のネットワークを介して配布してもよい。
103 端末装置
301 CPU
303 RAM
308 I/F
310 バス
311 メモリコントローラ
401 検出部
402 割当部
403、413 実行部
404 取得部
405 登録部
406 算出部
407 設定部
408 通知部
409、414 制御部
410、411 管理部
412 受付部
421 同期待ち開始時刻テーブル
422 共有メモリ
423 アクセス権優先度情報
431 OS
432 スケジューラ
433 アプリ

Claims (7)

  1. 特定の装置が、
    前記特定の装置および複数の装置で共有される共有メモリにアクセスする処理と同期処理とを行う複数のスレッドのうちの一のスレッドを、前記複数の装置の各々の装置に割り当て、
    前記各々の装置に対応して前記各々の装置に割り当てられたスレッドの実行結果を受け付けるときの第1時刻情報を取得し、
    前記各々の装置に対応する第1時刻情報が大きい順に前記共有メモリにアクセスする処理と前記同期処理とを行う新たなスレッドを前記各々の装置が実行する際の前記各々の装置の前記共有メモリへのアクセス権の優先度を高く設定すること
    を特徴とするスレッド処理方法。
  2. 前記特定の装置が、
    前記各々の装置の前記共有メモリへのアクセス権の優先度に関する情報を前記各々の装置に通知すること
    を特徴とする請求項1に記載のスレッド処理方法。
  3. 前記特定の装置が、
    前記複数の装置のうちの実行結果を最後に受け付けた装置に割り当てられた前記共有メモリにアクセスする処理と前記同期処理とを行うスレッドの実行結果を受け付けるときの第2時刻情報と前記各々の装置に対応する第1時刻情報との差を、前記各々の装置が同期待ち状態となった同期待ち時間として算出し、
    前記各々の装置に対応する同期待ち時間の短い順に、前記各々の装置の前記共有メモリへのアクセス権の優先度を高く設定すること
    を特徴とする請求項1または請求項2に記載のスレッド処理方法。
  4. 前記特定の装置が、
    前記各々の装置に対応する同期待ち時間が短いとき前記各々の装置の前記共有メモリへのアクセス権の優先度を高く設定すること
    を特徴とする請求項3に記載のスレッド処理方法。
  5. 特定の装置と複数の装置とを含むスレッド処理システムであって、
    前記特定の装置は、
    前記特定の装置および前記複数の装置で共有される共有メモリにアクセスする処理と同期処理とを行う複数のスレッドのうちの一のスレッドを、前記複数の装置の各々の装置に割り当て、
    前記各々の装置に対応して前記各々の装置に割り当てられたスレッドの実行結果を受け付けるときの第1時刻情報を取得し、
    前記各々の装置に対応する第1時刻情報が大きい順に前記共有メモリにアクセスする処理と前記同期処理とを行う新たなスレッドを前記各々の装置が実行する際の前記各々の装置の前記共有メモリへのアクセス権の優先度を高く設定すること
    を特徴とするスレッド処理システム。
  6. 前記特定の装置は、
    前記各々の装置の前記共有メモリへのアクセス権の優先度を前記各々の装置に通知すること
    を特徴とする請求項5に記載のスレッド処理システム。
  7. 前記各々の装置は、
    前記共有メモリへのアクセスを制御するメモリコントローラを前記各々の装置の前記共有メモリへのアクセス権の優先度に応じて制御すること
    を特徴とする請求項5または請求項6に記載のスレッド処理システム。
JP2013510763A 2011-04-18 2011-04-18 スレッド処理方法、およびスレッド処理システム Expired - Fee Related JP5780296B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/059571 WO2012144012A1 (ja) 2011-04-18 2011-04-18 スレッド処理方法、およびスレッド処理システム

Publications (2)

Publication Number Publication Date
JPWO2012144012A1 JPWO2012144012A1 (ja) 2014-07-28
JP5780296B2 true JP5780296B2 (ja) 2015-09-16

Family

ID=47041162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013510763A Expired - Fee Related JP5780296B2 (ja) 2011-04-18 2011-04-18 スレッド処理方法、およびスレッド処理システム

Country Status (3)

Country Link
US (1) US9690619B2 (ja)
JP (1) JP5780296B2 (ja)
WO (1) WO2012144012A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6620524B2 (ja) * 2015-11-12 2019-12-18 富士通株式会社 処理分散制御装置、処理分散制御方法および処理分散制御プログラム
CN108052390B (zh) * 2017-11-30 2021-11-16 努比亚技术有限公司 基于线程阻塞的内存清理方法、移动终端及可读存储介质
CN107861817B (zh) * 2017-11-30 2021-11-16 努比亚技术有限公司 基于线程阻塞的内存优化方法、移动终端及可读存储介质
CN113254225A (zh) * 2021-05-26 2021-08-13 北京沃东天骏信息技术有限公司 一种数据同步方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260962A (ja) * 1990-06-14 1992-09-16 Fujitsu Ltd 並列計算機における同期制御方式
JPH0944366A (ja) * 1995-07-28 1997-02-14 Oki Electric Ind Co Ltd マルチスレッド・スケジューリング装置
JP2006065453A (ja) * 2004-08-25 2006-03-09 Matsushita Electric Ind Co Ltd データ処理装置
JP2010079504A (ja) * 2008-09-25 2010-04-08 Mitsubishi Electric Information Systems Corp 分散処理装置、分散処理システム、分散処理方法および分散処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
US4207687A (en) * 1977-05-09 1980-06-17 The Singer Company Simulator complex data transmission method and system
AU657685B2 (en) 1990-06-14 1995-03-23 Fujitsu Limited A synchronization control system in a parallel computer
JPH06309200A (ja) * 1991-04-10 1994-11-04 Internatl Business Mach Corp <Ibm> ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
JPH0619785A (ja) 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
JP3764893B2 (ja) * 2003-05-30 2006-04-12 富士通株式会社 マルチプロセッサシステム
JP2005004474A (ja) 2003-06-11 2005-01-06 Digital Dream:Kk 意味づけされた情報要素を分散管理する情報ストレージシステムの構成方法
US7523220B2 (en) 2003-09-17 2009-04-21 Microsoft Corporation Metaspace: communication middleware for partially connected mobile ad hoc networks
US7487317B1 (en) * 2005-11-03 2009-02-03 Sun Microsystems, Inc. Cache-aware scheduling for a chip multithreading processor
US7490327B1 (en) * 2008-05-15 2009-02-10 International Business Machines Corporation System and method for programmatic distributed transaction commit prioritization mechanism

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260962A (ja) * 1990-06-14 1992-09-16 Fujitsu Ltd 並列計算機における同期制御方式
JPH0944366A (ja) * 1995-07-28 1997-02-14 Oki Electric Ind Co Ltd マルチスレッド・スケジューリング装置
JP2006065453A (ja) * 2004-08-25 2006-03-09 Matsushita Electric Ind Co Ltd データ処理装置
JP2010079504A (ja) * 2008-09-25 2010-04-08 Mitsubishi Electric Information Systems Corp 分散処理装置、分散処理システム、分散処理方法および分散処理プログラム

Also Published As

Publication number Publication date
WO2012144012A1 (ja) 2012-10-26
US20140053162A1 (en) 2014-02-20
US9690619B2 (en) 2017-06-27
JPWO2012144012A1 (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
JP5780243B2 (ja) スケジューリング方法、およびマルチコアプロセッサシステム
JP2015503784A (ja) グラフィックス処理部における仮想マシン間の移行
JP5408330B2 (ja) マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JP5780296B2 (ja) スレッド処理方法、およびスレッド処理システム
JP5124430B2 (ja) 仮想マシンの移行方法、サーバ、及び、プログラム
WO2012001787A1 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
US20150194198A1 (en) Multi-core processor system, memory controller control method, and computer product
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP5708450B2 (ja) マルチコアプロセッサシステム、レジスタ利用方法、およびレジスタ利用プログラム
JP5518143B2 (ja) 仮想マシンの移行方法、サーバ、プログラム、及び、仮想マシンシステム
US9483101B2 (en) Multicore processor system and power control method
JP5590114B2 (ja) ソフトウェア制御装置、ソフトウェア制御方法、およびソフトウェア制御プログラム
JP5862722B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP4734348B2 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
JP5776776B2 (ja) データ処理システム、およびデータ処理方法
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
JP5505522B2 (ja) プログラム実行方法
JP2012168846A (ja) サーバ装置、処理実行方法およびプログラム
JP2013149108A (ja) 情報処理装置及びその制御方法、プログラム
JPWO2011114495A1 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
KR20080089621A (ko) 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
JP5601414B2 (ja) マルチコアプロセッサシステム、制御方法、および制御プログラム
JP2014174592A (ja) 情報処理装置、装置評価システム、装置評価方法およびコンピュータプログラム
JP2014017013A (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150629

R150 Certificate of patent or registration of utility model

Ref document number: 5780296

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees