JPH04195577A - マルチプロセッサにおけるタスクスケジューリング方式 - Google Patents
マルチプロセッサにおけるタスクスケジューリング方式Info
- Publication number
- JPH04195577A JPH04195577A JP2327627A JP32762790A JPH04195577A JP H04195577 A JPH04195577 A JP H04195577A JP 2327627 A JP2327627 A JP 2327627A JP 32762790 A JP32762790 A JP 32762790A JP H04195577 A JPH04195577 A JP H04195577A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processing device
- processing
- buffer storage
- control block
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、バッファ記憶装置を持つマルチプロセッサに
おけるオペレーティングシステムの制御方式に関する。
おけるオペレーティングシステムの制御方式に関する。
[従来の技術]
高い処理性能が要求される今日の大規模計算機システム
においては、主記憶装置をいくつかの処理装置によって
共有する密結合マルチプロセッサ構成を採用することが
多い。このようなマルチプロセッサシステムでは、シス
テム内に存在する複数のタスクをシステム内の処理装置
によって実行するため処理装置に対して処理を割当てる
方式として、処理単位ごとに処理装置に対して負荷に応
じて割当てる負荷分散方式、また1つあるいは複数の専
用化された処理装置においてシステム内の特定の処理を
集中処理する機能分散方式などが知られているが、上記
の密結合マルチプロセッサ構成では、処理装置をビジー
率1. O0%まで容易に使用可能な負荷分散方式が一
般的に用いられる。
においては、主記憶装置をいくつかの処理装置によって
共有する密結合マルチプロセッサ構成を採用することが
多い。このようなマルチプロセッサシステムでは、シス
テム内に存在する複数のタスクをシステム内の処理装置
によって実行するため処理装置に対して処理を割当てる
方式として、処理単位ごとに処理装置に対して負荷に応
じて割当てる負荷分散方式、また1つあるいは複数の専
用化された処理装置においてシステム内の特定の処理を
集中処理する機能分散方式などが知られているが、上記
の密結合マルチプロセッサ構成では、処理装置をビジー
率1. O0%まで容易に使用可能な負荷分散方式が一
般的に用いられる。
負荷分散方式を用いた上記システムでは、ソフトウェア
の処理単位であるタスクを順にシステムの処理待ちキュ
ーにキューイングしておき、空きとなった処理装置がこ
の処理待ちキューをサーチして実行可能なタスクが存在
すればそれを選択し実行する(以下このような選択、実
行をディスパッチという)タスクディスパッチングアル
ゴリズムによって上記の負荷分散を実現している。この
ような制御方式を用いたとき、1つのタスクに着目した
場合、該タスクがシステム内のある処理装置上で実行さ
れているときに、割込みなどの外部要因や、O8機能の
呼出し等のタスク処理にともなって発生する内部要因な
どによって実行を中断されたとする。O8にて必要な処
理を行なった後、新たなタスクを実行するときに、従来
は新たに実行されるタスクはその処理装置において前に
実行していたタスクとは無関係に決定される。また1つ
のタスクが実行を開始してから実行が中断されるまでの
時間はタスクの性質とシステムの状態の両方に依存し、
一定の値とはならない。
の処理単位であるタスクを順にシステムの処理待ちキュ
ーにキューイングしておき、空きとなった処理装置がこ
の処理待ちキューをサーチして実行可能なタスクが存在
すればそれを選択し実行する(以下このような選択、実
行をディスパッチという)タスクディスパッチングアル
ゴリズムによって上記の負荷分散を実現している。この
ような制御方式を用いたとき、1つのタスクに着目した
場合、該タスクがシステム内のある処理装置上で実行さ
れているときに、割込みなどの外部要因や、O8機能の
呼出し等のタスク処理にともなって発生する内部要因な
どによって実行を中断されたとする。O8にて必要な処
理を行なった後、新たなタスクを実行するときに、従来
は新たに実行されるタスクはその処理装置において前に
実行していたタスクとは無関係に決定される。また1つ
のタスクが実行を開始してから実行が中断されるまでの
時間はタスクの性質とシステムの状態の両方に依存し、
一定の値とはならない。
もう一つの本発明の背景となる従来技術としてバッファ
記憶装置に関する技術がある。今日計算機で処理される
処理の増加に伴い、計算機に要求される主記憶装置の容
量は著しく増大している。
記憶装置に関する技術がある。今日計算機で処理される
処理の増加に伴い、計算機に要求される主記憶装置の容
量は著しく増大している。
しかしながら、主記憶素子に用いられる半導体メモリ素
子の容量は一般にメモリ素子の速度及び消費電力と相反
する関係にあり、処理装置の高速に対応した高速なメモ
リ素子を多数使用することはコスト面、スペース面、消
費電力のいずれにおいても得策ではない。このため、処
理装置内部に高速かつ小容量のバッファ記憶装置を持ち
、低速かつ大容量の主記憶装置に対する主記憶アクセス
をバイパスすることによって等価的に改善する構成が一
般的である。このようなバッファ記憶装置は主記憶素子
に比べて小容量かつ高速の素子を用いており、全体の容
量も小さなものである。このようなバッファ記憶装置は
プログラムの用いるデータは短期的にはメモリ空間のあ
る特定の部位に集中して発生するというプログラムの性
質に依存しており、このようなバッファ記憶装置では読
み込んだデータを再利用しつつ新たに必要となったデー
タと入れ換えながら使用する。具体的には、バッファ記
憶装置内のデータのうち、゛その時点で用いているデー
タをバッファ記憶装置内に読み込み、使用していないデ
ータを捨てる、ないしは主記憶に対して書き戻して小さ
なバッファ記憶装置によってメモリ空間の全体を扱うよ
うにする。また、特に高速なシステムにおいては、処理
装置と主記憶装置の速度に大きな非難が生じるため、処
理装置内のバッファ記憶装置と主記憶装置の間に速度差
を緩和するための中間のバッファ記憶装置を置く構成も
知られている。このような構成の公知な例としては、特
許公報特公昭62−9942、特公昭61−5034.
2、特開昭64−51543などがある。
子の容量は一般にメモリ素子の速度及び消費電力と相反
する関係にあり、処理装置の高速に対応した高速なメモ
リ素子を多数使用することはコスト面、スペース面、消
費電力のいずれにおいても得策ではない。このため、処
理装置内部に高速かつ小容量のバッファ記憶装置を持ち
、低速かつ大容量の主記憶装置に対する主記憶アクセス
をバイパスすることによって等価的に改善する構成が一
般的である。このようなバッファ記憶装置は主記憶素子
に比べて小容量かつ高速の素子を用いており、全体の容
量も小さなものである。このようなバッファ記憶装置は
プログラムの用いるデータは短期的にはメモリ空間のあ
る特定の部位に集中して発生するというプログラムの性
質に依存しており、このようなバッファ記憶装置では読
み込んだデータを再利用しつつ新たに必要となったデー
タと入れ換えながら使用する。具体的には、バッファ記
憶装置内のデータのうち、゛その時点で用いているデー
タをバッファ記憶装置内に読み込み、使用していないデ
ータを捨てる、ないしは主記憶に対して書き戻して小さ
なバッファ記憶装置によってメモリ空間の全体を扱うよ
うにする。また、特に高速なシステムにおいては、処理
装置と主記憶装置の速度に大きな非難が生じるため、処
理装置内のバッファ記憶装置と主記憶装置の間に速度差
を緩和するための中間のバッファ記憶装置を置く構成も
知られている。このような構成の公知な例としては、特
許公報特公昭62−9942、特公昭61−5034.
2、特開昭64−51543などがある。
このようなバッファ記憶装置を持つシステムでは、処理
装置の求めるデータがバッファ記憶装置内にあり、参照
あるいは更新がバッファ記憶装置を介して行うことがで
きたとき(以下1NBSであるという)には高速に動作
可能であるが、バッファ記憶装置内に求めるデータがバ
ッファされていなかった時(以下、NiB5であるとい
う)には低速な主記憶装置を起動して所定のデータを参
照あるいは更新する必要がある。このため処理に要する
時間はバッファされていた場合に比べ数倍から数十倍必
要となる。したがって性能を高めるためには主記憶参照
時に1NBsとなる割合を高めることが重要であり、こ
のための技術方式はキャッシュ技術方式の中心課題とし
て、これまでも様々な検討が行われている。最近の公報
では、特許公報特開平1−133 ]、 62は、特定
のデータをバッファ記憶にとり込まないように制御する
技術を開示している。また、特開平1−205250で
はバッファ記憶に階層構成を取り入れる場合の技術を開
示している。
装置の求めるデータがバッファ記憶装置内にあり、参照
あるいは更新がバッファ記憶装置を介して行うことがで
きたとき(以下1NBSであるという)には高速に動作
可能であるが、バッファ記憶装置内に求めるデータがバ
ッファされていなかった時(以下、NiB5であるとい
う)には低速な主記憶装置を起動して所定のデータを参
照あるいは更新する必要がある。このため処理に要する
時間はバッファされていた場合に比べ数倍から数十倍必
要となる。したがって性能を高めるためには主記憶参照
時に1NBsとなる割合を高めることが重要であり、こ
のための技術方式はキャッシュ技術方式の中心課題とし
て、これまでも様々な検討が行われている。最近の公報
では、特許公報特開平1−133 ]、 62は、特定
のデータをバッファ記憶にとり込まないように制御する
技術を開示している。また、特開平1−205250で
はバッファ記憶に階層構成を取り入れる場合の技術を開
示している。
さらに、本発明の背景となる従来技術に、密結合マルチ
プロセッサにおけるバッファ記憶の一致制御技術がある
。バッファ記憶装置は主記憶の写しであり、複数台の処
理装置から同じ主記憶領域に対して更新を行った際、主
記憶の更新を矛盾なく行なうとともにバッファ記憶装置
の内容を更新しなければならない。これに関する従来技
術として、特許公報特公昭57−33627にはメモリ
のアクセスを上記観点のもとに制御する装置の構成法が
開示されている。また、特許公報特公昭51−3617
9、特公昭5]−49535、特公昭53−25457
及び特公昭57−33623では、他バッファ記憶装置
に操作を行おうとする主記憶データがバッファされてい
たとき、そのデータをバッファ記憶装置間で転送する各
種の技術が開示されている。また特許公報特開昭62−
125250には、ソフトウェアによって明示的にバッ
ファ記憶の一致制御を行なう構成法が開示されている。
プロセッサにおけるバッファ記憶の一致制御技術がある
。バッファ記憶装置は主記憶の写しであり、複数台の処
理装置から同じ主記憶領域に対して更新を行った際、主
記憶の更新を矛盾なく行なうとともにバッファ記憶装置
の内容を更新しなければならない。これに関する従来技
術として、特許公報特公昭57−33627にはメモリ
のアクセスを上記観点のもとに制御する装置の構成法が
開示されている。また、特許公報特公昭51−3617
9、特公昭5]−49535、特公昭53−25457
及び特公昭57−33623では、他バッファ記憶装置
に操作を行おうとする主記憶データがバッファされてい
たとき、そのデータをバッファ記憶装置間で転送する各
種の技術が開示されている。また特許公報特開昭62−
125250には、ソフトウェアによって明示的にバッ
ファ記憶の一致制御を行なう構成法が開示されている。
[発明が解決しようとする課題]
従来例で説明した負荷分散制御を行なう密結合マルチプ
ロセッサシステムにおいては、1つのタスクに着目する
と、そのタスクが外的要因、あるいはタスク処理に伴な
う要因(O3機能の呼出しなど)によって実行を中断し
た時点では、そのタスクがそれまで実行していた処理装
置、あるいは系のバッファ記憶装置にはそのタスクの使
用する主記憶領域がバッファされている。一方そのタス
クが再び実行可能となった場合には、従来技術において
は前に実行していた処理装置とは特に関係なく処理装置
が選ばれ実行される。このため、そのタスクの実行を実
行する処理装置が以前そのタスクを実行した処理装置(
以下前実行装置と呼ぶ)と異なる場合、前実行装置内に
バッファされているそのタスクの残存データは無駄にな
るばかりでなく、そのタスクが他処理装置で実行された
場合に、そのタスクの使用領域に対する書き込みなどに
ともなって主記憶とバッファ記憶装置の内容を一致させ
る処理、具体的には従来技術の項で上げた処理を実行す
る必要があるため、前実行装置の実行性能が低下すると
いう2つの問題がある。
ロセッサシステムにおいては、1つのタスクに着目する
と、そのタスクが外的要因、あるいはタスク処理に伴な
う要因(O3機能の呼出しなど)によって実行を中断し
た時点では、そのタスクがそれまで実行していた処理装
置、あるいは系のバッファ記憶装置にはそのタスクの使
用する主記憶領域がバッファされている。一方そのタス
クが再び実行可能となった場合には、従来技術において
は前に実行していた処理装置とは特に関係なく処理装置
が選ばれ実行される。このため、そのタスクの実行を実
行する処理装置が以前そのタスクを実行した処理装置(
以下前実行装置と呼ぶ)と異なる場合、前実行装置内に
バッファされているそのタスクの残存データは無駄にな
るばかりでなく、そのタスクが他処理装置で実行された
場合に、そのタスクの使用領域に対する書き込みなどに
ともなって主記憶とバッファ記憶装置の内容を一致させ
る処理、具体的には従来技術の項で上げた処理を実行す
る必要があるため、前実行装置の実行性能が低下すると
いう2つの問題がある。
本発明は、上記問題点を解決するため、バッファ記憶の
効率を最適にするようタスクを実行する処理装置を選択
する技術手段を与えることを目的とする。
効率を最適にするようタスクを実行する処理装置を選択
する技術手段を与えることを目的とする。
[課題を解決するための手段]
本発明では、上記問題を解決するため、あるタスクをあ
る処理装置に対して割り付ける際、そのタスクをその処
理装置に割り付ける場合の各処理装置でのバッファ記憶
装置の利用効率を評価し、その結果に基づいてタスクを
割り付けるべき処理装置を決定する技術手段を提供する
。これを実現するため、タスク割り付けの際に以下2つ
の技術手段を用いる。
る処理装置に対して割り付ける際、そのタスクをその処
理装置に割り付ける場合の各処理装置でのバッファ記憶
装置の利用効率を評価し、その結果に基づいてタスクを
割り付けるべき処理装置を決定する技術手段を提供する
。これを実現するため、タスク割り付けの際に以下2つ
の技術手段を用いる。
■あるタスクの使用する領域がある処理装置のバッファ
記憶装置内にどれだけ存在するかを直接的、あるいは間
接的方法で推定し、その値があるしきい値以上ならばそ
の処理装置に対してそのタスクを割り当てる。
記憶装置内にどれだけ存在するかを直接的、あるいは間
接的方法で推定し、その値があるしきい値以上ならばそ
の処理装置に対してそのタスクを割り当てる。
■すべての処理装置に対して■で調べたバッファ記憶装
置内のそのタスクの使用する領域が上記しきい値以下な
らば、そのタスクを任意の空きである処理装置に割当て
る。
置内のそのタスクの使用する領域が上記しきい値以下な
らば、そのタスクを任意の空きである処理装置に割当て
る。
第1の項目はバッファ記憶装置を有効に活用するため、
第2の項目は、負荷分散を速やかに行なうための処理で
ある。この方法を用いるにあたっては、各処理装置中の
バッファ記憶装置内に、あるタスクに属するデータがど
れだけ残っているかを評価値として知る直接的、あるい
は間接的方法が必要となる。このとき、上記戦略を有効
に機能させるために必要な評価値とは、バッファ記憶装
置内のデータの量ではなく、複数のバッファ記憶装置間
での比較を行なうことのできる指標である。
第2の項目は、負荷分散を速やかに行なうための処理で
ある。この方法を用いるにあたっては、各処理装置中の
バッファ記憶装置内に、あるタスクに属するデータがど
れだけ残っているかを評価値として知る直接的、あるい
は間接的方法が必要となる。このとき、上記戦略を有効
に機能させるために必要な評価値とは、バッファ記憶装
置内のデータの量ではなく、複数のバッファ記憶装置間
での比較を行なうことのできる指標である。
評価値の算出は評価情報に基づいて行う。本発明では評
価値の算出のために以下2つのいずれかの技術手段を用
いる。
価値の算出のために以下2つのいずれかの技術手段を用
いる。
■専用ハードウェアインターフェースを設け、直接デー
タ量をハードウェアから調べ、この情報を評価情報とし
て評価値を算出する。。
タ量をハードウェアから調べ、この情報を評価情報とし
て評価値を算出する。。
■そのタスクが当該処理装置において最後に実行された
時刻(中断時刻)を記録し、これを評価情報とし、バッ
ファ記憶装置内のデータの量を中断時刻からの経過時間
とそのタスクの性質をもちいて算呂した評価式を用いて
推定する。評価式の1つの例として、中断時刻からの経
過時刻を用いることができる。
時刻(中断時刻)を記録し、これを評価情報とし、バッ
ファ記憶装置内のデータの量を中断時刻からの経過時間
とそのタスクの性質をもちいて算呂した評価式を用いて
推定する。評価式の1つの例として、中断時刻からの経
過時刻を用いることができる。
また、上記技術手法は以下のように拡張できる。
システム内のタスクに対して、そのうちのいくつかのタ
スクに共通なリソースが存在する場合、そのようなリソ
ースをもちいてタスクの使用するリソースによる類似度
を定義することができる。また、定型化された処理を主
に行なうシステムにおいては、その間の上記のタスク間
類似度はあらかじめ設計者によって設定可能である。こ
のとき、各処理装置において前に実施していたタスクの
時系列と、中断点からのバッファ効率の低下についての
推定式から、割り付けようとするタスクに対して、各処
理装置内のバッファ記憶装置内に有るデータとそのタス
クの使用するデータとの類似度を評価し、それを上記技
術手段における評価値として用いることができる。
スクに共通なリソースが存在する場合、そのようなリソ
ースをもちいてタスクの使用するリソースによる類似度
を定義することができる。また、定型化された処理を主
に行なうシステムにおいては、その間の上記のタスク間
類似度はあらかじめ設計者によって設定可能である。こ
のとき、各処理装置において前に実施していたタスクの
時系列と、中断点からのバッファ効率の低下についての
推定式から、割り付けようとするタスクに対して、各処
理装置内のバッファ記憶装置内に有るデータとそのタス
クの使用するデータとの類似度を評価し、それを上記技
術手段における評価値として用いることができる。
[作用コ
以上の方法を用いて、タスクの割り付けを実施すること
によって、以下2つの利点がある。
によって、以下2つの利点がある。
(1)当該タスクがその処理装置において前に実行され
ていた時にその処理装置内のバッファ記憶装置に読みこ
まれたデータを有効に再利用することができる。また、
当該タスクと共通のデータを使用する別タスクによって
該処理装置のバッファ記憶上に読みこまれたデータを有
効に使用するこができる。このため、バッファ記憶装置
のデータの再利用効率が改善され、バッファ記憶装置に
求めるデータが存在する確率が向上する。
ていた時にその処理装置内のバッファ記憶装置に読みこ
まれたデータを有効に再利用することができる。また、
当該タスクと共通のデータを使用する別タスクによって
該処理装置のバッファ記憶上に読みこまれたデータを有
効に使用するこができる。このため、バッファ記憶装置
のデータの再利用効率が改善され、バッファ記憶装置に
求めるデータが存在する確率が向上する。
(2)選択された処理装置以外の処理装置のバッファ記
憶装置内には当該タスクの使用するデータの量は、その
タスクを実行しようとする処理装置のバッファ記憶装置
内に比べて少ないため、他処理装置に対してのバッファ
記憶−数制御にともなう干渉は少なく抑えられる。
憶装置内には当該タスクの使用するデータの量は、その
タスクを実行しようとする処理装置のバッファ記憶装置
内に比べて少ないため、他処理装置に対してのバッファ
記憶−数制御にともなう干渉は少なく抑えられる。
このため、従来技術の問題のうちタスク割り付けによっ
て発生しており上記課題として記載した問題点は取り除
かれ、該問題点により発生していたバッファ記憶の利用
効率低下に伴なうオーバヘッドが取り除かれる。
て発生しており上記課題として記載した問題点は取り除
かれ、該問題点により発生していたバッファ記憶の利用
効率低下に伴なうオーバヘッドが取り除かれる。
[実施例コ
(1)第一の実施例
以下図面に即し、本発明の第一の実施例を説明する。第
1図は、任意のレディであるタスクを処理装置に割り付
ける処理のフローチャートを示し、第2図は第1図の処
理を実施する計算機システムの例である。第3図は第1
図のアルゴリズムの効果を説明する際に使用する説明図
である。第4図は、この実施例でのタスク制御ブロック
(TCB)キューの構造を示す。タスク制御ブロック(
TCB)キューは主記憶装置、ディスク記憶装置、拡張
記憶装置などに貯蔵されている。第5図は新規に登録さ
れたタスクを第3図で示されるキューに接続し、第1図
で示される処理にて扱うために必要とする前処理のフロ
ーチャートである。第6図は、実行終了したタスクを第
4図で示されるキューから外す後処理である。第7図は
アフイニテイグループを説明する際の説明図である。第
8図は第5図の処理において使用するアフイニテイグル
ープを登録するアフイニティグループ制御テーブルの構
造を示す図である。
1図は、任意のレディであるタスクを処理装置に割り付
ける処理のフローチャートを示し、第2図は第1図の処
理を実施する計算機システムの例である。第3図は第1
図のアルゴリズムの効果を説明する際に使用する説明図
である。第4図は、この実施例でのタスク制御ブロック
(TCB)キューの構造を示す。タスク制御ブロック(
TCB)キューは主記憶装置、ディスク記憶装置、拡張
記憶装置などに貯蔵されている。第5図は新規に登録さ
れたタスクを第3図で示されるキューに接続し、第1図
で示される処理にて扱うために必要とする前処理のフロ
ーチャートである。第6図は、実行終了したタスクを第
4図で示されるキューから外す後処理である。第7図は
アフイニテイグループを説明する際の説明図である。第
8図は第5図の処理において使用するアフイニテイグル
ープを登録するアフイニティグループ制御テーブルの構
造を示す図である。
初めにこの実施例の前提となる第2図の計算機システム
について説明する。このシステムは、2台の処理装置1
〜2を持ち、各処理装置内には各々専用のバッファ記憶
装置(以下BSと呼ぶ)4〜5を持つ。この処理装置1
〜2は1台の主記憶装置3に接続される。処理装置内の
バッファ記憶装置は、以下に説明するように制御される
。
について説明する。このシステムは、2台の処理装置1
〜2を持ち、各処理装置内には各々専用のバッファ記憶
装置(以下BSと呼ぶ)4〜5を持つ。この処理装置1
〜2は1台の主記憶装置3に接続される。処理装置内の
バッファ記憶装置は、以下に説明するように制御される
。
処理装置1が命令を主記憶から読み出す、あるいは命令
を実行するために必要な主記憶空間上のデータを読み呂
す、あるいは主記憶空間内に所定のデータを書き込むと
き(以下この3つの処理を合わせて主記憶アクセスと呼
ぶ)には、まず対象とする主記憶空間のデータの写しが
自処理装置内のBSA内にあるかどうかを検索する。こ
のとき、BSJ内に操作対象となる主記憶領域の写しく
以下簡単にターゲットデータと呼ぶ)が存在していた時
には、BS4に対して主記憶アクセスを行なう。
を実行するために必要な主記憶空間上のデータを読み呂
す、あるいは主記憶空間内に所定のデータを書き込むと
き(以下この3つの処理を合わせて主記憶アクセスと呼
ぶ)には、まず対象とする主記憶空間のデータの写しが
自処理装置内のBSA内にあるかどうかを検索する。こ
のとき、BSJ内に操作対象となる主記憶領域の写しく
以下簡単にターゲットデータと呼ぶ)が存在していた時
には、BS4に対して主記憶アクセスを行なう。
ターゲットデータがBS4内に存在しなかった場合(以
下NiB5と呼ぶ)、またはBS4にストアスル一方式
の制御を採用している場合の主記憶に対する書き込みに
対しては、処理装置1に接続された主記憶装置3に対し
て主記憶アクセスの要求内容を送出する。NiB5であ
った場合は、主記憶装置3に対して、ターゲットデータ
を含むある一定サイズの主記憶の写しく以下ブロックと
呼ぶ)を主記憶装置3からBSへ転送するために要求を
主記憶装置3に対して送出する。主記憶装置3は読みだ
しの要求に対しては、その要求に対して主記憶の所定領
域を読み出し、必要なデータを処理装置1内のBS4に
転送する。また書き込みの要求に対しては、対象となる
主記憶領域を更新する。処理装置1では、転送されたデ
ータを所定の命令フェッチないしは演算に使用するとと
もにBS4にそのデータを登録し、再利用可能とする。
下NiB5と呼ぶ)、またはBS4にストアスル一方式
の制御を採用している場合の主記憶に対する書き込みに
対しては、処理装置1に接続された主記憶装置3に対し
て主記憶アクセスの要求内容を送出する。NiB5であ
った場合は、主記憶装置3に対して、ターゲットデータ
を含むある一定サイズの主記憶の写しく以下ブロックと
呼ぶ)を主記憶装置3からBSへ転送するために要求を
主記憶装置3に対して送出する。主記憶装置3は読みだ
しの要求に対しては、その要求に対して主記憶の所定領
域を読み出し、必要なデータを処理装置1内のBS4に
転送する。また書き込みの要求に対しては、対象となる
主記憶領域を更新する。処理装置1では、転送されたデ
ータを所定の命令フェッチないしは演算に使用するとと
もにBS4にそのデータを登録し、再利用可能とする。
本実施例のような構成と制御を行うシステムにおいては
、そのタスクの使用する主記憶上のデータは、そのタス
クが該データを使用するたびに、必要に応じて主記憶装
置から所定データが読み込まれバッファ記憶装置に登録
される。このためあるタスクの使用するデータのうち、
バッファ記憶装置に登録されている量は徐々に増加する
。一方、これに対してそれまでにバッファ記憶装置に登
録されていた領域は、新たなデータの登録によって徐々
に追い出され、減少していく。したがって第2図のよう
なバッファ記憶装置を有するシステムにおいて、バッフ
ァの利用効率の向上によって計算機システムの性能向上
を行うためには、バッファ記憶内に残存しているデータ
を再利用してバッファ記憶装置と主記憶装置間のデータ
転送回数を削減し、これによってデータ転送オーバヘッ
ドを減らすことが有効な手段となる。
、そのタスクの使用する主記憶上のデータは、そのタス
クが該データを使用するたびに、必要に応じて主記憶装
置から所定データが読み込まれバッファ記憶装置に登録
される。このためあるタスクの使用するデータのうち、
バッファ記憶装置に登録されている量は徐々に増加する
。一方、これに対してそれまでにバッファ記憶装置に登
録されていた領域は、新たなデータの登録によって徐々
に追い出され、減少していく。したがって第2図のよう
なバッファ記憶装置を有するシステムにおいて、バッフ
ァの利用効率の向上によって計算機システムの性能向上
を行うためには、バッファ記憶内に残存しているデータ
を再利用してバッファ記憶装置と主記憶装置間のデータ
転送回数を削減し、これによってデータ転送オーバヘッ
ドを減らすことが有効な手段となる。
以上説明を行った第2図に示すシステムにおいて、本発
明を適用したタスク割り付は処理方式の実施例を第1図
を用いて説明する。この実施例では、現在時刻を知るた
めの計時機能をもちい、本発明の処理のための専用のハ
ードウェアを使用しない。このため、本実施例は計時機
構を持つ既存の一般的な計算機システムに適用可能であ
る。
明を適用したタスク割り付は処理方式の実施例を第1図
を用いて説明する。この実施例では、現在時刻を知るた
めの計時機能をもちい、本発明の処理のための専用のハ
ードウェアを使用しない。このため、本実施例は計時機
構を持つ既存の一般的な計算機システムに適用可能であ
る。
タスクの状態は、以下では簡単のため実行中、実行可能
(レディ)及び実行不可能の3状態でのいずれかとする
。タスクに対して優先順位別グルーピングによる属性を
導入したときには、各優先順位グループ別に同様のアル
ゴリズムによるタスク選択を行えばよい。
(レディ)及び実行不可能の3状態でのいずれかとする
。タスクに対して優先順位別グルーピングによる属性を
導入したときには、各優先順位グループ別に同様のアル
ゴリズムによるタスク選択を行えばよい。
まず、第2図の計算機システム内の処理装置が、システ
ム内に存在する実行可能状態のタスクを選択する処理に
ついて説明する。この処理の流れは第1図にフローチャ
ートによって示したものである。この処理は、空きとな
った処理装置によって新たに処理すべきタスクを選択す
るために実行されるものであり、以下に示す考え方によ
ってタスクが選択される。
ム内に存在する実行可能状態のタスクを選択する処理に
ついて説明する。この処理の流れは第1図にフローチャ
ートによって示したものである。この処理は、空きとな
った処理装置によって新たに処理すべきタスクを選択す
るために実行されるものであり、以下に示す考え方によ
ってタスクが選択される。
第3図に示す処理装置内のBS4〜5に着目した場合、
タスクAIOの実行後その処理装置において別のタスク
Bllが実行された場合には、タスクBllがその実行
に伴いタスクBの用いるデータをバッファ記憶内に読み
込んでいくために、タスクBの実行開始時点でバッファ
記憶装置に残存していたタスクA、 10のデータは上
記説明のようにほぼ単調に追い出され減少していくと考
えられる。一方ある時点で第3図に示すようにタスクA
IOの使用するデータ501および511が処理装置2
のBS5よりも処理装置1のBS4に多くバッファされ
ており、タスクBllの使用するデータ502および5
12が処理装置1のBS4よりも処理装置2のBS5に
多くバッファされていたとするとき、タスクBllは次
に実行する際に処理装置2において実行した方がバッフ
ァ記憶装置の利用効率上有利である。この減少する割合
は2つのタスクAとBの性質に依存するが、この実施例
ではその平均的振舞を推定または評価し、そのタスクが
実行を終了した時刻を評価情報とし、そのタスクが実行
を終了してからの経過時間によってそのタスクに関する
バッファ記憶装置内の残存するデータの量を推定し、充
分なバッファ再利用効果が得られると判断される時間に
基づき対象とするタスク終了時点からの経過時間のしき
い値を作成し、そのしきい値以内にタスクを再実行する
ときには可能な限り残存するバッファ記憶内のデータを
再利用するよう処理装置を選択する戦略を用いて、第1
図に示したタスク割り付は処理を行なう。
タスクAIOの実行後その処理装置において別のタスク
Bllが実行された場合には、タスクBllがその実行
に伴いタスクBの用いるデータをバッファ記憶内に読み
込んでいくために、タスクBの実行開始時点でバッファ
記憶装置に残存していたタスクA、 10のデータは上
記説明のようにほぼ単調に追い出され減少していくと考
えられる。一方ある時点で第3図に示すようにタスクA
IOの使用するデータ501および511が処理装置2
のBS5よりも処理装置1のBS4に多くバッファされ
ており、タスクBllの使用するデータ502および5
12が処理装置1のBS4よりも処理装置2のBS5に
多くバッファされていたとするとき、タスクBllは次
に実行する際に処理装置2において実行した方がバッフ
ァ記憶装置の利用効率上有利である。この減少する割合
は2つのタスクAとBの性質に依存するが、この実施例
ではその平均的振舞を推定または評価し、そのタスクが
実行を終了した時刻を評価情報とし、そのタスクが実行
を終了してからの経過時間によってそのタスクに関する
バッファ記憶装置内の残存するデータの量を推定し、充
分なバッファ再利用効果が得られると判断される時間に
基づき対象とするタスク終了時点からの経過時間のしき
い値を作成し、そのしきい値以内にタスクを再実行する
ときには可能な限り残存するバッファ記憶内のデータを
再利用するよう処理装置を選択する戦略を用いて、第1
図に示したタスク割り付は処理を行なう。
以下第1図の処理を説明する。この処理ではタスクの制
御情報(TCB)をキューイングした第4図に示す構造
を持つTCBキューを用意する。
御情報(TCB)をキューイングした第4図に示す構造
を持つTCBキューを用意する。
空きとなった処理装置は自処理装置上で実行するタスク
を選択する際、このTCBキューから以下の処理にした
がって実行可能状態のタスクを1つ選択する。各タスク
のTCB 10〜11は、そのタスクを実行する際の制
御情報の他に前にそのタスクが実行されていた処理装置
の番号1.103、および実行を打ち切られた時刻TB
104をデータとして保持している。そのデータは、前
にそのタスクが実行を打ち切られた際の事後処理時(た
とえば割込み、マクロの処理など)に書き込まれる。こ
の処理については後述する。
を選択する際、このTCBキューから以下の処理にした
がって実行可能状態のタスクを1つ選択する。各タスク
のTCB 10〜11は、そのタスクを実行する際の制
御情報の他に前にそのタスクが実行されていた処理装置
の番号1.103、および実行を打ち切られた時刻TB
104をデータとして保持している。そのデータは、前
にそのタスクが実行を打ち切られた際の事後処理時(た
とえば割込み、マクロの処理など)に書き込まれる。こ
の処理については後述する。
以下実行するタスクを選択する第1図の処理を、ステッ
プごとに説明する。
プごとに説明する。
■始めに、TCBキューの先頭にポインタを設定する。
また作業変数CntをOに初期化する。
この変数は、以下のステップで該キューの何個の要素を
試したかを記録し、ある−足回数でタスク割り付は選択
最適化の試行を打ち切りディスパッチ処理のステップの
過度の増加を抑えるために用いる。(S t e p
1001)■ポインタのさしているタスク制御ブロック
を調べ、そのタスクが実行可能状態でないならば、その
タスクを選択し実行することはできない。
試したかを記録し、ある−足回数でタスク割り付は選択
最適化の試行を打ち切りディスパッチ処理のステップの
過度の増加を抑えるために用いる。(S t e p
1001)■ポインタのさしているタスク制御ブロック
を調べ、そのタスクが実行可能状態でないならば、その
タスクを選択し実行することはできない。
この場合は次のタスクを調べる処理に分岐する。
(SteplO02)
■次に、ポインタのさしているタスク制御ブロック10
より、前に中断した時刻を示すフィールド(Ts、
l O4) 、及び前に実行していた処理装置の番号を
示すフィールド(I、、1.03)を読み込む。(St
eplO03) ■前ステップで読み込んだl11103と、自処理装置
番号とを比較する。同一なら、このタスクを選択し、実
行する処理に分岐する。
より、前に中断した時刻を示すフィールド(Ts、
l O4) 、及び前に実行していた処理装置の番号を
示すフィールド(I、、1.03)を読み込む。(St
eplO03) ■前ステップで読み込んだl11103と、自処理装置
番号とを比較する。同一なら、このタスクを選択し、実
行する処理に分岐する。
(SteplO04,1008)
■前のステップである5teplO04での比較結果が
異なっていた場合には、T、104と現在時刻との差を
調べる。これがあらかじめ設定したBSのライフタイム
によるしきい値(Liml )以下であった時には、こ
のタスク10を選ばず次のタスクを選ぶ処理に行く。こ
の処理で選択されないタスクは、上記しきい値に比べ短
期間以前に他処理装置によって実行されており、この他
処理装置内のバッファ記憶装置内にそのタスクが使用し
ていた主記憶領域の写しが多く残存している。このため
、このタスクを選択し実行した場合、この他処理装置内
の残存する主記憶の写しが利用できないばかりでなく、
その領域に対する書き込みによってその写しを持つ処理
装置に対してバッファ記憶の一致制御を実行する必要が
生じ、処理性能低下の要因となる。
異なっていた場合には、T、104と現在時刻との差を
調べる。これがあらかじめ設定したBSのライフタイム
によるしきい値(Liml )以下であった時には、こ
のタスク10を選ばず次のタスクを選ぶ処理に行く。こ
の処理で選択されないタスクは、上記しきい値に比べ短
期間以前に他処理装置によって実行されており、この他
処理装置内のバッファ記憶装置内にそのタスクが使用し
ていた主記憶領域の写しが多く残存している。このため
、このタスクを選択し実行した場合、この他処理装置内
の残存する主記憶の写しが利用できないばかりでなく、
その領域に対する書き込みによってその写しを持つ処理
装置に対してバッファ記憶の一致制御を実行する必要が
生じ、処理性能低下の要因となる。
このようなタスクについては、このタスクが前に走行し
ていた処理装置が空き、そのタスクを再選択して走行す
ることを期待し、TCBキューに残す。(SteplO
05) ■以下は調べていたタスクを選択せず、次のタスクを試
す処理である。まず、何個のタスクを調べてきたかを変
数Cntによって調べ、それが設定した試行回数の上限
以上なら、タスクサーチをうちきりTCBキューの先頭
にもっとも近い実行可能なタスクを選択する。先頭のタ
スクを選ぶものはFiFoによる公正さを確保し、同時
にタスクの沈み込みを防止するためである。
ていた処理装置が空き、そのタスクを再選択して走行す
ることを期待し、TCBキューに残す。(SteplO
05) ■以下は調べていたタスクを選択せず、次のタスクを試
す処理である。まず、何個のタスクを調べてきたかを変
数Cntによって調べ、それが設定した試行回数の上限
以上なら、タスクサーチをうちきりTCBキューの先頭
にもっとも近い実行可能なタスクを選択する。先頭のタ
スクを選ぶものはFiFoによる公正さを確保し、同時
にタスクの沈み込みを防止するためである。
同時にこのタスクはもつとも古いものであるため、この
タスクを選択する場合他処理装置に対するバッファ一致
制御にともなう外乱が最小であると推定される。
タスクを選択する場合他処理装置に対するバッファ一致
制御にともなう外乱が最小であると推定される。
(Stepl、006. 1009)
■同様に、試すべきタスクが尽きたときにはキュー先頭
にもっとも近い実行可能なタスクを選択する。先頭を選
ぶ理由は、前のケースと同じである。 (SteplO
07) ■ポインタを次のタスクに設定し、Cntに1を加え、
5teplO02からの手順を繰り返す。
にもっとも近い実行可能なタスクを選択する。先頭を選
ぶ理由は、前のケースと同じである。 (SteplO
07) ■ポインタを次のタスクに設定し、Cntに1を加え、
5teplO02からの手順を繰り返す。
(SteplOlo)
以上第1図の処理をステップごとに説明した。
タスクキュー内に実行可能タスクがない時の処理は、処
理を明確化するためフローチャートより除いた。必要な
処理は、5teplO10の後に追加される処理であり
、全タスクのチエツクを行ったことを検出して処理装置
を実行可能タスクを待つ状態とする処理である。また本
実施例ではタスク間にプライオリティによる実行優先順
位の差がない場合の処理を示したが、プライオリティを
持つ場合の拡張はTCBキューをプライオリティごとに
分けるなどの方法によって容易に実現できる。
理を明確化するためフローチャートより除いた。必要な
処理は、5teplO10の後に追加される処理であり
、全タスクのチエツクを行ったことを検出して処理装置
を実行可能タスクを待つ状態とする処理である。また本
実施例ではタスク間にプライオリティによる実行優先順
位の差がない場合の処理を示したが、プライオリティを
持つ場合の拡張はTCBキューをプライオリティごとに
分けるなどの方法によって容易に実現できる。
タスクの中断処理は、中断されたタスクの中断時刻をタ
スクの前終了時刻フィールドT、104に、またその時
の処理装置番号をタスクの前処理装置フィールドlB1
03にそれぞれ書き込む処理を行ない、タスクの中断理
由にしたがって実行可能状態もしくは実行不可能状態の
いずれかとしてTCBキューに登録する。
スクの前終了時刻フィールドT、104に、またその時
の処理装置番号をタスクの前処理装置フィールドlB1
03にそれぞれ書き込む処理を行ない、タスクの中断理
由にしたがって実行可能状態もしくは実行不可能状態の
いずれかとしてTCBキューに登録する。
このアルゴリズムにおいてC11m、即ちサーチの打切
り値は、処理装置数とタスク中断の頻度に依存するが、
処理装置数からその数倍程度に設定すれば本発明の効果
は生かされる。これはバッファ記憶装置に同時に存在可
能なタスク数はシステムに依存するが一般に数個であり
、この数に処理装置数を掛けた数よりシステム内の実行
可能なタスク数が多い場合に全タスクに対して公正なサ
ービスを行った場合、バッファ記憶内にそのタスクの使
用するデータが残っている間にタスクを実行することが
できないためである。すなわち第1図に示す処理におい
てタスクを設定数だけ試行しても条件を満たすタスクが
ない場合とは、即ちTCBキュー内の実行可能タスクが
多い状態であり、多くの処理待ちタスクがシステム内に
存在する。本実施例に示す処理はバッファ効果を向上さ
せることによってシステムのスループットを向上させる
ことを狙ったものであるが、そのために同じタスクを繰
り返し実行する場合が多く、多くの処理待ちタスクがあ
る過負荷の環境下ではタスクの沈み込みが発生する可能
性がある。そのような状態の下では処理の公正化の観点
からもとのタスクを選択しないほうが良い。以上の理由
より、本発明が有効であるような状態では、実行可能状
態のタスクを処理装置数程度骨試す間に自処理装置で前
に実行されていたタスクが見つかる可能性が高い。また
このような観点から、第1図のフローチャートでは前実
行タスクを再選択することが適当でない場合には最初の
タスクを選択するようにしている。また、上記の理由か
ら、この打切り数を少なく設定した場合、タスクの実行
待ち時間が減少しレスポンスは向上するが、バッファ効
率が向上する効果は減少しスループットは低下する。
り値は、処理装置数とタスク中断の頻度に依存するが、
処理装置数からその数倍程度に設定すれば本発明の効果
は生かされる。これはバッファ記憶装置に同時に存在可
能なタスク数はシステムに依存するが一般に数個であり
、この数に処理装置数を掛けた数よりシステム内の実行
可能なタスク数が多い場合に全タスクに対して公正なサ
ービスを行った場合、バッファ記憶内にそのタスクの使
用するデータが残っている間にタスクを実行することが
できないためである。すなわち第1図に示す処理におい
てタスクを設定数だけ試行しても条件を満たすタスクが
ない場合とは、即ちTCBキュー内の実行可能タスクが
多い状態であり、多くの処理待ちタスクがシステム内に
存在する。本実施例に示す処理はバッファ効果を向上さ
せることによってシステムのスループットを向上させる
ことを狙ったものであるが、そのために同じタスクを繰
り返し実行する場合が多く、多くの処理待ちタスクがあ
る過負荷の環境下ではタスクの沈み込みが発生する可能
性がある。そのような状態の下では処理の公正化の観点
からもとのタスクを選択しないほうが良い。以上の理由
より、本発明が有効であるような状態では、実行可能状
態のタスクを処理装置数程度骨試す間に自処理装置で前
に実行されていたタスクが見つかる可能性が高い。また
このような観点から、第1図のフローチャートでは前実
行タスクを再選択することが適当でない場合には最初の
タスクを選択するようにしている。また、上記の理由か
ら、この打切り数を少なく設定した場合、タスクの実行
待ち時間が減少しレスポンスは向上するが、バッファ効
率が向上する効果は減少しスループットは低下する。
この処理に用いるBSのライフタイム(Liml)は、
そのシステムで走行するタスクの性質、BSの容量、シ
ステムの構成などに依存し、システムごとに異なるもの
である。この時間を短く設定した場合には、使用できた
はずのバッファ内のデータを使用しないためバッファ効
率が低下し、逆に長く取ったときには、同一タスクを実
行する確率があるためタスクの遷移回数が少なくなり、
結果としてタスクの実行待ち時間が増加する。この値の
設定法としては、oSのシステムチューニングの1つの
設定パラメータとして、値を変えながらバッファ効率と
タスクの実行待ち時間を測定し、システムにあった最適
値を求めるやりかたが実用的である。また、システムの
性能が悪化しない設定値の範囲が広いため、システムの
目的に見合った標準値を○S提供元にて設定することも
可能である。
そのシステムで走行するタスクの性質、BSの容量、シ
ステムの構成などに依存し、システムごとに異なるもの
である。この時間を短く設定した場合には、使用できた
はずのバッファ内のデータを使用しないためバッファ効
率が低下し、逆に長く取ったときには、同一タスクを実
行する確率があるためタスクの遷移回数が少なくなり、
結果としてタスクの実行待ち時間が増加する。この値の
設定法としては、oSのシステムチューニングの1つの
設定パラメータとして、値を変えながらバッファ効率と
タスクの実行待ち時間を測定し、システムにあった最適
値を求めるやりかたが実用的である。また、システムの
性能が悪化しない設定値の範囲が広いため、システムの
目的に見合った標準値を○S提供元にて設定することも
可能である。
次に、新規に登録されたタスクを第2図の計算機システ
ム内の処理装置に対して割り付ける処理を、第5図のフ
ローチャートにしたがって説明する。この処理では、共
通のデータを使用するタスクによるグルービングを行な
い、それに応じて可能な限りバッファ効果の高い処理装
置を用いて実行するよう、処理装置を決定する。
ム内の処理装置に対して割り付ける処理を、第5図のフ
ローチャートにしたがって説明する。この処理では、共
通のデータを使用するタスクによるグルービングを行な
い、それに応じて可能な限りバッファ効果の高い処理装
置を用いて実行するよう、処理装置を決定する。
この処理では、そのタスクの制御ブロック中の前終了時
刻フィールドTB104及び、前処理装置フィールド1
,1.03の値が設定され、TCBキューにつながれる
。以下記載する処理では、あるタスク間の共通のデータ
使用についての情報はあらかじめ与えられるものとする
。このようなタスク間の共通データに関する情報は、例
えばコンパイラやリンカによってそのタスクの使用デー
タを解析することで得る事ができる。また、ある種のシ
ステムはシステムで走行するタスクの性質の概要をあら
かじめ知ることができる。このようなシステムの例とし
ては、データベースからの情報検索を行なうシステムや
定型処理を主とするオンラインシステムなどがある。こ
のようなシステムにおいては、1つのサブシステムを1
つの空間を用いて走行させ、サブシステムを多数走らせ
ることによって負荷の処理を行なう。このため、サブシ
ステムが自仮想空間内で作業領域として使用する部分が
、他仮想空間内の領域と重なることはないとみなせ、空
間内にあるタスク間で共有する自空間内のデータの量も
その空間内の共有作業領域として指定した量で評価する
ことができる。このため、このような共有データの存在
と、その大きさは、サブシステムの設計時に知ることが
できる。
刻フィールドTB104及び、前処理装置フィールド1
,1.03の値が設定され、TCBキューにつながれる
。以下記載する処理では、あるタスク間の共通のデータ
使用についての情報はあらかじめ与えられるものとする
。このようなタスク間の共通データに関する情報は、例
えばコンパイラやリンカによってそのタスクの使用デー
タを解析することで得る事ができる。また、ある種のシ
ステムはシステムで走行するタスクの性質の概要をあら
かじめ知ることができる。このようなシステムの例とし
ては、データベースからの情報検索を行なうシステムや
定型処理を主とするオンラインシステムなどがある。こ
のようなシステムにおいては、1つのサブシステムを1
つの空間を用いて走行させ、サブシステムを多数走らせ
ることによって負荷の処理を行なう。このため、サブシ
ステムが自仮想空間内で作業領域として使用する部分が
、他仮想空間内の領域と重なることはないとみなせ、空
間内にあるタスク間で共有する自空間内のデータの量も
その空間内の共有作業領域として指定した量で評価する
ことができる。このため、このような共有データの存在
と、その大きさは、サブシステムの設計時に知ることが
できる。
したがってそのソフトウェア設計者があらかじめ把握し
ている情報を本アルゴリズム実行前に与えればよいため
、上記の情報の把握を動的に実施する必要はない。また
、このようなシステムはもっと高いシステム性能が要求
されるものであり、かつタスク数も多いため本発明が特
に有効である。
ている情報を本アルゴリズム実行前に与えればよいため
、上記の情報の把握を動的に実施する必要はない。また
、このようなシステムはもっと高いシステム性能が要求
されるものであり、かつタスク数も多いため本発明が特
に有効である。
以下、使用する用語の定義を第7図に即して説明する。
4つのタスクA20.B21.C22゜D23があり、
タスクA、 20とタスクB21は同じであるデータ2
20をともに利用し、タスクC22とタスクD23は別
のあるデータ221をともに利用することなどがあらか
じめ判っているものとする。このときタスク間に、共通
に使用するデータの量によって距離を導入することがで
きる。
タスクA、 20とタスクB21は同じであるデータ2
20をともに利用し、タスクC22とタスクD23は別
のあるデータ221をともに利用することなどがあらか
じめ判っているものとする。このときタスク間に、共通
に使用するデータの量によって距離を導入することがで
きる。
すなわち共通して使用するデータの量の多いタスクは距
離が近いものと考える。この時、この距離を利用してタ
スク間でクラスタリングを行なう事ができる。この結果
を用い、タスクを適当なりラスタ単位でグループ化する
。ここで、上記のタスクA、 20と821が1つのグ
ループ210に属しているとし、同様にC22とD23
が1つのグループ211に属しているとする。ここで定
義したグループをアフイニテイグループと呼ぶ。
離が近いものと考える。この時、この距離を利用してタ
スク間でクラスタリングを行なう事ができる。この結果
を用い、タスクを適当なりラスタ単位でグループ化する
。ここで、上記のタスクA、 20と821が1つのグ
ループ210に属しているとし、同様にC22とD23
が1つのグループ211に属しているとする。ここで定
義したグループをアフイニテイグループと呼ぶ。
同一アフィニテイグループのタスクが連続して同一処理
装置上で走行したばあい、バッファ記憶上の同一データ
を該タスク群が連続して使用するため、バッファ記憶の
利用効率を向上することができる。
装置上で走行したばあい、バッファ記憶上の同一データ
を該タスク群が連続して使用するため、バッファ記憶の
利用効率を向上することができる。
第5図は、ある処理装置上で実行を要求されたタスクが
TCBキューにつながれるまでの前処理のフローである
。以下、この処理をステップごとに説明する。以下、タ
スク制御ブロック中のT81O4および■111o3の
操作にあたって、あらかじめ用意した制御テーブルを用
いる。このようなテーブルの構成の一例を第8図に示す
。
TCBキューにつながれるまでの前処理のフローである
。以下、この処理をステップごとに説明する。以下、タ
スク制御ブロック中のT81O4および■111o3の
操作にあたって、あらかじめ用意した制御テーブルを用
いる。このようなテーブルの構成の一例を第8図に示す
。
この例では、1つのグループの制御テーブル400は、
タスクによって構成されるアフイニテイグループを記載
したものであり、テーブルのエントリとしてグループの
識別子401、そのグループの現在TCBキュー内にあ
るタスクの数403とそのタスクの制御ブロックへのポ
インタ404〜407を用意する。
タスクによって構成されるアフイニテイグループを記載
したものであり、テーブルのエントリとしてグループの
識別子401、そのグループの現在TCBキュー内にあ
るタスクの数403とそのタスクの制御ブロックへのポ
インタ404〜407を用意する。
■ある処理装置上で新規のタスクを登録するとき、始め
にそのシステムのアフイニテイグループテーブルを調べ
、新規タスクが属するアフイニティグループをチエツク
する。
にそのシステムのアフイニテイグループテーブルを調べ
、新規タスクが属するアフイニティグループをチエツク
する。
(Step1501.1502.1504)■新規登録
タスクがシステムに登録されているアフィニティグルー
プの1つに属するものであったとき、そのタスクをその
グループに属する他タスクと同じ処理装置に割り付ける
ことがバッファ性能面でもっとも適当である。これには
、まずそのアフィニティグループに属するタスクのうち
、現在TCBキューに在るものの有無をチエツクする。
タスクがシステムに登録されているアフィニティグルー
プの1つに属するものであったとき、そのタスクをその
グループに属する他タスクと同じ処理装置に割り付ける
ことがバッファ性能面でもっとも適当である。これには
、まずそのアフィニティグループに属するタスクのうち
、現在TCBキューに在るものの有無をチエツクする。
この実施例ではこのチエツク処理の高速化を目的とし、
アフィニティグループテーブルエントリ内に、そのグル
ープのタスクのうちTCBキュー内にあるものの数をフ
ィールド403に持つため、その数が1以上であること
を見ればよい。
アフィニティグループテーブルエントリ内に、そのグル
ープのタスクのうちTCBキュー内にあるものの数をフ
ィールド403に持つため、その数が1以上であること
を見ればよい。
(Step1505)
■同一アフイニテイグループに属しTCBキューに存在
するタスクがあるならば、そのタスクが前に走行してい
た処理装置に対して新規登録タスクを割り付けることに
よってバッファ記憶装置の効率を改善することができる
。すなわち、新規登録タスクに対して、1.103を、
上記手順によって見いだした既存のタスクのTCBを調
べこのTCB内の1.103の値と同じ値に設定し、新
規登録タスクをTCBキューの最後に実行可能状態とし
て追加する。この時、新規に登録したタスクに対してそ
のT、104は、その時点の現在時刻か、1.103を
得たタスクのT11104をそのまま用いればよい。ま
た、この登録によってそのタスクの属するアフィニティ
グループのエントリの処理中のタスク403の数は1つ
増加する。
するタスクがあるならば、そのタスクが前に走行してい
た処理装置に対して新規登録タスクを割り付けることに
よってバッファ記憶装置の効率を改善することができる
。すなわち、新規登録タスクに対して、1.103を、
上記手順によって見いだした既存のタスクのTCBを調
べこのTCB内の1.103の値と同じ値に設定し、新
規登録タスクをTCBキューの最後に実行可能状態とし
て追加する。この時、新規に登録したタスクに対してそ
のT、104は、その時点の現在時刻か、1.103を
得たタスクのT11104をそのまま用いればよい。ま
た、この登録によってそのタスクの属するアフィニティ
グループのエントリの処理中のタスク403の数は1つ
増加する。
(Step1506,1507)
■一方、該アフイニテイグループに属するタスクのうち
、TCBキュー内にあるものがない、すなわち該グルー
プのタスクにその時点でシステムで処理されているもの
がないとき、そのタスクはどの処理装置上で実行しても
良い。このため、処理装置の負荷状態を参照して適当な
処理装置に割り当てる。このときのlB103は任意の
値でよく、TB104は経過時間がどのバッファ記憶装
置のライフタイムよりも十分大きな値となるよう設定す
ることによって上記目的が達成される。また、この登録
によってそのタスクの属するアフイニテイグループのエ
ントリの処理中のタスク403の数は同様に1つ増加す
る。
、TCBキュー内にあるものがない、すなわち該グルー
プのタスクにその時点でシステムで処理されているもの
がないとき、そのタスクはどの処理装置上で実行しても
良い。このため、処理装置の負荷状態を参照して適当な
処理装置に割り当てる。このときのlB103は任意の
値でよく、TB104は経過時間がどのバッファ記憶装
置のライフタイムよりも十分大きな値となるよう設定す
ることによって上記目的が達成される。また、この登録
によってそのタスクの属するアフイニテイグループのエ
ントリの処理中のタスク403の数は同様に1つ増加す
る。
(Step1509〜1510)
■またどのアフィニテイグループにも属さないタスクに
ついては、アフィニティグループテーブルに対しては何
もせず、IIlとTBの設定は■と同様に行う。
ついては、アフィニティグループテーブルに対しては何
もせず、IIlとTBの設定は■と同様に行う。
(Step1503)
第6図は、タスクが実行を終了する場合の処理を示す。
終了処理として、本発明の適用によって新たに必要とな
るものは、アフィニティグループの制御テーブルの管理
であり、自グループの実行中のタスクの数403,41
3,423から1引いておく処理をおこなう事を目的と
する。以下第8図の制御テーブル400からタスク30
を削除する場合を例にとりステップごとに説明する。
るものは、アフィニティグループの制御テーブルの管理
であり、自グループの実行中のタスクの数403,41
3,423から1引いておく処理をおこなう事を目的と
する。以下第8図の制御テーブル400からタスク30
を削除する場合を例にとりステップごとに説明する。
■該タスク30の属するアフィニティグループの制御テ
ーブルを読み込む。このタスク30の場合は制御テーブ
ルは、第8図の制御テーブル400である。(Step
l、601,1602゜1605.1606) ■制御テーブル400内の自グループの処理中のタスク
数403から1を引く。
ーブルを読み込む。このタスク30の場合は制御テーブ
ルは、第8図の制御テーブル400である。(Step
l、601,1602゜1605.1606) ■制御テーブル400内の自グループの処理中のタスク
数403から1を引く。
(Step1603)
■制御テーブルから、終了したタスクへのポインタを削
除する。必要なら、テーブル領域を詰める。 (St
ep1604.) 以上でタスク終了の本発明の実施に伴なう追加処理は終
了する。また、アフィニティグループに属さないタスク
の終了時は、本処理を行なう必要はない。なお、この処
理は他処理装置からの更新との整合性を取るため、割込
み禁止とし必要に応じ排他制御を行いつつ実行しなけれ
ばならない。
除する。必要なら、テーブル領域を詰める。 (St
ep1604.) 以上でタスク終了の本発明の実施に伴なう追加処理は終
了する。また、アフィニティグループに属さないタスク
の終了時は、本処理を行なう必要はない。なお、この処
理は他処理装置からの更新との整合性を取るため、割込
み禁止とし必要に応じ排他制御を行いつつ実行しなけれ
ばならない。
以上説明した実施例は、始めにも述べたように、タスク
に対する付加的な情報を別途ソフトウェアやハードウェ
アから読み込み、制御に使用することは行なっていない
。しかしながら、例えばタスクの所要メモリサイズ、共
通領域のアクセス頻度、各処理装置の利用率、バッファ
記憶装置のヒツト率などを加味すれば、より最適化した
制御も可能になる。その例として、所要するメモリサイ
ズの小さいタスクを特定の処理装置に集中させ外乱を軽
減する制御などが可能である。
に対する付加的な情報を別途ソフトウェアやハードウェ
アから読み込み、制御に使用することは行なっていない
。しかしながら、例えばタスクの所要メモリサイズ、共
通領域のアクセス頻度、各処理装置の利用率、バッファ
記憶装置のヒツト率などを加味すれば、より最適化した
制御も可能になる。その例として、所要するメモリサイ
ズの小さいタスクを特定の処理装置に集中させ外乱を軽
減する制御などが可能である。
また、本実施例ではアフィニティグループを新規タスク
の登録時のみに用いる例を示したが、レディタスク選択
時に用いる事も可能である。この場合には、第5図のよ
うな処理を第1図の処理に組み込み、第1図の処理を変
更する必要がある。
の登録時のみに用いる例を示したが、レディタスク選択
時に用いる事も可能である。この場合には、第5図のよ
うな処理を第1図の処理に組み込み、第1図の処理を変
更する必要がある。
また実施例の説明の際、バッファ記憶制御方式に間して
説明を行ったが、これはバッファ記憶装置の内容がどの
ように置き替わるかを示すためであり、制御方式の差異
は第1図の処理におけるバッファ記憶のデータのライフ
タイムの違いとして現れる。また本発明の効果は、上記
の第2図のようなバッファ記憶装置構成に限定されるも
のではない。
説明を行ったが、これはバッファ記憶装置の内容がどの
ように置き替わるかを示すためであり、制御方式の差異
は第1図の処理におけるバッファ記憶のデータのライフ
タイムの違いとして現れる。また本発明の効果は、上記
の第2図のようなバッファ記憶装置構成に限定されるも
のではない。
(2)第2の実施例
以下、図面を用いて第2の実施例を説明する。
対象とする処理装置構成は、第1の実施例と同様に第2
図に示すものである。第9図は本実施例で使用するiP
アフィニティピットをOにクリアする処理を示す。第1
O図は本実施例でのTCBキ二一ニー造を示す。第11
図は本実施例におけるタスクの選択処理を示したもので
ある。
図に示すものである。第9図は本実施例で使用するiP
アフィニティピットをOにクリアする処理を示す。第1
O図は本実施例でのTCBキ二一ニー造を示す。第11
図は本実施例におけるタスクの選択処理を示したもので
ある。
まず、この実施例における処理の考え方を説明する。各
ジョブに対して、そのタスクを前に実行していた処理装
置に対して優先して割り付けることを指示するフラグを
設ける。さらにこのフラグを用いて、処理装置に対して
実行可能状態のタスクを割り付ける処理の際にこのフラ
グを調べ、′1″であった時にはその処理装置に対して
そのタスクを割当てるように制御する。
ジョブに対して、そのタスクを前に実行していた処理装
置に対して優先して割り付けることを指示するフラグを
設ける。さらにこのフラグを用いて、処理装置に対して
実行可能状態のタスクを割り付ける処理の際にこのフラ
グを調べ、′1″であった時にはその処理装置に対して
そのタスクを割当てるように制御する。
このフラグはタスクが、実行を中断した際に“1′とし
、その後そのタスクが実行されないまま長い時間が経過
し、そのタスクの処理装置内のバッファ記憶に取り込ん
だデータの再利用効果が期待できなくなった時点で、該
フラグを′O″に落とす処理を行う。そのタスクが最後
に実行されたときから現在までどれだけの時間が経過し
たかは任意の処理装置から把握可能であり、アイドル状
態の処理装置によって各タスクの状態を調べ、所定の経
過時間が過ぎているものに対してフラグを“0”とする
処理を実行させ、上記制御を実現する。
、その後そのタスクが実行されないまま長い時間が経過
し、そのタスクの処理装置内のバッファ記憶に取り込ん
だデータの再利用効果が期待できなくなった時点で、該
フラグを′O″に落とす処理を行う。そのタスクが最後
に実行されたときから現在までどれだけの時間が経過し
たかは任意の処理装置から把握可能であり、アイドル状
態の処理装置によって各タスクの状態を調べ、所定の経
過時間が過ぎているものに対してフラグを“0”とする
処理を実行させ、上記制御を実現する。
以下、第9図に上記フラグをu OIIにリセットする
処理を示す。この処理を含むプログラムモジュールは、
処理装置に対して割り付けるべきタスクがないとき、あ
るいタイマ等によって一定時間おきなどに実行されるも
のである。ここで考えるタスク制御ブロックのプールの
構造は第1の実施例同様、キュー構造とじTCBキュー
と呼ぶ。またキュー中のタスクの状態を示す制御ブロッ
クの構造を第10図に示す。各タスクの制御ブロック3
0は、第1の実施例と同様の構造に、上記のフラグを追
加したものである。以下、前に実行されていた処理装置
に対して割り付けることを指示するビットをIPアフィ
ニティピットIPAF305と呼ぶ。IPアフィニティ
ビットIPAF305はBS中にそのタスクの用いるデ
ータが十分残っていると推定したときに“1″となるよ
うに制御されるものである。この処理手順では、以下の
手順にしたがい、TCBキューを調べ、IPアフィニテ
ィビットIPAF305をII OIIにクリアする。
処理を示す。この処理を含むプログラムモジュールは、
処理装置に対して割り付けるべきタスクがないとき、あ
るいタイマ等によって一定時間おきなどに実行されるも
のである。ここで考えるタスク制御ブロックのプールの
構造は第1の実施例同様、キュー構造とじTCBキュー
と呼ぶ。またキュー中のタスクの状態を示す制御ブロッ
クの構造を第10図に示す。各タスクの制御ブロック3
0は、第1の実施例と同様の構造に、上記のフラグを追
加したものである。以下、前に実行されていた処理装置
に対して割り付けることを指示するビットをIPアフィ
ニティピットIPAF305と呼ぶ。IPアフィニティ
ビットIPAF305はBS中にそのタスクの用いるデ
ータが十分残っていると推定したときに“1″となるよ
うに制御されるものである。この処理手順では、以下の
手順にしたがい、TCBキューを調べ、IPアフィニテ
ィビットIPAF305をII OIIにクリアする。
■TCBキューの先頭にポインタを設定する。
(Step2001)
■キューに登録されたタスクがあれば、5tep200
3以下の処理を行う。タスクがなければ、処理終了であ
る。(S t e p 2002)■ポインタPの指す
タスク制御ブロック30のIPアフイニテイピットIP
AF305を調べる。それがIt O”の時は処理不要
であり、次のタスクを選択する処理5tep2007に
行く。1”であったならば、5tep2004以下の処
理を実施する。(Step2003) ■次にポインタPの指すタスクが、前に実行を打ち切ら
れている時間Ta304を読みだし、それを現在時刻T
、と比較する。このときその値があらかじめシステムに
応じて設定しであるBSのブロックのライフタイムより
大きければ、BS中に前のデータは残っていないと判断
しIPアフィニティビットIPAFを110″にする。
3以下の処理を行う。タスクがなければ、処理終了であ
る。(S t e p 2002)■ポインタPの指す
タスク制御ブロック30のIPアフイニテイピットIP
AF305を調べる。それがIt O”の時は処理不要
であり、次のタスクを選択する処理5tep2007に
行く。1”であったならば、5tep2004以下の処
理を実施する。(Step2003) ■次にポインタPの指すタスクが、前に実行を打ち切ら
れている時間Ta304を読みだし、それを現在時刻T
、と比較する。このときその値があらかじめシステムに
応じて設定しであるBSのブロックのライフタイムより
大きければ、BS中に前のデータは残っていないと判断
しIPアフィニティビットIPAFを110″にする。
小さかった場合には、そのタスクに対して何もしない。
(Step2004,2005.2006)■ポインタ
の指すタスク制御ブロックに対する処理は終了した。ゆ
えに次のタスクを調べるよう、ポインタを更新する。
(Step2007)以上IPアフイニテイピットIP
AF305を“O″とする処理について説明した。次に
IPアフィニテイピットを使用したタスクの割り付は処
理を第1I図に即し、ステップごとに説明する。
の指すタスク制御ブロックに対する処理は終了した。ゆ
えに次のタスクを調べるよう、ポインタを更新する。
(Step2007)以上IPアフイニテイピットIP
AF305を“O″とする処理について説明した。次に
IPアフィニテイピットを使用したタスクの割り付は処
理を第1I図に即し、ステップごとに説明する。
■始めに、TCBキューの先頭にポインタを設定する。
また作業変数CntをOに初期化する。
Cntの目的は第一の実施例の第1図の処理と同じであ
る。(Step2101) ■ポインタのさしているタスク制御ブロック3゜を調べ
、そのタスクが実行可能状態でないならば、そのタスク
を選択し実行することはできない。この場合は次のタス
クを調べる処理に分岐する。 (Step2102) ■次に、ポインタのさしているタスク制御ブロック30
より、■Pアフィニティ■、AF3o5と前に実行して
いた処理装置の番号を示すフィールドI、303を読み
込む。
る。(Step2101) ■ポインタのさしているタスク制御ブロック3゜を調べ
、そのタスクが実行可能状態でないならば、そのタスク
を選択し実行することはできない。この場合は次のタス
クを調べる処理に分岐する。 (Step2102) ■次に、ポインタのさしているタスク制御ブロック30
より、■Pアフィニティ■、AF3o5と前に実行して
いた処理装置の番号を示すフィールドI、303を読み
込む。
(Step2103)
■前ステップで読み込んだ1.303と、自処理装置番
号とを比較する。同一なら、このタスクを選択し、実行
する処理に分岐する。
号とを比較する。同一なら、このタスクを選択し、実行
する処理に分岐する。
(Step2104,2108)
■前のステップである5tep2104での比較結果が
異なっていた場合には、そのタスクのIPアフイニティ
ビットIPAF305を調べ、それが“l”であったと
きには、このタスク30を選ばず次のタスクを選ぶ処理
に行く。このタスクを選択しない理由は、第1の実施例
と同様である。
異なっていた場合には、そのタスクのIPアフイニティ
ビットIPAF305を調べ、それが“l”であったと
きには、このタスク30を選ばず次のタスクを選ぶ処理
に行く。このタスクを選択しない理由は、第1の実施例
と同様である。
(Step2105)
■以下はポインタのさしているタスクを選択せず、タス
クを試す処理である。まず、作業変数Cntを調べてこ
れまでにいくつのタスクを調べてきたかを見て、それが
設定した試行回数上限を越えていた場合にはタスクサー
チを打切りTCBキューのもっとも先頭に近い実行可能
なタスクを選択する。先頭側を選ぶ理由は第一の実施例
と同様である。
クを試す処理である。まず、作業変数Cntを調べてこ
れまでにいくつのタスクを調べてきたかを見て、それが
設定した試行回数上限を越えていた場合にはタスクサー
チを打切りTCBキューのもっとも先頭に近い実行可能
なタスクを選択する。先頭側を選ぶ理由は第一の実施例
と同様である。
(Step2106,2109)
■同様に、試すべきタスクが尽きたときにはキュー先頭
にもっとも近い実行可能なタスクを選択する。先頭を選
ぶ理由は、■と同じである。
にもっとも近い実行可能なタスクを選択する。先頭を選
ぶ理由は、■と同じである。
(Step2107)
■ポインタを次のタスクに設定し、Cntに1を加え、
5tep2102からの手順を繰り返す。
5tep2102からの手順を繰り返す。
(Step2110)
新規にタスクを登録する際、削除する際の処理について
は第1の実施例と同様である。登録のとき、新規タスク
に対してはiPアフィニティピットはOとして登録する
。
は第1の実施例と同様である。登録のとき、新規タスク
に対してはiPアフィニティピットはOとして登録する
。
(3)第3の実施例
この実施例が適用されるシステム構成と、処理の考え型
は第一の実施例と同様である。ここでは、タスクの中断
時に中断された処理を再実行するがどうかを判定し、可
能なら中断時点から実行することによってバッファ効率
を改善しようとするもので、O8のタスク割り付は処理
には変更を加えない。第12図は本実施例で使用する前
タスク表の概念を説明するための説明図である。第13
図は本実施例での割込みによって中断された場合のタス
クの中断処理の流れを示す。第14図は前タスク表を更
新する処理を示す。第15図は前タスク表を用いてタス
クを再実行するかどうかを判定する処理を示す。第16
図はタスクが内部要因によって中断した場合の前タスク
表の更新について示す。
は第一の実施例と同様である。ここでは、タスクの中断
時に中断された処理を再実行するがどうかを判定し、可
能なら中断時点から実行することによってバッファ効率
を改善しようとするもので、O8のタスク割り付は処理
には変更を加えない。第12図は本実施例で使用する前
タスク表の概念を説明するための説明図である。第13
図は本実施例での割込みによって中断された場合のタス
クの中断処理の流れを示す。第14図は前タスク表を更
新する処理を示す。第15図は前タスク表を用いてタス
クを再実行するかどうかを判定する処理を示す。第16
図はタスクが内部要因によって中断した場合の前タスク
表の更新について示す。
この実施例では、各処理装置で割込みなどによって走行
中で継続実行可能なタスクの実行が中断されたとき、割
込み処理を終了した後刻込み処理に要した時間が十分に
小さかった場合、割り込まれたタスクを再実行し、バッ
ファ効率を高めることを狙ったものである。
中で継続実行可能なタスクの実行が中断されたとき、割
込み処理を終了した後刻込み処理に要した時間が十分に
小さかった場合、割り込まれたタスクを再実行し、バッ
ファ効率を高めることを狙ったものである。
この実施例では、各処理装置に一つづつ、主記憶上に前
実行タスクを記憶するための作業領域40(以下、前タ
スク表とよぶ)を用意する。この筋タス−り表40は、
第12図に示す表形式であり、以下3つのデータを記憶
する。
実行タスクを記憶するための作業領域40(以下、前タ
スク表とよぶ)を用意する。この筋タス−り表40は、
第12図に示す表形式であり、以下3つのデータを記憶
する。
■前に実行していたタスクの識別子401■そのタスク
の中断時刻402 ■前に実行していたタスクが継続実行可能がどうかを示
すフラグ403(以下継続実行フラグと呼ぶ) この実施例では、タスクAの実行を割込みなどによって
中断するとき、第13図に示す処理を行なう。
の中断時刻402 ■前に実行していたタスクが継続実行可能がどうかを示
すフラグ403(以下継続実行フラグと呼ぶ) この実施例では、タスクAの実行を割込みなどによって
中断するとき、第13図に示す処理を行なう。
■タスク識別子が割込みによって中断されたとき*J御
はO8の割込みハンドラに移る。割込みハンドラでは、
まず前タスク表40を更新する処理を行なう。(Ste
p3001) ■その後、割込み処理を行なう制御プログラムを起動し
、割込み処理を行なう。
はO8の割込みハンドラに移る。割込みハンドラでは、
まず前タスク表40を更新する処理を行なう。(Ste
p3001) ■その後、割込み処理を行なう制御プログラムを起動し
、割込み処理を行なう。
(Step3002,3003)
■割込み処理の終了後(OSによっては、割込み処理を
行なうモデュールの起動後)、タスクの再選択処理を行
なう。このとき、前タスク表を参照し、前に実行してい
たタスクの中断時点からの経過時間があるしきい値以下
ならば前に実行していたタスクを再実行し、タスク残バ
ッファデータを利用する。
行なうモデュールの起動後)、タスクの再選択処理を行
なう。このとき、前タスク表を参照し、前に実行してい
たタスクの中断時点からの経過時間があるしきい値以下
ならば前に実行していたタスクを再実行し、タスク残バ
ッファデータを利用する。
(Step3004〜3005)a
■またしきい値以上であったときには、通常のタスク選
択処理を行ない、別のタスク、例えばBを選択する。(
Step3007) 以下、前タスク表更新処理5tep3001、再実行の
判定処理5tep3004についてさらに詳細に説明す
る。第14図に、前タスク表を更新する処理3001の
処理詳細をフローチャートにて示す。以下、ステップご
とに説明する。
択処理を行ない、別のタスク、例えばBを選択する。(
Step3007) 以下、前タスク表更新処理5tep3001、再実行の
判定処理5tep3004についてさらに詳細に説明す
る。第14図に、前タスク表を更新する処理3001の
処理詳細をフローチャートにて示す。以下、ステップご
とに説明する。
■その処理装置の前タスク表のアドレスを得る。
(Step3101)
■実行中断時点のタスク識別子、中断時刻を前タスク表
に代入する。
に代入する。
(Step3102,3103)
■当該タスクを継続実行することが可能かどうかを判定
し、可能なとき継続実行フラグを′1″′に、不可能な
とき“Q 11にセットする。
し、可能なとき継続実行フラグを′1″′に、不可能な
とき“Q 11にセットする。
(Step3104..3105.3106)第14図
に示す処理は必要に応じて、割込み禁止かつ排他制御を
おこなった状態で処理されなければならない。
に示す処理は必要に応じて、割込み禁止かつ排他制御を
おこなった状態で処理されなければならない。
第15図に、前タスク表から前実行タスクを再実行する
かどうかを判定する処理をフローチャートにて示す。以
下処理をステップごとに説明する。
かどうかを判定する処理をフローチャートにて示す。以
下処理をステップごとに説明する。
■その処理装置の前タスク表を読み込む。
(Step3201)
■前タスク表に登録されているタスクが継続実行可能で
あるかどうかを、継続実行フラグが1″であるかどうか
を判定することによってテストする。(S t e p
3202) ■現在時刻と前タスク表の中の中断時刻との差があらか
じめ与えられたしきい値(L j m 1 )以内かど
うかを判定する (Step3203〜3204) 。
あるかどうかを、継続実行フラグが1″であるかどうか
を判定することによってテストする。(S t e p
3202) ■現在時刻と前タスク表の中の中断時刻との差があらか
じめ与えられたしきい値(L j m 1 )以内かど
うかを判定する (Step3203〜3204) 。
■前のテストの結果しきい値以下であるときには前実行
タスクを再実行する。
タスクを再実行する。
(Step3205)
■テストの結果しきい値以上であった時には、通常のデ
ィスパッチャにいく。
ィスパッチャにいく。
(Step3206)
この処理に用いるしきい値は第一の実施例と同様の手段
を用いて設定する。また第15図に示す処理は必要に応
じて、割込み禁止かつ排他制御をおこなった状態で処理
されなければならない。
を用いて設定する。また第15図に示す処理は必要に応
じて、割込み禁止かつ排他制御をおこなった状態で処理
されなければならない。
第16図では、タスクAが他のタスクの同期待ち、I1
0発行などの理由で実行可能でない状態に変わり処理を
終了したときのフローを示す。このときは前タスク表を
読み込み(S t e p3301)、表中の継続実行
可能であることを示すフラグ403をリセットしく5t
ep3302) 、通常のタスクディスパッチ処理を行
なう。なお、第16図において、SvCはスーパーバイ
ザコール命令のことである。
0発行などの理由で実行可能でない状態に変わり処理を
終了したときのフローを示す。このときは前タスク表を
読み込み(S t e p3301)、表中の継続実行
可能であることを示すフラグ403をリセットしく5t
ep3302) 、通常のタスクディスパッチ処理を行
なう。なお、第16図において、SvCはスーパーバイ
ザコール命令のことである。
以上で第3の実施例の説明を終了する。本実施例は始め
に説明したようにO8のタスク割り付は処理には変更を
加えない。このため、第13図のタスク中断処理に第1
実施例記載のタスク中断処理を追加組み合わせることに
よって、第1の実施例の処理と併用することが可能であ
る。
に説明したようにO8のタスク割り付は処理には変更を
加えない。このため、第13図のタスク中断処理に第1
実施例記載のタスク中断処理を追加組み合わせることに
よって、第1の実施例の処理と併用することが可能であ
る。
(4)第4の実施例
次に第1の実施例の変型として第17図に示す計算機シ
ステムに対して第1の実施例と同様の処理を構成した場
合について、図を用いて説明する。
ステムに対して第1の実施例と同様の処理を構成した場
合について、図を用いて説明する。
第17図は、第4の実施例でのシステム構成について示
す。第18図は第4の実施例のタスク選択処理を示した
ものである。
す。第18図は第4の実施例のタスク選択処理を示した
ものである。
この実施例のシステムは、4台の処理装置50〜53を
持ち、各処理装置内に各々専用のバッファ記憶装置60
〜63(以下BSと呼ぶ)を持つ。
持ち、各処理装置内に各々専用のバッファ記憶装置60
〜63(以下BSと呼ぶ)を持つ。
この処理装置50〜53は2台ずつ組となって、処理装
置2台当り1つのシステム制御装置70および71にそ
れぞれ接続されている。このシステム制御装置7oおよ
び71内にも、1台のシステム制御装置70〜71は、
1台の処理装置によって共有される共有バッファ記憶装
置72〜73(以下WSと呼ぶ)を持つ。1台の主記憶
装置3に接続される。以上示した2つの階層を持つバッ
ファ記憶装置の制御は、以下に説明するように行われる
。
置2台当り1つのシステム制御装置70および71にそ
れぞれ接続されている。このシステム制御装置7oおよ
び71内にも、1台のシステム制御装置70〜71は、
1台の処理装置によって共有される共有バッファ記憶装
置72〜73(以下WSと呼ぶ)を持つ。1台の主記憶
装置3に接続される。以上示した2つの階層を持つバッ
ファ記憶装置の制御は、以下に説明するように行われる
。
処理装置50〜53内のB560〜63の動作は第1の
実施例のBS4〜5の動作と同様の為、ここでは繰り返
さない。唯一の相違点はBS内に求めるデータがなかっ
たとき、第1の実施例では処理装置50の要求する命令
やデータを主記憶装置3から読み出したのに対して、本
実施例ではシステム制御装置70内のWS72から読み
出しを試みる点である。システム制御装置70は、処理
装置50内のB560からの要求に対して以下に記載す
る処理を行って、要求されたブロックをBSに対して送
出する。処理装置50側ではシステム制御装置70から
その応答として転送されてきたブロックをB560に登
録し、同時にそのデータを用いて命令処理を継続する。
実施例のBS4〜5の動作と同様の為、ここでは繰り返
さない。唯一の相違点はBS内に求めるデータがなかっ
たとき、第1の実施例では処理装置50の要求する命令
やデータを主記憶装置3から読み出したのに対して、本
実施例ではシステム制御装置70内のWS72から読み
出しを試みる点である。システム制御装置70は、処理
装置50内のB560からの要求に対して以下に記載す
る処理を行って、要求されたブロックをBSに対して送
出する。処理装置50側ではシステム制御装置70から
その応答として転送されてきたブロックをB560に登
録し、同時にそのデータを用いて命令処理を継続する。
この関係は他処理装置51〜53、他システム制御装置
71においても言うまでもなく同じである。
71においても言うまでもなく同じである。
システム制御装置70は処理装置50からのブロックの
転送要求を受は付けた際、上に記載したように自装置内
のWS72を検索する。WS72中に求めるブロックが
存在していた時には、該ブロックを要求元の処理装置5
0に送出する。一方WS72を検索した結果求めるデー
タがWS中に存在していなかった時の処理はWS制御方
式によって異なるが、本実施例でのストアイン制御を用
い複数コピーを許す制御を採用する。このような制御を
採用したバッファ記憶の構成例に関しては。
転送要求を受は付けた際、上に記載したように自装置内
のWS72を検索する。WS72中に求めるブロックが
存在していた時には、該ブロックを要求元の処理装置5
0に送出する。一方WS72を検索した結果求めるデー
タがWS中に存在していなかった時の処理はWS制御方
式によって異なるが、本実施例でのストアイン制御を用
い複数コピーを許す制御を採用する。このような制御を
採用したバッファ記憶の構成例に関しては。
例えば特許公報特開昭57−109180に記載があり
、その場合の処理を簡略化して示すと以下のようになる
。
、その場合の処理を簡略化して示すと以下のようになる
。
■自装置70内のWS72内の1つのブロックを選び、
それを主記憶3に書き戻して主記憶内を最新の値に更新
し、そのブロックのWS72での登録を取り消す。この
処理によってWS72内に空きブロックを作る。
それを主記憶3に書き戻して主記憶内を最新の値に更新
し、そのブロックのWS72での登録を取り消す。この
処理によってWS72内に空きブロックを作る。
■他システム制御装置内のWS73(以下、他WSと呼
ぶ)を検索する。他WS73中に求めるデータを含むブ
ロックが存在する場合には、他WS73から自WS72
に該ブロックを転送し他WSでの該ブロックの登録を取
り消す。このとき、自WS72での転送先は前の処理で
空きとした領域である。他WSに所定のブロックが存在
しなかった時には、求めるデータを主記憶装置3から読
み畠す。
ぶ)を検索する。他WS73中に求めるデータを含むブ
ロックが存在する場合には、他WS73から自WS72
に該ブロックを転送し他WSでの該ブロックの登録を取
り消す。このとき、自WS72での転送先は前の処理で
空きとした領域である。他WSに所定のブロックが存在
しなかった時には、求めるデータを主記憶装置3から読
み畠す。
■上記処理によって、自WS72に読みこまれたブロッ
クを、要求元の処理装置50に転送し、処理を終了する
。
クを、要求元の処理装置50に転送し、処理を終了する
。
本実施例のような構成と制御を行うシステムにおいては
、B560〜63は処理装置における命令実行に追従し
つる速度をもち、W372〜73はそれに比べてやや低
速な、BSと主記憶の中間的な速度を持つ。このため、
上記構成を取るシステムでは、BSの総容量をWSの総
容量の数分の1から数十分の1とする構成が、良好なコ
ストと性能を実現するために適当であることが多い。こ
のような容量差をつけバッファ記憶装置を実現した場合
、新しいデータ領域の転送に伴うBSとWS中の各ブロ
ックが、他のより新しいブロックに置き変わるまでの時
間、いわばブロックの寿命は平均的にはWSの側が容量
比に従って数倍長い。またある時点で存在するブロック
の集合に着目すれば、その時点から時間が立つにつれて
着目した集合の要素は新しいブロックに少しずつおきか
わり、ブロック数はほぼ単調に減少していく。したがっ
て第17図のようなバッファ記憶装置を有するシステム
においてバッファの利用効率の向上によって計算機シス
テムの性能向上を行うためには、バッファ記憶内に残存
しているデータを再利用してバッファ記憶装置階層間あ
るいはバッファ記憶装置と主記憶装置間のデータ転送回
数を削減することによってデータ転送オーバヘッドを減
らすことが有効な手段となる。
、B560〜63は処理装置における命令実行に追従し
つる速度をもち、W372〜73はそれに比べてやや低
速な、BSと主記憶の中間的な速度を持つ。このため、
上記構成を取るシステムでは、BSの総容量をWSの総
容量の数分の1から数十分の1とする構成が、良好なコ
ストと性能を実現するために適当であることが多い。こ
のような容量差をつけバッファ記憶装置を実現した場合
、新しいデータ領域の転送に伴うBSとWS中の各ブロ
ックが、他のより新しいブロックに置き変わるまでの時
間、いわばブロックの寿命は平均的にはWSの側が容量
比に従って数倍長い。またある時点で存在するブロック
の集合に着目すれば、その時点から時間が立つにつれて
着目した集合の要素は新しいブロックに少しずつおきか
わり、ブロック数はほぼ単調に減少していく。したがっ
て第17図のようなバッファ記憶装置を有するシステム
においてバッファの利用効率の向上によって計算機シス
テムの性能向上を行うためには、バッファ記憶内に残存
しているデータを再利用してバッファ記憶装置階層間あ
るいはバッファ記憶装置と主記憶装置間のデータ転送回
数を削減することによってデータ転送オーバヘッドを減
らすことが有効な手段となる。
以上説明を行ったシステムにおいて、以下では第1の実
施例の第1図に相当するタスク割り付は処理について第
18図に即し説明する。
施例の第1図に相当するタスク割り付は処理について第
18図に即し説明する。
タスクの状態は、第1の実施例と同様に実行中と実行可
能(レディ)と実行不可能の3状態で表されるものとす
る。また、この実施例で使用するTCBキューの構造は
第1の実施例と同じ第4図に示すものである。
能(レディ)と実行不可能の3状態で表されるものとす
る。また、この実施例で使用するTCBキューの構造は
第1の実施例と同じ第4図に示すものである。
以下処理ではW372〜73の容量はB560〜63の
容量に比べ1桁程度大きいため、あるタスクが実行を中
断した時点でw s +=登録されていた該タスクの使
用するデータの量は大きく、かつ一定時間経過後に残存
するデータの量も一般に大きい。このため、BSとWS
に対して各々対象とするタスク終了時点からの経過時間
のしきい値を別々に設け、そのしきい値以内にタスクを
再実行するときには可能な限り残存するバッファ記憶内
のデータを再利用するよう処理装置を選択する6以下第
18図の処理を説明する。空きとなった処理装置は自処
理装置上で実行するタスクを選択する際、このタスクキ
ューから以下の処理にしたがって実行可能状態のタスク
を1つ選択する。
容量に比べ1桁程度大きいため、あるタスクが実行を中
断した時点でw s +=登録されていた該タスクの使
用するデータの量は大きく、かつ一定時間経過後に残存
するデータの量も一般に大きい。このため、BSとWS
に対して各々対象とするタスク終了時点からの経過時間
のしきい値を別々に設け、そのしきい値以内にタスクを
再実行するときには可能な限り残存するバッファ記憶内
のデータを再利用するよう処理装置を選択する6以下第
18図の処理を説明する。空きとなった処理装置は自処
理装置上で実行するタスクを選択する際、このタスクキ
ューから以下の処理にしたがって実行可能状態のタスク
を1つ選択する。
以下実行するタスクを選択する第18図の処理を、ステ
ップごとに説明する。
ップごとに説明する。
■始めに、TCBキューの先頭にポインタを設定する。
また作業変数CntをOに初期化する。
この変数の用法は、第1の実施例に同じ。
(S t e p 4. OO1,)■ポインタの
指しているタスク制御ブロックを調べ、そのタスクが実
行可能状態でないならば、そのタスクを選択し実行する
ことはできない。
指しているタスク制御ブロックを調べ、そのタスクが実
行可能状態でないならば、そのタスクを選択し実行する
ことはできない。
この場合は次のタスクを調べる処理に分岐する。
(Step 4002)
■次に、ポインタPntrのさしているタスク制御ブロ
ックより、前に中断した時刻を示すフィールド(TB、
104) 、及び前に実行していた処理装置の番号を示
すフィールド(I a、 103)を読み込む。 (S
tep4003) ■前ステップで読み込んだI、103と、自処理装置番
号とを比較する。同一なら、このタスクを選択し、実行
する処理に分岐する。
ックより、前に中断した時刻を示すフィールド(TB、
104) 、及び前に実行していた処理装置の番号を示
すフィールド(I a、 103)を読み込む。 (S
tep4003) ■前ステップで読み込んだI、103と、自処理装置番
号とを比較する。同一なら、このタスクを選択し、実行
する処理に分岐する。
(Step4004,4012)
■前のステップである5tep4004での比較結果が
異なっていた場合には、TB104と現在時刻T、どの
差を調べる。これがあらかじめ設定したBSのライフタ
イムによるしき値(Liml)以下であった時には、こ
のタスクを選ばず次のタスクを選ぶ処理に行く。このタ
スクを選択しない理由は、第1の実施例の5teplO
05での理由とまったく同じである。
異なっていた場合には、TB104と現在時刻T、どの
差を調べる。これがあらかじめ設定したBSのライフタ
イムによるしき値(Liml)以下であった時には、こ
のタスクを選ばず次のタスクを選ぶ処理に行く。このタ
スクを選択しない理由は、第1の実施例の5teplO
05での理由とまったく同じである。
(Step4005)
■5tep4005での比較結果がBSでのライフタイ
ムによるしきい値より大きがった場合には、lB103
で示される処理装置と、自処理装置が同じシステム制御
装置に接続されているかどうかを調べる。接続されてい
る場合には、そのタスクを選択する。(Step400
6)■5tep4006で調べた結果、接続されていな
い場合には、TB104と現在時刻T0との差とあらか
じめ設定したWSのライフタイムによるしきい値(Li
m2、前に説明したようにLim1(Lim2である)
とを比較する。T、とT。
ムによるしきい値より大きがった場合には、lB103
で示される処理装置と、自処理装置が同じシステム制御
装置に接続されているかどうかを調べる。接続されてい
る場合には、そのタスクを選択する。(Step400
6)■5tep4006で調べた結果、接続されていな
い場合には、TB104と現在時刻T0との差とあらか
じめ設定したWSのライフタイムによるしきい値(Li
m2、前に説明したようにLim1(Lim2である)
とを比較する。T、とT。
どの差がWSのライフタイムによるしきい値より大きい
とき、WSでのデータのバッファ効果も期待できないた
め、このタスクはどの処理装置で実行しても性能上大き
な差はない。この処理ではタスクの沈み込みを防ぐため
、この時点でポインタの指すタスクを選択する。T、と
Tやとの差がWSのライフタイムによるしきい値より小
さいときは、このタスクを選ばず次のタスクを選ぶ処理
に行く。 (Step4007)■以下はポインタのさ
しているタスクを選択せず、次のタスクを試す処理であ
る。まず、何個のタスクを調べてきたかを変数Cntに
よって調べ、それがあらかじめ設定しである試行回数の
上限C1im以上なら、タスクサーチをうちきりレディ
キューの先頭のタスクを選択する。先頭のタスクを選ぶ
理由は第1の実施例に同じ。
とき、WSでのデータのバッファ効果も期待できないた
め、このタスクはどの処理装置で実行しても性能上大き
な差はない。この処理ではタスクの沈み込みを防ぐため
、この時点でポインタの指すタスクを選択する。T、と
Tやとの差がWSのライフタイムによるしきい値より小
さいときは、このタスクを選ばず次のタスクを選ぶ処理
に行く。 (Step4007)■以下はポインタのさ
しているタスクを選択せず、次のタスクを試す処理であ
る。まず、何個のタスクを調べてきたかを変数Cntに
よって調べ、それがあらかじめ設定しである試行回数の
上限C1im以上なら、タスクサーチをうちきりレディ
キューの先頭のタスクを選択する。先頭のタスクを選ぶ
理由は第1の実施例に同じ。
(Step4008,4009)
■同様に、試すべきタスクが尽きたときにはTCBキュ
ー先頭のタスクを選択する。先頭を選ぶ理由は、5te
p4009と同じである。
ー先頭のタスクを選択する。先頭を選ぶ理由は、5te
p4009と同じである。
(Step4010)
[相]ポインタを次のタスクに設定し、Cntに1を加
え、5tep4002がらの手順を繰り返す。
え、5tep4002がらの手順を繰り返す。
(Step4011)
以上第16図の処理をステップごとに説明した。
上記処理はタスク間にプライオリティによる実行優先順
位の差がない場合の処理を示したが、プライオリティを
持つ場合の拡張はTCBキューをプライオリティごとに
分けるなどの方法によって第1の実施例同様容易に実現
できる。
位の差がない場合の処理を示したが、プライオリティを
持つ場合の拡張はTCBキューをプライオリティごとに
分けるなどの方法によって第1の実施例同様容易に実現
できる。
タスクの新規登録処理、中断処理などは第1の実施例と
まったく変わらない。
まったく変わらない。
またこの処理に用いるBS、WSのライフタイム(Li
ml、Lim2)の設定に関しては、第1の実施例で説
明したものと同様の考慮を払えばよい。
ml、Lim2)の設定に関しては、第1の実施例で説
明したものと同様の考慮を払えばよい。
以上で4つの実施例について説明を行った。この実施例
では、第2図及び第17図を例とする密結合マルチプロ
セッサにおいて本発明を実施した際の処理について説明
したが、疎結合のマルチプロセッサ(共通領域としてデ
ィスクを備える)に関してもデータの書き込みをともな
う共通領域へのバッファリングで類似の問題が発生する
。これに対しては、第1の実施例において主記憶装置3
を共通領域に置き換えて適用することにより本発明が実
施可能である。実施にあたって考慮すべき点はバッファ
内のデータのライフタイムの設定のみである。
では、第2図及び第17図を例とする密結合マルチプロ
セッサにおいて本発明を実施した際の処理について説明
したが、疎結合のマルチプロセッサ(共通領域としてデ
ィスクを備える)に関してもデータの書き込みをともな
う共通領域へのバッファリングで類似の問題が発生する
。これに対しては、第1の実施例において主記憶装置3
を共通領域に置き換えて適用することにより本発明が実
施可能である。実施にあたって考慮すべき点はバッファ
内のデータのライフタイムの設定のみである。
また、本発明においては様々の部位において変型、ある
いはハードウェアのサポートなどが可能である。例えば
、本実施例で記載したタスクのディスパッチャの一部を
マイクロコードによって記載する事も可能である。
いはハードウェアのサポートなどが可能である。例えば
、本実施例で記載したタスクのディスパッチャの一部を
マイクロコードによって記載する事も可能である。
またハードウェアの情報、例えば当該タスクに属するバ
ッファ記憶装置内のデータの量を把握する事ができるよ
うにバッファ記憶装置を構成し、そのデータを用いてデ
ィスパッチするタスクを選択することも可能である。簡
単な場合として、例えば空間を切り替えた際にバッファ
記憶をパージするインプリメントを持つシステムにおい
ては、注目するタスクと違う空間で動作するタスクが走
行した後には該処理装置では注目するタスクの使用する
データは残らないと見なして、注目するタスクのために
処理装置を選択することができる。
ッファ記憶装置内のデータの量を把握する事ができるよ
うにバッファ記憶装置を構成し、そのデータを用いてデ
ィスパッチするタスクを選択することも可能である。簡
単な場合として、例えば空間を切り替えた際にバッファ
記憶をパージするインプリメントを持つシステムにおい
ては、注目するタスクと違う空間で動作するタスクが走
行した後には該処理装置では注目するタスクの使用する
データは残らないと見なして、注目するタスクのために
処理装置を選択することができる。
勿論さらに複雑な変型も適当なハードウェアサポートに
より可能である。
より可能である。
また、本発明はバッファ記憶装置の効率を高めることに
よってシステムのスループットを高めるための技術であ
るが、特定のタスクが多く走行する傾向があるためのタ
スクのレスポンス面は悪化する可能性がある。タスクの
レスポンスが重視されるシステムにおいて、レスポンス
改善のため、タスク間にプライオリティを導入してサー
ビスを受けていないタスクのプライオリティを上げるこ
とによって対処することも可能であるが、別解として従
来のディスパッチ方式を数回に一回起動するなどの手段
による従来の方式との折衷も可能である。
よってシステムのスループットを高めるための技術であ
るが、特定のタスクが多く走行する傾向があるためのタ
スクのレスポンス面は悪化する可能性がある。タスクの
レスポンスが重視されるシステムにおいて、レスポンス
改善のため、タスク間にプライオリティを導入してサー
ビスを受けていないタスクのプライオリティを上げるこ
とによって対処することも可能であるが、別解として従
来のディスパッチ方式を数回に一回起動するなどの手段
による従来の方式との折衷も可能である。
また、タスク間に本実施例のアフィニティグループ以外
の類似性など、バッファ記憶効率のみならず他の何らか
のシステムに関係したパラメータを導入して、第1の実
施例に沿ってタスクディスパッチングを行うことも可能
である。
の類似性など、バッファ記憶効率のみならず他の何らか
のシステムに関係したパラメータを導入して、第1の実
施例に沿ってタスクディスパッチングを行うことも可能
である。
本発明は熱論これらの変型を排除するものではない。
口発明の効果コ
本発明の実施により、バッファ記憶装置を持つ計算機シ
ステムにおいて、タスクが切り替わった際及びタスクを
システムに新規登録する際のバッファ記憶装置の効率を
向上させることが可能である。このため、システムの性
能を向上させることができる。
ステムにおいて、タスクが切り替わった際及びタスクを
システムに新規登録する際のバッファ記憶装置の効率を
向上させることが可能である。このため、システムの性
能を向上させることができる。
第1図は、任意のレディであるタスクを処理装置に割り
付ける処理のフローチャートを示し、第2図は第1図の
処理を実施する計算機システムの例である。第3図は第
1図のアルゴリズムの効果を説明する際に使用する説明
図である。第4図は、この実施例でのタスク制御ブロッ
ク(TCB)キューの構造を示す。第5図は新規に登録
されたタスクを第3図で示されるキューに接続し、第1
図で示される処理にて扱うために必要とする前処理のフ
ローチャートである。第6図は、実行終了したタスクを
第4図で示されるキューから外す後処理である。第7図
はアフィニティグループを説明する際の説明図である。 第8図は第5図の処理において使用するアフイニティグ
ループを登録するアフィニティグループ制御テーブルの
構造を示す図である。 第9図は第2の実施例で使用するIPアフイニティピッ
トをOにクリアする処理を示す。第10図は第2の実施
例でのTCBキューの構造を示す。 第11図は第2の実施例におけるタスクの選択処理を示
したものである。 第12図は第3の実施例で使用する前タスク表の概念を
説明するための説明図である。第13図は本実施例での
割込みによって中断された場合のタスクの中断処理の流
れを示す。第14図は前タスク表を更新する処理を示す
。第15図は前タスク表を用いてタスクを再実行するか
どうかを判定する処理を示す。第16図はタスクが内部
要因によって中断した場合の前タスク表の更新について
示す。 第17図は、第4の実施例でのシステム構成について示
す。第18図は第4の実施例のタスク選択処理を示した
ものである。
付ける処理のフローチャートを示し、第2図は第1図の
処理を実施する計算機システムの例である。第3図は第
1図のアルゴリズムの効果を説明する際に使用する説明
図である。第4図は、この実施例でのタスク制御ブロッ
ク(TCB)キューの構造を示す。第5図は新規に登録
されたタスクを第3図で示されるキューに接続し、第1
図で示される処理にて扱うために必要とする前処理のフ
ローチャートである。第6図は、実行終了したタスクを
第4図で示されるキューから外す後処理である。第7図
はアフィニティグループを説明する際の説明図である。 第8図は第5図の処理において使用するアフイニティグ
ループを登録するアフィニティグループ制御テーブルの
構造を示す図である。 第9図は第2の実施例で使用するIPアフイニティピッ
トをOにクリアする処理を示す。第10図は第2の実施
例でのTCBキューの構造を示す。 第11図は第2の実施例におけるタスクの選択処理を示
したものである。 第12図は第3の実施例で使用する前タスク表の概念を
説明するための説明図である。第13図は本実施例での
割込みによって中断された場合のタスクの中断処理の流
れを示す。第14図は前タスク表を更新する処理を示す
。第15図は前タスク表を用いてタスクを再実行するか
どうかを判定する処理を示す。第16図はタスクが内部
要因によって中断した場合の前タスク表の更新について
示す。 第17図は、第4の実施例でのシステム構成について示
す。第18図は第4の実施例のタスク選択処理を示した
ものである。
Claims (8)
- (1)複数台の処理装置と主記憶装置を有し、該処理装
置はそれぞれ緩衝記憶装置を有し、該緩衝記憶装置は前
記主記憶装置の一部分の写しを保持し、その時点で該緩
衝記憶装置内に保持していない主記憶領域を読み込む際
該緩衝記憶装置内の他の部分の写しを該緩衝記憶装置か
ら削除する計算機システムにおいて、タスク制御ブロッ
クキュー内の各タスク制御ブロックにはタスクが実行さ
れる処理装置の処理装置番号のための領域と該タスクが
実行される処理装置の緩衝記憶装置に残存する該タスク
に係る写しのデータ量を評価するための評価情報のため
の領域が設けられ、処理装置はタスク実行中断時には該
処理装置の処理装置番号及び中断時における前記評価情
報を実行中断したタスクのタスク制御ブロックに登録し
、そして、処理装置は、該計算機システムで処理される
複数のタスクから該処理装置にて実行するタスクを選択
する場合、前記タスク制御ブロックキュー内のタスク制
御ブロックを順次読み込み、前記処理装置番号と前記評
価情報による評価に基づき実行処理するタスクを選択し
、かつ、該評価の結果、他処理装置の緩衝記憶装置に残
存する該タスクに係る写しのデータ量が予め定められた
所定量より大であるタスクのときは該タスクを選択せず
、該タスクを他処理装置が選択できるようにしたことを
特徴とするマルチプロセッサにおけるタスクスケジュー
リング方式。 - (2)複数台の処理装置と主記憶装置を有し、該処理装
置はそれぞれ緩衝記憶装置を有し、該緩衝記憶装置は前
記主記憶装置の一部分の写しを保持し、その時点で該緩
衝記憶装置内に保持していない主記憶領域を読み込む際
該緩衝記憶装置内の他の部分の写しを該緩衝記憶装置か
ら削除する計算機システムにおいて、タスク制御ブロッ
クキュー内の各タスク制御ブロックにはタスクが実行さ
れる処理装置の処理装置番号のための領域と該タスクが
実行される処理装置の緩衝記憶装置に残存する該タスク
に係る写しのデータ量を評価するための評価情報のため
の領域が設けられ、処理装置はタスク実行中断時には該
処理装置の処理装置番号及び中断時における前記評価情
報を実行中断したタスクのタスク制御ブロックに登録し
、そして、処理装置は、該計算機システムで処理される
複数のタスクから該処理装置にて実行するタスクの選択
をする場合、前記タスク制御ブロックキュー内のタスク
制御ブロックを順次読み込み、読み込んだタスクのタス
ク制御ブロック内の処理装置番号と自処理装置番号とが
一致するときにはこのタスクを選択し、一致しないとき
には、タスク制御ブロック内の評価情報による評価を行
い、該評価の結果、他処理装置の緩衝記憶装置に残存す
る該タスクに係る写しのデータ量が予め定められた所定
量より小であるタスクのときはこのタスクを選択し、所
定量より大であるタスクのときは、このタスクを他処理
装置が選択できるようにすべくこのタスクを選択せず、
次のタスクの選択処理に移るようにしたことを特徴とす
るマルチプロセッサにおけるタスクスケジューリング方
式。 - (3)特許請求の範囲第1項または特許請求の範囲第2
項における複数台の処理装置が、該処理装置の1部ある
いはすべてによって共有される緩衝記憶装置を有するマ
ルチプロセッサにおけるタスクスケジューリング方式。 - (4)特許請求の範囲第1項または特許請求の範囲第2
項において、前記評価情報を時刻とし、前記中断時にお
ける前記評価情報をタスクが中断したときの時刻とし、
前記評価を、評価情報としての時刻と現在時刻との差と
予め定められた所定値との差に基づき行うようにしたマ
ルチプロセッサにおけるタスクスケジューリング方式。 - (5)特許請求の範囲第1項または特許請求の範囲第2
項において、共通して使用するデータの量の多いタスク
をまとめて一連のタスクからなるグループとし、該一連
のタスクからなるグループとグループに属さないタスク
とをもとにして前記タスク制御ブロックキューを構成し
たマルチプロセッサにおけるタスクスケジューリング方
式。 - (6)複数台の処理装置と主記憶装置を有し、該処理装
置はそれぞれ緩衝記憶装置を有し、該緩衝記憶装置は前
記主記憶装置の一部分の写しを保持し、その時点で該緩
衝記憶装置内に保持していない主記憶領域を読み込む際
該緩衝記憶装置内の他の部分の写しを該緩衝記憶装置か
ら削除する計算機システムにおいて、タスク制御ブロッ
クキュー内の各タスク制御ブロックにはタスクが実行さ
れる処理装置の処理装置番号のための領域と、該タスク
が実行される処理装置の緩衝記憶装置に残存する該タス
クに係る写しのデータ量を評価するための評価情報のた
めの領域と、該評価の結果のためのフラグ領域とが設け
られ、処理装置はタスク実行中断時には該処理装置の処
理装置番号及び中断時における前記評価情報を実行中断
したタスクのタスク制御ブロックに登録し、アイドル状
態にある処理装置は、前記タスク制御ブロックキュー内
のタスク制御ブロックを順次読み込み、読み込んだタス
クのタスク制御ブロック内の前記評価情報に基づきこの
時点での緩衝記憶装置に残存する該タスクに係る写しの
データ量が予め定められた所定量より“大”であるか“
小”であるかを評価し、この評価結果を前記フラグ領域
に書き込み、処理装置は、該計算機システムで処理され
る複数のタスクから該処理装置にて実行するタスクの選
択をする場合、前記タスク制御ブロックキュー内のタス
ク制御ブロックを順次読み込み、読み込んだタスクのタ
スク制御ブロック内の処理装置番号と自処理装置番号と
が一致するときにはこのタスクを選択し、一致しないと
きには、タスク制御ブロック内のフラグ領域を参照し、
評価結果が“小”であるときはこのタスクを選択し、評
価結果が“大”であるときは、このタスクを他処理装置
が選択できるようにすべくこのタスクを選択せず、次の
タスクの選択処理に移るようにしたことを特徴とするマ
ルチプロセッサにおけるタスクスケジユーリング方式。 - (7)特許請求の範囲第1項または特許請求の範囲第2
項において、主記憶装置上に各処理装置毎に作業領域を
設け、割込みによるタスク実行処理中断時に処理装置は
この時点における評価情報及び中断したタスクの継続実
行が可能か否かを示すフラグ情報を前記作業領域に格納
し、割込み処理終了後、該処理装置は、前記作業領域の
フラグ情報が継続実行可能を示しかつ評価情報に基づく
評価結果が緩衝記憶装置に残存する該タスクに係る写し
のデータ量が予め定められた所定量より“大”であるこ
とを示す場合には中断したタスクを継続実行し、該場合
以外の場合には、該計算機システムで処理される複数の
タスクから該処理装置にて実行するタスクを選択する処
理へ移るようにしたマルチプロセッサにおけるタスクス
ケジユーリング方式。 - (8)主記憶装置と、該主記憶装置に接続されそれぞれ
が共用緩衝記憶装置を備える複数のシステム制御装置と
、該システム制御装置に接続されそれぞれ緩衝記憶装置
を備える複数の処理装置とからなり、前記共用緩衝記憶
装置は前記主記憶装置の一部分の写しを保持し、前記緩
衝記憶装置は前記共用緩衝記憶装置の一部分の写しを保
持する計算機システムにおいて、タスク制御ブロックキ
ュー内の各タスク制御ブロックにはタスクが実行される
処理装置の処理装置番号のための領域と該タスクが実行
される処理装置の緩衝記憶装置に残存する該タスクに係
る写しのデータ量を評価するための評価情報のための領
域が設けられ、処理装置はタスク実行中断時には該処理
装置の処理装置番号及び中断時における前記評価情報を
実行中断したタスクのタスク制御ブロックに登録し、そ
して、処理装置は、該計算機システムで処理される複数
のタスクから該処理装置にて実行するタスクの選択をす
る場合、前記タスク制御ブロックキュー内のタスク制御
ブロックを順次読み込み、読み込んだタスクのタスク制
御ブロック内の処理装置番号と自処理装置番号とが一致
するときにはこのタスクを選択し、一致しないときには
、タスク制御ブロック内の評価情報による評価を行い、
該評価の結果値が予め定められた第一のしきい値より小
さくて他処理装置の緩衝記憶装置に残存する該タスクに
係る写しのデータ量が予め定められた所定量より大であ
るタスクのときはこのタスクを選択せずに次のタスク選
択処理に移り、前記評価の結果値が第一のしきい値より
大きいときには、該タスクに係る処理装置が同じ共用緩
衝記憶装置を使用している場合にはこのタスクを選択し
、使用していない場合には前記評価の結果値が予め定め
られた第二のしきい値より大きいときはこのタスクを選
択し、小さいときにはこのタスクを選択せずに次のタス
ク選択処理に移るようにしたことを特徴とするマルチプ
ロセッサにおけるタスクスケジューリング方式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2327627A JPH04195577A (ja) | 1990-11-28 | 1990-11-28 | マルチプロセッサにおけるタスクスケジューリング方式 |
| US07/797,912 US5349656A (en) | 1990-11-28 | 1991-11-26 | Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2327627A JPH04195577A (ja) | 1990-11-28 | 1990-11-28 | マルチプロセッサにおけるタスクスケジューリング方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04195577A true JPH04195577A (ja) | 1992-07-15 |
Family
ID=18201162
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2327627A Pending JPH04195577A (ja) | 1990-11-28 | 1990-11-28 | マルチプロセッサにおけるタスクスケジューリング方式 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5349656A (ja) |
| JP (1) | JPH04195577A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008310555A (ja) * | 2007-06-14 | 2008-12-25 | Asyst Technologies Japan Inc | プロセス状態監視装置 |
| WO2025154687A1 (en) * | 2024-01-17 | 2025-07-24 | Nec Corporation | Information processing system, information processing method and program |
Families Citing this family (67)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2791236B2 (ja) * | 1991-07-25 | 1998-08-27 | 三菱電機株式会社 | プロトコル並列処理装置 |
| US5408663A (en) * | 1993-11-05 | 1995-04-18 | Adrem Technologies, Inc. | Resource allocation methods |
| DE4400203C1 (de) * | 1994-01-05 | 1995-08-03 | Daimler Benz Ag | Verfahren zur Überwachung von Fahrzeugfunktionskomponenten |
| JP3636744B2 (ja) * | 1994-06-14 | 2005-04-06 | 株式会社日立製作所 | 分散システムおよび分散システムの自動運転スケジュールの作成方法 |
| US5717918A (en) * | 1994-06-17 | 1998-02-10 | Hitachi, Ltd. | Method for concurrently performing a physical sequential scan of a database into a database buffer which is queued until a preceding scan is completed |
| US6163793A (en) * | 1994-08-05 | 2000-12-19 | Intel Corporation | Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor |
| US6243762B1 (en) * | 1994-08-08 | 2001-06-05 | Mercury Computer Systems, Inc. | Methods and apparatus for data access and program generation on a multiprocessing computer |
| US5842014A (en) * | 1995-06-14 | 1998-11-24 | Digidesign, Inc. | System and method for distributing processing among one or more processors |
| US6009507A (en) * | 1995-06-14 | 1999-12-28 | Avid Technology, Inc. | System and method for distributing processing among one or more processors |
| US5768594A (en) | 1995-07-14 | 1998-06-16 | Lucent Technologies Inc. | Methods and means for scheduling parallel processors |
| US5784614A (en) * | 1995-07-27 | 1998-07-21 | Ncr Corporation | Cache affinity scheduling method for multi-processor nodes in a split transaction bus architecture |
| JPH09244940A (ja) * | 1996-03-12 | 1997-09-19 | Hitachi Ltd | 分散計算機資源の管理方法 |
| US5960454A (en) * | 1996-12-19 | 1999-09-28 | International Business Machines Corporation | Avoiding cache collisions between frequently accessed, pinned routines or data structures |
| JP3671595B2 (ja) * | 1997-04-01 | 2005-07-13 | 株式会社日立製作所 | 複合計算機システムおよび複合i/oシステム |
| US6353862B1 (en) | 1997-04-04 | 2002-03-05 | Avid Technology, Inc. | Video device manager for managing motion video output devices and supporting contexts and buffer adoption |
| US20020023175A1 (en) * | 1997-06-04 | 2002-02-21 | Brian R. Karlak | Method and apparatus for efficient, orderly distributed processing |
| US6223208B1 (en) * | 1997-10-03 | 2001-04-24 | International Business Machines Corporation | Moving data in and out of processor units using idle register/storage functional units |
| US6065131A (en) * | 1997-11-26 | 2000-05-16 | International Business Machines Corporation | Multi-speed DSP kernel and clock mechanism |
| US6363472B1 (en) * | 1998-09-03 | 2002-03-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for minimizing effect of replacing programming languages in telephony systems |
| US6279082B1 (en) | 1998-10-14 | 2001-08-21 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient use of cache to improve access to memory of page type |
| US6591287B1 (en) * | 1999-09-08 | 2003-07-08 | Lucent Technologies Inc. | Method to increase the efficiency of job sequencing from sequential storage |
| 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 |
| US7518993B1 (en) * | 1999-11-19 | 2009-04-14 | The United States Of America As Represented By The Secretary Of The Navy | Prioritizing resource utilization in multi-thread computing system |
| JP2002055966A (ja) * | 2000-08-04 | 2002-02-20 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法 |
| US6782410B1 (en) * | 2000-08-28 | 2004-08-24 | Ncr Corporation | Method for managing user and server applications in a multiprocessor computer system |
| US6640289B2 (en) * | 2000-11-15 | 2003-10-28 | Unisys Corporation | Software controlled cache line ownership affinity enhancements in a multiprocessor environment |
| JP3578082B2 (ja) * | 2000-12-20 | 2004-10-20 | 株式会社デンソー | 処理実行装置及び記録媒体 |
| US6473434B1 (en) | 2001-04-20 | 2002-10-29 | International Business Machines Corporation | Scaleable and robust solution for reducing complexity of resource identifier distribution in a large network processor-based system |
| US7234136B2 (en) * | 2001-11-02 | 2007-06-19 | Sun Microsystems, Inc. | Method and apparatus for selecting references for prefetching in an optimizing compiler |
| US7257810B2 (en) * | 2001-11-02 | 2007-08-14 | Sun Microsystems, Inc. | Method and apparatus for inserting prefetch instructions in an optimizing compiler |
| US7305675B1 (en) * | 2002-01-11 | 2007-12-04 | Advanced Micro Devices, Inc. | Processing tasks with failure recovery |
| US7085866B1 (en) | 2002-02-19 | 2006-08-01 | Hobson Richard F | Hierarchical bus structure and memory access protocol for multiprocessor systems |
| US6959372B1 (en) * | 2002-02-19 | 2005-10-25 | Cogent Chipware Inc. | Processor cluster architecture and associated parallel processing methods |
| US7464138B2 (en) * | 2002-03-29 | 2008-12-09 | International Business Machines Corporation | Mirror queue in a shared queue environment |
| US20040003019A1 (en) * | 2002-06-28 | 2004-01-01 | Sun Microsystems, Inc., A Delaware Corporation | Process management for real time systems management controller |
| US7356805B2 (en) * | 2003-01-02 | 2008-04-08 | University Of Rochester | Temporal affinity analysis using reuse signatures |
| US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
| US8028292B2 (en) * | 2004-02-20 | 2011-09-27 | Sony Computer Entertainment Inc. | Processor task migration over a network in a multi-processor system |
| GB0405595D0 (en) * | 2004-03-12 | 2004-04-21 | Ibm | Method and system for affinity management |
| CN100459681C (zh) * | 2004-08-18 | 2009-02-04 | 佳能株式会社 | 图像摄影再生装置、数据处理方法 |
| US20060075079A1 (en) * | 2004-10-06 | 2006-04-06 | Digipede Technologies, Llc | Distributed computing system installation |
| US7689993B2 (en) * | 2004-12-04 | 2010-03-30 | International Business Machines Corporation | Assigning tasks to processors based at least on resident set sizes of the tasks |
| US7734833B2 (en) * | 2005-09-08 | 2010-06-08 | International Business Machines Corporation | Method for scheduling operations called by a task on a real-time or non-real time processor |
| EP1953643A3 (en) * | 2007-02-01 | 2009-12-16 | Denso Corporation | Calculation apparatus provided with a plurality of calculating units which access a single memory |
| JP2009020692A (ja) * | 2007-07-11 | 2009-01-29 | Toshiba Corp | タスク管理装置、タスク管理方法及びタスク管理プログラム |
| US8819104B1 (en) * | 2007-09-26 | 2014-08-26 | Emc Corporation | Communication with multiple storage processors using network infrastructure |
| JP4523965B2 (ja) * | 2007-11-30 | 2010-08-11 | 株式会社日立製作所 | リソース割当方法、リソース割当プログラム、および、運用管理装置 |
| US8122442B2 (en) * | 2008-01-31 | 2012-02-21 | Oracle America, Inc. | Method and system for array optimization |
| US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
| US8566830B2 (en) * | 2008-05-16 | 2013-10-22 | Microsoft Corporation | Local collections of tasks in a scheduler |
| US20100194920A1 (en) * | 2009-02-03 | 2010-08-05 | Bowei Gai | Behaviorally-based software acceleration for digital camera operations |
| US8856794B2 (en) * | 2009-10-13 | 2014-10-07 | Empire Technology Development Llc | Multicore runtime management using process affinity graphs |
| US8893133B2 (en) * | 2010-09-01 | 2014-11-18 | International Business Machines Corporation | Dynamic test scheduling by ordering tasks for performance based on similarities between the tasks |
| US10169091B2 (en) * | 2012-10-25 | 2019-01-01 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
| CN105210038B (zh) | 2013-05-15 | 2018-10-30 | 英派尔科技开发有限公司 | 核亲和性位掩码变换 |
| CN103699435B (zh) * | 2013-12-25 | 2017-05-03 | 龙芯中科技术有限公司 | 负载均衡方法及装置 |
| US10120716B2 (en) * | 2014-10-02 | 2018-11-06 | International Business Machines Corporation | Task pooling and work affinity in data processing |
| US10936369B2 (en) * | 2014-11-18 | 2021-03-02 | International Business Machines Corporation | Maintenance of local and global lists of task control blocks in a processor-specific manner for allocation to tasks |
| US20160378471A1 (en) * | 2015-06-25 | 2016-12-29 | Intel IP Corporation | Instruction and logic for execution context groups for parallel processing |
| US10185593B2 (en) | 2016-06-03 | 2019-01-22 | International Business Machines Corporation | Balancing categorized task queues in a plurality of processing entities of a computational device |
| US11029998B2 (en) * | 2016-06-03 | 2021-06-08 | International Business Machines Corporation | Grouping of tasks for distribution among processing entities |
| US10691502B2 (en) | 2016-06-03 | 2020-06-23 | International Business Machines Corporation | Task queuing and dispatching mechanisms in a computational device |
| CN109298917B (zh) * | 2017-07-25 | 2020-10-30 | 沈阳高精数控智能技术股份有限公司 | 一种适用于实时系统混合任务的自适应调度方法 |
| US11150944B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Balancing mechanisms in ordered lists of dispatch queues in a computational device |
| CN109597680B (zh) * | 2018-10-22 | 2023-07-07 | 创新先进技术有限公司 | 任务排队响应参数估算方法及装置 |
| US11144346B2 (en) * | 2019-05-15 | 2021-10-12 | Capital One Services, Llc | Systems and methods for batch job execution in clustered environments using execution timestamp granularity to execute or refrain from executing subsequent jobs |
| DE102024119874A1 (de) * | 2024-07-12 | 2026-01-15 | Dspace Gmbh | Computerimplementiertes Verfahren zum Zuweisen einer Mehrzahl an Simulationsaufgaben zu einer Mehrzahl an Simulationsagenten und entsprechende Vorrichtung zur Datenverarbeitung |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4136386A (en) * | 1977-10-06 | 1979-01-23 | International Business Machines Corporation | Backing store access coordination in a multi-processor system |
| US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
| US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
| US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
| JP2629726B2 (ja) * | 1987-08-22 | 1997-07-16 | 日本電気株式会社 | 階層化キャッシュ装置 |
| JPH01133162A (ja) * | 1987-11-18 | 1989-05-25 | Fujitsu Ltd | キャッシュメモリ制御方式 |
| JPH0821001B2 (ja) * | 1988-02-12 | 1996-03-04 | 富士通株式会社 | キャッシュメモリの制御方法 |
| US5109512A (en) * | 1990-05-31 | 1992-04-28 | International Business Machines Corporation | Process for dispatching tasks among multiple information processors |
| US5185861A (en) * | 1991-08-19 | 1993-02-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
-
1990
- 1990-11-28 JP JP2327627A patent/JPH04195577A/ja active Pending
-
1991
- 1991-11-26 US US07/797,912 patent/US5349656A/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008310555A (ja) * | 2007-06-14 | 2008-12-25 | Asyst Technologies Japan Inc | プロセス状態監視装置 |
| WO2025154687A1 (en) * | 2024-01-17 | 2025-07-24 | Nec Corporation | Information processing system, information processing method and program |
Also Published As
| Publication number | Publication date |
|---|---|
| US5349656A (en) | 1994-09-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04195577A (ja) | マルチプロセッサにおけるタスクスケジューリング方式 | |
| TWI426452B (zh) | Work processing device | |
| KR101366075B1 (ko) | 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치 | |
| JP5516744B2 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
| TWI520056B (zh) | Virtual queue processing circuit and work processing device | |
| TWI416413B (zh) | Work processing device | |
| EP0969380A2 (en) | Method for efficient non-virtual main memory management | |
| TWI426451B (zh) | Work processing device | |
| US20160085601A1 (en) | Transparent user mode scheduling on traditional threading systems | |
| CN105893126A (zh) | 一种任务调度方法及装置 | |
| CN112346835B (zh) | 一种基于协程的调度处理方法及系统 | |
| WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
| JP3034873B2 (ja) | 情報処理装置 | |
| JP2000047887A (ja) | 投機的マルチスレッド処理方法および投機的マルチスレッド処理装置 | |
| CN111538535A (zh) | 一种cpu指令处理方法、控制器和中央处理单元 | |
| CN116841751B (zh) | 一种多任务线程池的策略配置方法、装置和存储介质 | |
| CN117331648A (zh) | 一种缓解无服务器计算冷启动问题的任务调度系统及方法 | |
| CN118550675B (zh) | 一种业务请求处理方法、系统、电子设备及存储介质 | |
| JPH0895810A (ja) | バッチジョブ実行方式 | |
| CN120086257B (zh) | 一种numa架构下的异步i/o实现方法、设备及介质 | |
| JPS603229B2 (ja) | 情報処理方式 | |
| CN111352860B (zh) | 一种Linux Bcache中的垃圾回收方法及系统 | |
| US20220318143A1 (en) | Methods and systems for fast allocation of fragmented caches | |
| JPH10161915A (ja) | 後発ジョブ優先の排他制御を実現するデータ引き継ぎ方法 | |
| CN120929217A (zh) | 一种基于OpenHarmony的协程任务调度优化方法 |