JPH10124331A - データ処理方法 - Google Patents

データ処理方法

Info

Publication number
JPH10124331A
JPH10124331A JP27588596A JP27588596A JPH10124331A JP H10124331 A JPH10124331 A JP H10124331A JP 27588596 A JP27588596 A JP 27588596A JP 27588596 A JP27588596 A JP 27588596A JP H10124331 A JPH10124331 A JP H10124331A
Authority
JP
Japan
Prior art keywords
thread
threads
processing
flag
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP27588596A
Other languages
English (en)
Inventor
Ikuko Yoshimoto
郁子 吉本
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering 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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP27588596A priority Critical patent/JPH10124331A/ja
Publication of JPH10124331A publication Critical patent/JPH10124331A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 スレッドの増加によるシステムの資源不足や
性能低下を防止できるデータ処理方法を提供する。 【解決手段】 データ処理システム上で複数のスレッド
により並行処理を行うデータ処理方法である。並列処理
の実行後に、データ処理システムのシステム運用に必要
となる規定値の個数のスレッドを待機状態とし、この規
定値の個数を越えたスレッドを並列処理の実行後に削除
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理方法に
関し、特に、データ処理システムにおいてスレッドの生
成や削除などを管理する方法に関する。
【0002】
【従来の技術】例えばコンピュータを用いたデータ処理
システムにおいて、メインプログラムの実行中に、並行
処理、例えば、メインプログラムの処理と並行して特定
の関数を実行する場合がある。上記並行処理は、例えば
スレッドを用いて行われる。このスレッドを用いる場
合、一度生成したスレッドを削除することなく再利用す
ることで、スレッドの生成時間を短縮・削減し、システ
ムにおける処理の高速化を図ることも試みられている。
このような技術については、例えば特開平4−2313
7号や特開平6−318191号公報などに開示されて
いる。このようなスレッドを用いた従来のデータ処理の
一例を、図6〜図8を用いて以下に説明する。
【0003】まず、図6において、リサイクル可能なス
レッドの個数をチェックする(ステップS31)。この
ような個数チェックは、図8のリサイクルスレッドカウ
ントGのカウント値から判別できる。そして、この個数
が0の場合には、リサイクル可能なスレッドが存在しな
いことから、ステップS36以降の処理に移行し、スレ
ッドの生成処理を行う。一方、上記の個数が0でなく、
リサイクル可能なスレッドが存在する場合は、スレッド
管理テーブルの先頭から各スレッドの使用/未使用フラ
グBを順次チェックし、これらの使用/未使用フラグの
状態をチェックする(ステップS32)。
【0004】そして、使用/未使用フラグがオフで未使
用のスレッドがある場合は、そのスレッドの使用/未使
用フラグをオン、つまり使用中にし(ステップS3
3)、また、図8の処理データDに処理に必要なデータ
をセット(ステップS34)する。さらに、図8のスレ
ッド番号(ハンドル値)Aに基づいてスレッドの再開処
理を行う(ステップS35)。
【0005】一方、使用/未使用フラグがオフで未使用
のスレッドが存在しない場合は、テーブルの先頭から上
記のリサイクル可能なスレッド個数分だけ飛ばした位置
にある、スレッド管理テーブル上の空きエリアを確保
し、この空きエリアにおける使用/未使用フラグを使用
中とする(ステップS36)。また、この空きエリア
に、スレッド番号として、スレッド管理テーブルの先頭
から何番目のエリアであったかをセットする(ステップ
S37)。そして、上記のようにスレッドが生成され、
リサイクル可能なスレッド数が増えたことから、図8の
リサイクルスレッドカウントGを+1する(ステップS
38)。
【0006】次に、上記でセットしたエリアをスレッド
とメインプログラムとの共用メモリに指定するため、ス
レッド生成時において指定する共用メモリアドレスとし
て、データをセットしたスレッド管理テーブル内のエリ
アのアドレスを、図8のEのアドレスに割り当てる(ス
テップS39)。これにより、スレッドの生成処理が完
了し、その後、ステップS34とステップS35の処理
を行ってスレッドの実行の指示をする。
【0007】ここで、共用メモリは、スレッドが参照し
て動作するためのものである。そして、スレッドを必要
とする場合には、管理テーブルから未使用のスレッドを
検索し、未使用スレッドに該当する管理テーブル内のエ
リアの使用/未使用フラグを使用中とし、スレッドの動
作に必要なデータを所定のエリア内にセットし、その
後、親スレッドが動作のトリガとして、そのスレッドの
リジウムを行い、処理動作を指示する。また、スレッド
は、割り当てられた親スレッドとの共用メモリエリアか
ら必要なデータを取得し、動作を開始する。さらに、こ
の共用メモリを書き替えることで、親スレッドはスレッ
ドに対して所定の動作を指示し実行させることができ
る。
【0008】また、図7は、スレッドにおける並行処理
の手順を示したもので、スレッドは、スレッド用プログ
ラムを取り込んで並行処理の実行を開始する。まず、ス
レッドは、その生成後すぐに、それ自身をサスペンドし
て待機状態とする(ステップS42)。なお、サスペン
ドとは、スレッドを中断して再開可能な待機状態にする
ことをいう。そして、スレッドは、上記のような再開の
指示があった場合、共用メモリFから処理データを取得
し、並行処理を実行する(ステップS43)。さらに、
並行処理実行後は、処理データエリアをクリアし、使用
/未使用フラグBを未使用にセットし、再び待機状態に
なる(ステップS42)。
【0009】以上のようにして、全てのスレッドがリサ
イクル可能なスレッドとなり、また、使用されないとき
には常に待機状態となる。さらに、スレッドの削除は、
システムのシャットダウン時までは行われない。
【0010】
【発明が解決しようとする課題】ところで、上記のよう
なデータ処理システムにおいてシステムに負担がかかっ
た場合には、当然のことながら、スレッドの個数が通常
のシステム運用時の個数よりも増大する。そして、上記
従来の方法の場合、スレッドの個数は、例えば、図9の
ように、通常運用時の個数よりも増加する。
【0011】ところが、この従来は、スレッドの個数が
増大した後に通常の運用に戻った場合、図9のようにス
レッドの個数が増大したままとなる。このため、使用さ
れない複数のスレッドが待機状態となって、システムの
資源を無駄に使用し続けるという問題があった。
【0012】また、スレッドは、待機状態であっても、
非常に少ない値ではあるがCPU時間を消費する。よっ
て、上記従来の手法では、システムに負荷がかかった後
に通常の運用に戻った際、待機状態のスレッドによるC
PU時間の消費量が増加してしまう。このため、通常の
運用に戻った際の運転時におけるシステムの処理性能の
低下を招くという問題もあった。
【0013】本発明は、上記のようなスレッドの増加に
よるシステムの資源不足や性能低下を防止できる、改良
されたデータ処理方法を提供することを課題としてい
る。
【0014】
【課題を解決するための手段】本発明のデータ処理方法
は、所定のデータ処理システム上で複数のスレッドによ
り並行処理を行うデータ処理方法において、並列処理の
実行後に、前記データ処理システムのシステム運用に必
要となる規定値の個数のスレッドを並行処理が再開可能
な待機状態とし、前記規定値の個数を越えたスレッドを
並列処理の実行後に削除することを特徴とする。
【0015】ここで、システム運用に必要となる規定値
の個数とは、システム上における通常の運用において使
用する任意の個数ないし規定値を意味する。このような
規定値は、システムに応じて変化するものであり、シス
テムに応じた任意の値とすれば良い。
【0016】つまり、本発明では、並行処理後における
待機スレッドの数がシステム運用に必要なスレッド(運
用スレッド)の数よりも多い場合には、待機スレッドの
数を運用スレッドの数まで削減するようにしたものであ
る。
【0017】上記のような並行処理実行後におけるスレ
ッドの削除を行うため、例えば、並列処理に使用される
各スレッドに対して所定のスレッド番号を順次設定する
とともに並行処理の実行直後に各スレッドのスレッド番
号と前記規定値とを比較し、スレッド番号が前記規定値
より大きいスレッドは削除し、スレッド番号が前記規定
値以下であるスレッドは前記待機状態とする、手順が用
いられる。
【0018】
【発明の実施の形態】以下に、本発明のデータ処理方法
の実施の形態を説明する。図1は、本発明が適用される
データ処理システムにおける処理の概要を示したもので
ある。そして、このメインプログラムの実行中におい
て、複数のスレッドにより並行処理を行う必要が生じた
場合には、メインプログラムにおいては以下に説明する
処理Aが、また各スレッド(スレッド1〜スレッドn)
においては以下に説明する処理Bがそれぞれ行われる。
【0019】まず、データ処理システムのメインプログ
ラムにおける処理Aについて、つまり、メインプログラ
ムにおけるスレッド管理処理について、図2を参照して
説明する。この処理は、次の(1)〜(4)のように行
われる。 (1) 並行処理が必要となった時は、リサイクルスレ
ッドカウントが0であるかをチェックするとともに、リ
サイクルスレッドが存在するかどうかをチェックする
(ステップS1)。
【0020】なお、リサイクルスレッドカウンタは、例
えば、図4に符号Gとして例示したように、データ処理
システムの所定のスレッド管理テーブルに設定されるも
ので、スレッド管理テーブル内におけるリサイクル可能
なスレッドの数を示すものである。また、このスレッド
管理テーブルには、このテーブルが管理しているスレッ
ドの数に対応するだけの共用メモリFがあり、各共用メ
モリFは、スレッド番号(ハンドル値)A、使用/未使
用フラグB、待機フラグC、処理データDがそれぞれ設
定されている。
【0021】ここで、スレッド番号Aは、スレッド管理
テーブルにおいて管理されるスレッドに対して順次設定
される番号を示したものである。また、使用/未使用フ
ラグBは、各スレッドの使用状態を示すためのものであ
る。さらに、待機フラグCは、そのスレッドが生成直後
ではなくてリサイクル可能なスレッドであることを示す
ためのものである。さらに、処理データDは、メインプ
ログラムから並行処理に必要なデータをスレッドへ提供
するためのものである。
【0022】そして、リサイクルカウンタが0であった
場合、つまり、リサイクルスレッドが存在しない場合に
は、以下の(4)の処理に進み、スレッドの生成処理を
行う。また、リサイクルカウンタが0でない場合には、
以下の(2)の処理に進み、利用可能なリサイクルスレ
ッドが存在するかどうかのチェックを行う。
【0023】(2) リサイクルスレッドカウントに対
応する数のスレッド管理テーブル内の使用/未使用フラ
グBをチェックする(ステップS2)。そして、未使用
のリサイクルスレッドがない場合は、下記(4)のスレ
ッド生成処理に進む。また、未使用のリサイクルスレッ
ドがある場合は、以下の(3)のリサイクルスレッドを
利用した処理へ進む。
【0024】(3) リサイクルスレッドの利用は、ま
ず、使用しようとしているスレッドの共用メモリに指定
される管理テーブルの待機フラグCをオンにする(ステ
ップS3)。次に、使用/未使用フラグBをオンにして
使用中とし(ステップS4)、並行処理に必要なデータ
を処理データDにセットし(ステップS5)、スレッド
を再開させる(ステップS6)。すると、スレッドは、
ステップS29より待機状態から解かれて再開され、図
3に示したリサイクル処理(S29)が行われる。
【0025】(4)スレッドの生成処理は次のように行
われる。まず、使用しようとしているスレッドの共用メ
モリFの待機フラグCをオフにする(ステップS7)。
次に、その共用メモリFにおける使用/未使用フラグB
を使用中とする(ステップS8)。さらに、スレッド管
理テーブルの共有メモリFのスレッド番号Aをスレッド
番号Aを設定し、またた並行処理に必要なデータを処理
データDにセットする(ステップS9)。次に、今後こ
のスレッドをリサイクルスレッドとして利用するかどう
かの判断として、スレッド番号Aが、データ処理システ
ムにおいて通常使用するスレッド数(規定値)より大き
いかをチェックし(ステップS10)、小さい場合はリ
サイクルスレッドとして利用することから、スレッド管
理テーブルのリサイクルスレッドカウントGを+1する
(ステップS11)。そして、スレッド管理テーブルの
上記で設定およびセットを行ったエリアの共用メモリF
をメインプログラムとスレッドとの共用メモリに指定し
て、スレッドの生成を行う(ステップS12)。なお、
このようにして生成されたスレッドは、図3のステップ
S21から処理を開始する。
【0026】次に、各スレッド内での処理を、図3によ
り説明する。この処理は、スレッドの生成直後における
処理と、スレッドのリサイクル時における処理の2つに
分かれる。
【0027】まず、スレッドの生成直後におけるスレッ
ド内での処理は次の通りである。最初に、スレッド生成
処理として、スレッド用プログラムが取り込まれ、スレ
ッド生成処理が開始される(ステップS21)。次い
で、共用メモリFを参照して、待機フラグCがオンであ
るかどうかをチェックする(ステップS22)。ここ
で、スレッド生成直後においてはそのスレッドに対応す
る待機フラグCはオフになっている。そして、次に、共
用メモリFから処理データDを取得し、並行処理を実行
する処理が行われる(ステップS25)。
【0028】次いで、共用メモリFのスレッド番号Aが
通常のシステム運用時におけるスレッド数の規定値より
小さいかどうかをチェックする(ステップS26)。そ
して、スレッド番号Aが規定値よりも大きい場合は、そ
の共用メモリFにおける使用/未使用フラグB、待機フ
ラグC、並びに処理データDがそれぞれクリアされ、終
了する(ステップS28)。なお、使用/未使用フラグ
Bをクリアすることは、この共用メモリFを未使用にす
ることを意味する。また、処理データDをクリアするこ
とは、そのスレッドを削除することを意味する。
【0029】また、スレッド番号が規定値よりも小さい
か、または同じであった場合は、その共用メモリFにお
ける待機フラグCをオンにして(ステップS27)、ス
テップS22に処理が移行する。そして、ステップS2
2では、待機フラグCがオンであるので、リサイクル処
理であるステップS23、つまり、処理データDのクリ
アと使用/未使用フラグBを未使用にセットする処理が
行われる。次いで、ステップS24において、そのスレ
ッドはそれ自身をサスペンドして待機状態となる。
【0030】次に、スレッドのリサイクル時における処
理を説明する。この処理は、次の(11)〜(12)の
ように行われる。
【0031】(11) すなわち、リサイクル時におい
ては、スレッドはステップS29のサスペンドして待機
している状態から始まる。そして、メインプログラムか
ら待機が解除されるので、共用メモリFから処理データ
Dを取得し、並行処理を実行する(ステップS25)。
【0032】(12) 次いで、共用メモリのスレッド
番号Aが通常のシステム運用時におけるスレッド数の規
定値より小さいかどうかをチェックする(ステップS2
6)。そして、スレッド番号Aがこの規定値よりも以下
であるので、共用メモリFの待機フラグCをオンにして
(ステップS27)、ステップS22に処理を移す。そ
して、ステップS22において、待機フラグCがオンで
あるので、リサイクル処理であるステップS23とステ
ップS24が行われる。
【0033】以上のように構成されるこの実施の形態の
データ処理方法では、システムに負荷が発生して一時的
にスレッド個数が図5のIのように増大しても、並列処
理の終了後は、図5でIIのように通常のシステム運用
に必要なスレッド以外は削除され、これら必要なスレッ
ドのみ待機状態となりリサイクル可能なスレッドとな
る。
【0034】このため、従来のように必要のないスレッ
ドが待機状態でいるために使用されるCPU時間の消費
が削減されて、負荷発生後におけるシステムの性能低下
が防止できる。また、無駄なスレッドが生成され存在し
続けることで使用されるシステム資源の無駄使いがなく
なる、システムの有効な資源確保が行える。さらに、シ
ステムで正常時に必要なスレッドの数のスレッドを待機
状態でリサイクルする構成であるので、その分のスレッ
ドの生成や削除にかかる時間が削減されてシステムの性
能向上が図れる。
【0035】
【発明の効果】以上の説明から明らかなように、本発明
によれば、スレッドの増加によるシステムの資源不足や
性能低下が抑制される効果がある。
【図面の簡単な説明】
【図1】本発明が適用されるデータ処理システムにおけ
る処理の概要を示した説明図。
【図2】実施の形態のデータ処理システムにおけるスレ
ッド管理処理を示したフローチャート。
【図3】実施の形態のデータ処理システムにおける各ス
レッド内での処理を示したフローチャート。
【図4】実施の形態のデータ処理システムにおけるスレ
ッド管理テーブルの説明図。
【図5】実施の形態のデータ処理システムにおけるスレ
ッド数の推移を示した説明図。
【図6】従来のデータ処理システムにおける処理を説明
したフローチャート。
【図7】従来のデータ処理システムにおける処理を説明
したフローチャート。
【図8】従来のデータ処理システムにおけるスレッド管
理テーブルの説明図。
【図9】従来のデータ処理システムにおけるスレッド数
の推移の説明図。
【符号の説明】
Aスレッド番号 B 使用/未使用フラグ C 待機フラグ D処理データ Gリサイクルスレッドカウンタ F 共用メモリ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 所定のデータ処理システム上で複数のス
    レッドにより並行処理を行うデータ処理方法において、 並列処理の実行後に、前記データ処理システムのシステ
    ム運用に必要となる規定値の個数のスレッドを並行処理
    が再開可能な待機状態とし、前記規定値の個数を越えた
    スレッドを並列処理の実行後に削除することを特徴とす
    るデータ処理方法。
  2. 【請求項2】 並列処理に使用される各スレッドに対し
    て所定のスレッド番号を順次設定するとともに並行処理
    の実行直後に各スレッドのスレッド番号と前記規定値と
    を比較し、スレッド番号が前記規定値より大きいスレッ
    ドは削除し、スレッド番号が前記規定値以下であるスレ
    ッドは前記待機状態とすることを特徴とする請求項1記
    載のデータ処理方法。
JP27588596A 1996-10-18 1996-10-18 データ処理方法 Pending JPH10124331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27588596A JPH10124331A (ja) 1996-10-18 1996-10-18 データ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27588596A JPH10124331A (ja) 1996-10-18 1996-10-18 データ処理方法

Publications (1)

Publication Number Publication Date
JPH10124331A true JPH10124331A (ja) 1998-05-15

Family

ID=17561801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27588596A Pending JPH10124331A (ja) 1996-10-18 1996-10-18 データ処理方法

Country Status (1)

Country Link
JP (1) JPH10124331A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137115B2 (en) 2000-01-25 2006-11-14 Fujitsu Limited Method for controlling multithreading

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137115B2 (en) 2000-01-25 2006-11-14 Fujitsu Limited Method for controlling multithreading

Similar Documents

Publication Publication Date Title
US20010010052A1 (en) Method for controlling multithreading
US6952793B2 (en) Computer system and methods for acquiring dump information and system recovery
JPH07219665A (ja) システムの状態を中断し、再開する方法およびそれができるコンピュータ装置
US8464269B2 (en) Handling and reporting of object state transitions on a multiprocess architecture
JP2007018282A (ja) プロセス制御システム及びその制御方法
US20220350668A1 (en) Function parallelism in a runtime container of a function-as-a-service (faas) system
JPH07311749A (ja) マルチプロセッサシステム及びカーネル置換方法
US7010725B2 (en) Method and apparatus for getting dump of a computer system
US20050028159A1 (en) Memory managing system and task controller in multitask system
CN112764822A (zh) 操作系统启动方法、装置、设备及介质
JP2000242484A (ja) 制御プログラムの変更方法
US20010037425A1 (en) Interrupt processing method in an operation processing device and the device using the same
WO2026081588A1 (zh) 低秩适配器热更新方法、装置、存储介质及电子设备
JPH10124331A (ja) データ処理方法
US20030140082A1 (en) Patch processing system and method
JPH08190491A (ja) タスク切り換え方法
JP2822728B2 (ja) コンピュータシステム
JP2851039B2 (ja) ワークステーションバックアップシステム
JPH10232855A (ja) 並列ジョブ実行システムおよび記録媒体
CN117742892A (zh) 一种对象内存回收方法、装置、设备及存储介质
GB2362246A (en) Computer system with checkpoint facility.
JPH056302A (ja) メモリ管理方式
JPS63128442A (ja) 周期起動タスク制御装置
JPH05224941A (ja) アプリケーション・プログラム制御方式
JPH03233634A (ja) 業務再処理方式