JPH07146799A - マルチタスク・システムにおけるタスク切り換え方法 - Google Patents

マルチタスク・システムにおけるタスク切り換え方法

Info

Publication number
JPH07146799A
JPH07146799A JP29163693A JP29163693A JPH07146799A JP H07146799 A JPH07146799 A JP H07146799A JP 29163693 A JP29163693 A JP 29163693A JP 29163693 A JP29163693 A JP 29163693A JP H07146799 A JPH07146799 A JP H07146799A
Authority
JP
Japan
Prior art keywords
task
task information
information
execution
register
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
JP29163693A
Other languages
English (en)
Inventor
Yutaka Enko
豊 円光
Shigeo Takasaki
繁夫 高崎
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29163693A priority Critical patent/JPH07146799A/ja
Publication of JPH07146799A publication Critical patent/JPH07146799A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 タスク切り換えに伴うシステムのオーバーヘ
ッドを低減する。 【構成】 タスク切り換えの際に、レジスタの値がメモ
リ中の退避領域のそれと一致しているか否かをプロセッ
サ中のビット行列により管理し、値が一致していないレ
ジスタについてのみ情報の入れ替えを行なう。 【効果】 システムが、オーバーヘッドのより低いタス
ク切り換えを実行することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチタスク(複数の
タスクを並行に動作させる)方式のコンピュータにおけ
る、タスク切り換え(オペレーティング・システム等に
よるタスクのプロセッサへの割り当て)方法に関するも
のである。
【0002】
【従来の技術】マルチタスク・システムは、システムが
複数のタスクを並行に実行するシステムである。
【0003】タスクは、コンピュータ・システム中の一
つあるいは複数のプロセッサにより実行され、一つのプ
ロセッサは同時に一つのタスクを実行することができ
る。
【0004】マルチタスク・システムにおいて、システ
ムプログラムは、プロセッサによるタスクの実行をタイ
ムクォンタムと呼ばれる時間間隔で切り換える。
【0005】システム中に複数の実行可能な(プロセッ
サに割り当てることができる)タスクがあったとき、シ
ステムプログラムは、プロセッサにいずれかのタスクを
プロセッサに割り当てる。
【0006】マルチタスクを実現するためには、システ
ムプログラムはタスクの切り換えごとに、切り換え元の
タスクのコンテクスト(プロセッサのレジスタセット
等)を保存し、切り換え先のタスクのコンテクストをプ
ロセッサに設定しなおす必要がある。従来の技術では、
タスク切り換えに伴うレジスタの退避/回復を、プロセ
ッサ中のすべてのレジスタについて区別無く行ってい
る。
【0007】
【発明が解決しようとする課題】マルチタスク・システ
ムの性能指標のひとつに、タスクの切り換えによるオー
バーヘッドがある。プロセッサの動作する全体の時間に
は、ユーザタスク(コンピュータの使用者が生成したタ
スク)実行ののべ時間と、オペレーティング・システム
の動作時間等からなるその他の時間が含まれ、全体の時
間に占めるユーザタスクの実行時間の割合は高いほど良
い。複数のタスクを切り換えることによるシステムのオ
ーバーヘッドは、ユーザタスクの実行時間の割合を減少
させ、ひいてはシステムのスループットを低下させる。
プロセッサのレジスタ数が多く、コンテクスト切り換え
にともない、退避,回復する情報が大きいとスループッ
トの低下が顕著になる。
【0008】本発明は上述のようなタスク切り換えに伴
うタスク情報の退避/回復のコストを削減し、システム
のオーバーヘッドの問題を解決しようとしている。
【0009】
【課題を解決するための手段】図1に課題を解決するた
めの手段を示す。本発明は、実行中のタスク情報を保持
する「実行タスク情報保持手段(101)」と、実行待
ちの(現在は実行されていないが将来実行される予定
の)タスク情報を保持する「タスク情報退避手段(10
2〜104)」と、実行タスク情報保持手段内の情報の
読み書きを行う「タスク情報アクセス手段(105)」
と、実行タスク情報保持手段中のタスク情報とタスク情
報退避手段中の情報の一致/不一致を管理し、タスク情
報の退避/回復の際に入れ換えが必要な情報を特定す
る、「タスク情報管理手段(106)」を備える。
【0010】タスク情報管理手段は内部にM×Nのビッ
ト行列(107)を備える。ただし、実行タスク情報保
持手段(101)は、その保持手段がM個のグループに
分割されているものとし、Mはそのグループ数である。
Nはシステムにより決められた数である。
【0011】
【作用】システム中において、上記手段がタスク情報管
理のためにどのように作用するかを以下述べる。
【0012】システムは、ユーザタスクのうちのひとつ
を実行するとき、実行中のタスク情報を実行タスク情報
保持手段(101)に保持し、それ以外のタスクの情報
を各々のタスク情報退避手段(102〜104)へ保持
する。
【0013】システムがL個のユーザタスクを管理する
とき、システムはこのうちのN個のユーザタスクを、上
述のビット行列(107)中のN個の列に対応づける。
L≦Nならばすべてのタスクはビット行列中のいずれか
の列に対応づけることが可能である。L>Nならば、対
応付けられず余るタスクが出現するが、この場合、余っ
たタスクに対応するビットはすべて0であるとみなす。
また、ビット行列の各行は、各々、実行タスク情報保持
手段(101)中の各情報グループに対応している。ビ
ット行列の初期値は0とする。
【0014】実行タスク情報保持手段(101)内の情
報は、すべてタスク情報アクセス手段(105)により
読み書きを行う。
【0015】実行タスク情報保持手段(101)中の情
報に書き込みを行うとき、タスク情報アクセス手段(1
05)は、実行タスク情報保持手段(101)に保持さ
れている書き込み前の値と、書き込みを行おうとする値
とを比較し、これらが異なるとき(以後、このように、
異なる値により実行タスク情報保持手段(101)中の
情報を書き替えることを「更新」と呼ぶ。)、タスク情
報管理手段(106)のビット行列中の(行,列)=
(更新された情報が属するグループ,すべて)のビット
を0にする。この操作は、実行タスク情報保持手段(1
01)へのあらゆる書き込みすべてについておこなう。
【0016】さらに、上記においてタスク情報退避手段
(102〜104)から情報を読みだし、実行タスク情
報保持手段(101)への書き込みをおこなった場合に
は、タスク情報アクセス手段(105)は、タスク情報
管理手段のビット行列(107)中の(行,列)=(グ
ループ,退避タスク)のビットを1にする。
【0017】また、実行タスク情報保持手段(101)
から情報を読みだし、タスク情報退避手段(102〜1
04)への書き込みをおこなったとき、タスク情報アク
セス手段(105)は、タスク情報管理手段(106)
のビット行列(107)中の(行,列)=(グループ,
退避タスク)のビットを1にする。
【0018】上述の方法によりビット行列の管理をおこ
なうことで、ビット行列(107)中の要素(m,n)
は、実行タスク情報保持手段(101)中のグループm
の情報と、タスクnのタスク情報退避手段中のそれとの
一致/不一致(1のとき一致,0のとき不一致)を表
す。
【0019】さらに、上述のシステムが現在のタスクか
ら実行待ちの別のタスクへ切り換える際の作用を具体的
に述べる。
【0020】あるユーザタスクがタイム・クォンタムを
使いきる、I/O完了割込み待ちになる等の理由によ
り、ユーザタスクが中断され、タスク管理システム(こ
こでは、ユーザタスクを切り替えるためにシステムが実
行するOS等のプログラム,もしくは同等の機能を持つ
ハードウェアをいうことにする。)の動作がはじまった
とする。このとき、タスク管理システムが実行タスク情
報保持手段(101)中の情報を実行待ちタスク情報保
持手段(102〜104のいずれか)に退避しなければ
ならない。そこで、システムはタスク情報管理手段(1
06)内のビット行列(107)中、それまで実行して
いたユーザタスク(切り替え元タスク)に対応する列の
ビット値をもとにタスク情報の退避を行う。具体的に
は、当該ビット列が1であればそのグループに属する情
報は退避せず、0であるグループに属する情報のみを退
避する。なぜならば、ビットが1であるグループに属す
るタスク情報は、当該切り替え元タスクへの切り替えの
際に実行待ちタスク情報退避手段()から実行タスク情
報保持手段(101)に書き込まれてから更新されてい
ないからである。
【0021】つぎに、タスク管理システムが、システム
の実行を別のユーザタスクへ切り換える際、タスク管理
システムは、別の切り替えたいユーザタスク(切り替え
先ユーザタスク)の情報が退避されているタスク情報退
避手段(例えば104とする)から実行タスク情報保持
手段(101)へタスク情報を回復しなければならな
い。タスク管理システムは、切り替え先ユーザタスクを
選択した後、そのタスクへ切り換えるためにどの情報を
入れ替える必要があるかを、タスク情報管理手段中の切
り替え先タスクに対応するビット列(108)より判断
する。具体的には、当該ビット列が1であればそのグル
ープに属する情報は回復せず、0であるグループに属す
る情報のみを退避する。なぜならば、ビットが1である
グループに属するタスク情報は、実行タスク情報保持手
段(101)中とタスク情報退避手段(104)中とで
一致しているからである。
【0022】タスク管理システムは複数の切り替え先タ
スクの候補の間で、情報入替えのためのコストを比較
し、コストのより低いタスクを選択することもできる。
通常、コストを入れ替え必要な情報の数とし、前出のビ
ット列を複数抽出し、各ビット列中の1の合計数の最も
多いタスクを選択することで、切り換えコストの最も低
いタスクを決定することができる。
【0023】
【実施例】本発明における第1の実施例を図2〜4によ
り示す。本実施例におけるシステムはプロセッサ(20
1),メモリ(202)を備え、プロセッサはM個のレ
ジスタ(203),レジスタ情報管理手段(204),
レジスタアクセス手段(205)を備える。さらに、レ
ジスタ情報管理手段はM×Nビットの記憶手段からなる
ビット行列(206)を備える。Mはレジスタの数,N
はプロセッサに固有の値であり、本実施例ではN=25
6である。ビット行列の初期値は0である。
【0024】次に、本実施例のシステムにおけるタスク
管理方法を説明する。
【0025】システムは同時にL個までのユーザタスク
を管理し、各タスクに固有の番号(ユーザタスク番号)
を付ける。このうちのN個のユーザタスクを、タスク番
号を用いてプロセッサ中のビット行列中の列(最大N
個)に対応付ける。
【0026】本システムがユーザタスクのうちのひとつ
を実行しているとき、プロセッサ内のM個のレジスタ
(203)の値は実行中タスクのコンテクストの一部で
あり、他のユーザタスクのレジスタのコンテクストはメ
モリ中のレジス退避領域(207)に退避される。
【0027】レジスタの読みだし/書き込みはすべてレ
ジスタアクセス手段(205)を介して行なう。命令に
よりレジスタへの書き込みを行なうとき、いかなるとき
もレジスタアクセス手段は既存のレジスタ値と書き込み
値を比較し、値が異なる場合にのみ、書き込み対象のレ
ジスタに対応するビット行列(206)中の行(20
8)をクリアする(302)。
【0028】つぎに、本実施例のシステムが現在のタス
クから実行待ちの別のタスクへ実行を切り換える際の動
作(301,401,402)を述べる。
【0029】あるユーザタスクがタイム・クォンタムを
使いきる,I/O完了割込み待ちになる等の理由により
実行が中断されると、システムプログラムの動作が開始
される。システムプログラムはつぎの手順によりプロセ
ッサ内のレジスタをメモリ中のレジスタ退避領域に退避
を行なう(401)。まず、システムプログラムは実行
を中断したタスクに対応するビット行列中の列(20
9)に着目する。もしも対応する列が存在しなければ、
値0のビット列があるとみなす。当該ビット列を先頭か
ら順に検査し、値が0であるビットに対応するレジスタ
のみを退避領域にコピーする。この動作を全レジスタに
ついて行なったのち、当該ビット列の要素をすべて1に
する。
【0030】システムプログラムは、さらに各種のシス
テム動作を行なった後、実行を別のユーザタスクへ切り
換える(301)。このため、システムプログラムはつ
ぎの手順によりメモリ中のレジスタ退避領域からプロセ
ッサ内のレジスタへコンテクストの回復を行う(40
2)。まず、システムプログラムは切り換えたいタスク
に対応するビット行列中の列(209)に着目する。
(もしも対応する列が存在しなければ、新たに割り当て
るか、もしくは値0のビット列があるとみなす。)当該
ビット列を先頭から順に検査し、値が0であるビットに
対応する退避情報のみを退避領域からレジスタへコピー
する。この動作を全レジスタについて行なったのち、当
該ビット列の要素をすべて1にする。
【0031】本実施例のシステムにおいては、N個まで
のタスクについて入替えレジスタの比較を行なうことが
できる。この機能を用いてシステムプログラムは複数の
切り換え先タスクの候補の間で、情報入れ替えのための
コストを比較し、コストのより低いタスクを選択するこ
ともできる。
【0032】すなわち、コストを入替え必要なレジスタ
の数とした場合、上述のレジスタ回復手順を拡張し、切
り換え先タスクの候補を複数選び、システムプログラム
は前出のビット列のうち、各候補に対応する複数のビッ
ト列に着目し、各ビット列中の1が最も多いタスクを選
択し、切り換えコストの低いタスクを決定することがで
きる。
【0033】つぎに本発明の第2の実施例を図2〜5に
より示す。本実施例は、第1の実施例において行われる
レジスタの退避/回復手順を、プロセッサの命令により
行う例である。
【0034】本実施例におけるシステムはプロセッサ
(201),メモリ(202)を備え、プロセッサはM
個のレジスタ(203),レジスタ情報管理手段(20
4),レジスタアクセス手段(205)を備える。さら
に、レジスタ情報管理手段はM×Nビットの記憶手段か
らなるビット行列(206)を備える。Mはレジスタの
数,Nはプロセッサに固有の値であり、本実施例ではN
=256である。ビット行列の初期値は0である。
【0035】次に、本実施例のシステムにおけるタスク
管理方法を説明する。
【0036】システムは同時にL個までのユーザタスク
を管理し、各タスクに固有の番号(ユーザタスク番号)
を付ける。このうちのN個のユーザタスクを、タスク番
号を用いてプロセッサ中のビット行列中の列(最大N
個)に対応付ける。
【0037】本システムがユーザタスクのうちのひとつ
を実行しているとき、プロセッサ内のM個のレジスタの
値は実行中タスクのコンテクストの一部であり、他のユ
ーザタスクのレジスタのコンテクストはメモリ中のレジ
スタ退避領域(207)に退避される。
【0038】レジスタの読みだし/書き込みはすべてレ
ジスタアクセス手段(205)を介して行なう。命令に
よりレジスタへの書き込みを行なうとき、いかなるとき
もレジスタアクセス手段は既存のレジスタ値と書き込み
値を比較し、値が異なる場合にのみ、書き込み対象のレ
ジスタに対応するビット行列(206)中の行(20
8)をクリアする。
【0039】さらに、プロセッサはレジスタ回復命令,
およびレジスタ退避命令を備える。(図5)レジスタ回
復命令はタスク番号と、レジスタ退避領域のアドレスを
引数に持ち(501)、引数により指定されたタスクの
レジスタ・コンテクストを、引数により指定されたレジ
スタ退避領域(207)からレジスタへデータをコピー
する。ただし、引数により指定されたタスクに対応する
列(209)がビット行列中に存在すれば、そのビット
列に着目し、そのビット列の要素が1のものについて
は、コピーを省略する。対応する列が存在しなければ、
そのビット列は要素0の仮想のビット列とみなす(すな
わち、全てのレジスタについてコピーを行なう。)。コ
ピーに際して、これはレジスタへの書き込みであるの
で、上述のレジスタアクセス手段(205)による動作
(既存のレジスタ値と書き込み値を比較し、値が異なる
場合にのみ、書き込み対象のレジスタ(210)に対応
するビット行列(206)中の行(208)をクリアす
る動作)も同時に行なわれる。そしてコピー終了の後、
着目するビット列(209)の要素をすべて1にする。
【0040】レジスタ退避命令は、タスク番号と、レジ
スタ退避領域のアドレスを引数に持ち(502)、引数
により指定されたタスクのレジスタ・コンテクストを、
レジスタから指定されたメモリ中のレジスタ退避領域
(207)へコピーする。ただし、引数により指定され
たタスクに対応する列(207)がビット行列中に存在
すれば、そのビット列に着目し、そのビット列の要素が
0の場合には対応するレジスタにコピーを行い、1の場
合にはコピーを省略する。対応する列が存在しなけれ
ば、そのビット列の各要素は0とみなす(すなわち、全
てのレジスタについてコピーを行なう。)。そしてコピ
ー終了の後、着目するビット列(209)の要素をすべ
て1にする。
【0041】つぎに、本実施例のシステムが現在のタス
クから実行待ちの別のタスクへ実行を切り換える際の動
作を述べる。
【0042】あるユーザタスクがタイム・クォンタムを
使いきる,I/O完了割込み待ちになる等の理由により
実行が中断されると、システムプログラムの動作が開始
される。システムプログラムはプロセッサ内のレジスタ
をメモリ中のレジスタ退避領域に退避を行なう。これ
は、上述のレジスタ退避命令を使用することにより行な
い、実行が中断されたプロセス番号,タスクに対応する
レジスタ退避領域のアドレスを引数に指定する。
【0043】システムプログラムは、さらに各種のシス
テム動作をおこなった後、実行を別のユーザタスクへ切
り換える。システムプログラムはレジスタ回復命令を用
いてレジスタ退避領域(207)からレジスタ(20
3)へ、タスクコンテクストを回復する。引数に切り換
え先ユーザタスク番号、およびレジスタ退避領域のアド
レスを指定する。
【0044】本実施例のシステムは、N個までのタスク
について入替えレジスタ数の比較を行なうことができ
る。この機能を用いてシステムは複数の切り換え先タス
クの候補の間で、情報入れ替えのためのコストを比較
し、コストのより低いタスクを選択することもできる。
コストを入替え必要なレジスタの数とした場合、つぎの
方法により実施する。
【0045】上述のレジスタ回復命令を拡張し、回復に
係るタスクの候補を引数により複数指定できるようにす
る(503)。プロセッサはこの命令を受け取ると、前
出のビット列のうち、複数のビット列に着目し、各ビッ
ト列中の1が最も多いタスクを選択し、切り換え先タス
クを決定する。
【0046】
【発明の効果】本発明は、ビット行列を用いて、現在実
行中のタスクのコンテクストがその退避領域中の情報と
一致しているか否かを管理している。このため、システ
ムがタスクを切り換える際に退避/回復すべき情報をよ
り細かく特定し、退避/回復のオーバーヘッドがより低
いタスク切り換えを実行することができる。また、ひい
てはこれにより、ユーザプロセス実行のスループットを
向上する。
【図面の簡単な説明】
【図1】本発明のタスク切り換え機構の構成図。
【図2】本発明のシステムの実施例。
【図3】本発明の方法によるタスク切り換え手順およ
び、レジスタへの書き込み手順を示した図。
【図4】本発明の方法によるレジスタ退避/回復手順。
【図5】レジスタ退避/回復命令フォーマットを示した
図。
【符号の説明】
101…実行タスク情報保持手段,102…タスク情報
退避手段(タスクA),103…タスク情報退避手段
(タスクB),104…タスク情報退避手段(タスク
n),105…タスク情報アクセス手段,106…タス
ク情報管理手段,107…ビット行列,108…ビット
行列中の列,201…本実施例におけるプロセッサ,2
02…メモリ,203…レジスタ,204…レジスタ情
報管理手段,205…レジスタアクセス手段,206…
ビット行列,207…レジスタ退避手段,208…21
0のレジスタに対応するビット行,209…ビット行列
中のビット列,210…208のビット行に対応するレ
ジスタ,211…ビット行列中のビット行,301…タ
スク切り換え動作手順,302…レジスタへの書き込み
手順,401…レジスタ退避手順,402…レジスタ回
復手順。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】実行タスク情報保持手段と、タスク情報退
    避手段と、タスク情報アクセス手段、およびタスク情報
    管理手段を備えることを特徴としたタスク管理システ
    ム。
  2. 【請求項2】上記タスク情報管理手段に、行列中の各列
    にシステムの管理するタスク,各行にレジスタを対応付
    けたビット行列を備え、これによりタスク間の情報管理
    を行うことを特徴としたタスク管理システム。
  3. 【請求項3】プロセッサがレジスタの退避/回復を行う
    命令を備え、これら命令がタスク情報管理手段を用いて
    レジスタの退避/回復を行う機能を備えたタスク管理シ
    ステム。
JP29163693A 1993-11-22 1993-11-22 マルチタスク・システムにおけるタスク切り換え方法 Pending JPH07146799A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29163693A JPH07146799A (ja) 1993-11-22 1993-11-22 マルチタスク・システムにおけるタスク切り換え方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29163693A JPH07146799A (ja) 1993-11-22 1993-11-22 マルチタスク・システムにおけるタスク切り換え方法

Publications (1)

Publication Number Publication Date
JPH07146799A true JPH07146799A (ja) 1995-06-06

Family

ID=17771522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29163693A Pending JPH07146799A (ja) 1993-11-22 1993-11-22 マルチタスク・システムにおけるタスク切り換え方法

Country Status (1)

Country Link
JP (1) JPH07146799A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678930B1 (ko) * 1999-10-11 2007-02-07 삼성전자주식회사 디지털 시그널 프로세서를 위한 실시간 제어 시스템
US8375390B2 (en) 2005-08-15 2013-02-12 Sony Computer Entertainment Inc. Scheduling method and scheduling apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678930B1 (ko) * 1999-10-11 2007-02-07 삼성전자주식회사 디지털 시그널 프로세서를 위한 실시간 제어 시스템
US8375390B2 (en) 2005-08-15 2013-02-12 Sony Computer Entertainment Inc. Scheduling method and scheduling apparatus

Similar Documents

Publication Publication Date Title
US5355457A (en) Data processor for performing simultaneous instruction retirement and backtracking
US7930271B2 (en) Method and apparatus for data processing
US20030028723A1 (en) Efficient data backup using a single side file
JPH01251258A (ja) ネットワークシステムにおける共用領域管理方法
JPH0683687A (ja) データ処理システム及びその方法
JPH06139120A (ja) ファイルの更新方式
EP0646861B1 (en) A history buffer system
US20080134199A1 (en) Method and Apparatus for Allowing Restarted Programs to Use Old Process Identifications and thread identifications
JPS63156236A (ja) レジスタ装置
CN100440153C (zh) 处理器
US6714961B1 (en) Multiple job signals per processing unit in a multiprocessing system
CN111290881A (zh) 一种数据恢复方法、装置、设备及存储介质
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
EP0514763A2 (en) A data processor having a logical register content-addressable memory
JPH07146799A (ja) マルチタスク・システムにおけるタスク切り換え方法
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system
JP2001229063A (ja) データ管理システム
JPH1139171A (ja) マルチタスク処理装置、マルチタスク処理制御方法及び制御プログラム記憶媒体
US7793086B2 (en) Link stack misprediction resolution
JP3043662B2 (ja) データバックアップ方式
JPH0713805A (ja) 並列計算機及びプログラム実行再現方法
JPH04181331A (ja) 命令リトライ方式
JPS62151942A (ja) タスク切換え方式
JP2001175422A (ja) ディスクアレイ装置
JP4494950B2 (ja) テーブル切替プログラムおよびコンピュータシステム