JPH01222335A - マルチタスク処理方式 - Google Patents
マルチタスク処理方式Info
- Publication number
- JPH01222335A JPH01222335A JP4845588A JP4845588A JPH01222335A JP H01222335 A JPH01222335 A JP H01222335A JP 4845588 A JP4845588 A JP 4845588A JP 4845588 A JP4845588 A JP 4845588A JP H01222335 A JPH01222335 A JP H01222335A
- Authority
- JP
- Japan
- Prior art keywords
- task
- storage device
- memory
- processing
- save
- 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
- 238000011084 recovery Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 28
- 238000003672 processing method Methods 0.000 claims description 8
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
本発明は日本語ワードプロセッサ、パーソナルコンピュ
ータ(パソコン)等のデータ処理装置に係り、特に大容
量2次記憶装置を用いてマルチタスク処理により対話的
にデータ処理を行なうデータ処理装置に好適なマルチタ
スク処理方式に関する。
ータ(パソコン)等のデータ処理装置に係り、特に大容
量2次記憶装置を用いてマルチタスク処理により対話的
にデータ処理を行なうデータ処理装置に好適なマルチタ
スク処理方式に関する。
この種のデータ処理装置において、1つの文書内に文章
、表、図形、イメージ等の種々のデータを組合せて持つ
統合文書の編集を行なおうとする時、文書を文章1図形
等の属性を持つ領域の集合と考え、文書内の領域自身を
編集する文書編集プログラムと、領域内のデータの編集
を行なうための属性に応じた領域編集プログラムとをマ
ルチタスク処理により並行に動作させて、それらの共同
作業として1つの文書の編集を行なうことが考えられる
。 マルチタスク処理を実現するための方法としては、特開
昭57−1116354に記載のように、処理装置の持
つ主メモリをいくつかの固定的なセグメントに分割して
、1つのタスクは必ずその分割されたセグメントの1つ
に対応づけて動作するようにし、タスクとセグメントと
の対応を動的に決定することでメモリの利用効率を高め
て実行することが行なわれていた。 ■発明が解決しようとする課題l 上記従来技術では、2次記憶に対してタスクの退避/回
復を行なうことでセグメント数以上のタスクを実行する
際、セグメントに空きがない状態で退避中のタスクを実
行するためには、まずあるセグメント上のタスクを2次
記憶上に退避し、退避処理が終了してから実行すべきタ
スクをセグメント上に回復して実行を行なわなければな
らなかった。 ユーザが上記従来技術を用いて統合文書の編集を行なう
時、編集を行なう領域を切替える際に上記退避/回復処
理が行なわれるために、領域の切替え処理は時間のかか
る“重い”操作となってしまい、統合文書を統一的に扱
えるという利点の一部が損なわれてしまうという問題が
あった。 本発明の目的は、タスクの退避/回復処理を高速化する
ことにより、操作性の向上した文書処理装置に適するマ
ルチタスク処理方式を実現することにある。
、表、図形、イメージ等の種々のデータを組合せて持つ
統合文書の編集を行なおうとする時、文書を文章1図形
等の属性を持つ領域の集合と考え、文書内の領域自身を
編集する文書編集プログラムと、領域内のデータの編集
を行なうための属性に応じた領域編集プログラムとをマ
ルチタスク処理により並行に動作させて、それらの共同
作業として1つの文書の編集を行なうことが考えられる
。 マルチタスク処理を実現するための方法としては、特開
昭57−1116354に記載のように、処理装置の持
つ主メモリをいくつかの固定的なセグメントに分割して
、1つのタスクは必ずその分割されたセグメントの1つ
に対応づけて動作するようにし、タスクとセグメントと
の対応を動的に決定することでメモリの利用効率を高め
て実行することが行なわれていた。 ■発明が解決しようとする課題l 上記従来技術では、2次記憶に対してタスクの退避/回
復を行なうことでセグメント数以上のタスクを実行する
際、セグメントに空きがない状態で退避中のタスクを実
行するためには、まずあるセグメント上のタスクを2次
記憶上に退避し、退避処理が終了してから実行すべきタ
スクをセグメント上に回復して実行を行なわなければな
らなかった。 ユーザが上記従来技術を用いて統合文書の編集を行なう
時、編集を行なう領域を切替える際に上記退避/回復処
理が行なわれるために、領域の切替え処理は時間のかか
る“重い”操作となってしまい、統合文書を統一的に扱
えるという利点の一部が損なわれてしまうという問題が
あった。 本発明の目的は、タスクの退避/回復処理を高速化する
ことにより、操作性の向上した文書処理装置に適するマ
ルチタスク処理方式を実現することにある。
【課題を解決するための手段l
上記目的を達成するために1本発明は、主記憶装置を複
数のメモリブロックに分割し、該メモリブロックに、2
次記憶装置内の複数の退避ブロックから、データ処理の
実行主体となるタスクを回復して実行するマルチタスク
処理方式において、 上記主記憶装置の複数のメモリブロックのうち少なくと
も1つは、空き状態としておき、上記2次記憶装置から
の新たなタスクの回復により上記空き状態のメモリブロ
ックがなくなる場合に、上記空き状態のメモリブロック
へ新たなタスクを回復した後、他のいずれかのタスクを
上記主記憶装置から上記2次記憶装置へ退避することを
特徴とするものである。 この場合、好ましくは、上記主記憶装置から上記2次記
憶装置へのタスクの退避処理は、上記2次記憶装置から
上記主記憶装置へ回復した上記新たなタスクの実行と並
行して実行する。 本発明によるマルチタスク処理方式は、また、複数のメ
モリブロックを有する主記憶装置と、複数の退避ブロッ
クを有する2次記憶装置とを備え、データ処理の実行主
体となるタスクを上記メモリブロックの1つに割当てて
処理を行なうデータ処理装置において、 上記タスクを上記退避ブロックから上記メモリブロック
上へ回復し、上記複数のメモリブロック上にすべてタス
クが割当てられた場合は、上記メモリブロック上のタス
クのいずれかを上記退避ブロックへ退避し、上記メモリ
ブロックのいずれかを空き状態とする第1の手段と、 いずれのタスクを実行するかを制御し、実行すべきタス
クが上記退避ブロックに退避されている場合は、上記第
1の手段を起動する第2の手段とを備えた ことを特徴とするものである。 この場合、上記第1の手段は、上記タスクを上記メモリ
ブロック上へ回復する際、上記メモリブロックの内容が
、当該回復を行なうべきタスクと等しいか否かを判定し
、等しい場合には上記回復処理を省略する処理を実行す
ることができる。さらに、上記第2の手段は、上記主記
憶装置内のメモリブロックの各タスクの実行開始時刻を
表わす制御データを保持し、上記第1の手段は、上記タ
スクの退避を行なう際、上記制御データに基づいて、退
避すべきタスクを決定するようにすることも可能である
。 【作用l 具体的には、上記複数のメモリブロックは、上記主記憶
装置に固定的に割付けられたコアブロックであり、コア
ブロックグループを構成する。また、上記2次記憶装置
上の複数個の退避ブロックは退避エリアを構成する。 上記2次記憶装置上には1例えば、統合文書処理を行な
うための非常駐プログラムが設けられる。他方、主記憶
装置には、上記第2の手段として、非常駐プログラムを
タスクとして生成して実行するオペレーティングシステ
ムと、上記第1の手段として、タスクの退避/回復処理
を行なうための特別なタスクであるスワツパ−とが設け
られる。 上記コアブロックは、タスクが実行される際に用いられ
るメモリ領域であり、1つのコアブロックには1つのタ
スクが置かれる。 コアブロックグループは、複数のコアブロックの集合体
であり、1つのタスクは1つのコアブロックグループに
所属し、そのコアブロックグループ内のいずれかのコア
ブロック上で動作する。 退避ブロックは、2次記憶装置上にあり、実行されてい
ないタスクを退避するために使用される。 退避エリアは、退避ブロックの集合体であり、コアブロ
ックグループとl対lに対応している。 あるコアブロックグループに属するタスクは、そのコア
ブロックグループに対応する退避エリア内のいずれかの
退避ブロックに退避される。 非常駐プログラムは、実際に統合文書編集を行なうため
のプログラムであり、文書編集プログラムと、各領域種
別に対応した領域編集プログラムとからなる。 オペレーティングシステムは、非常駐プログラムに対し
てコアブロックを割当てて、実行可能なタスクとして生
成し、複数個のタスクを適宜、切換えてマルチタスク処
理を行なう、その際、実行すべきタスクがメモリブロッ
ク上になければ、上記スワツパ−を起動してタスクをメ
モリブロック上に回復してから実行する。 スワツパ−は、コアブロックグループ内に少なくとも1
つの空いているコアブロックが存在するように退避/回
復処理を行なう、そのため、タスクの回復処理はオペレ
ーティングシステムの指示上より直ちに行なわれ、回復
処理終了後に空きコアブロックを作成するために退避処
理が行なわれる。 したがって、退避/回復処理を行なうことでメモリブロ
ック上にないタスクの実行を行なう場合は、そのタスク
の回復処置に要する時間だけ待てばよいことになる。す
なわち、回復されたタスクの実行と並行して別タスクの
退避処理を行なうことにより、新たなタスクの実行が始
まるまでの待ち時間はタスクの回復処理に要する時間だ
けどなリ、従来に比べて別タスクの退避処理に要する時
間分だけ短縮される。 「実施例1 以下、本発明の一実施例を図面を用いて説明する。 第2図は本発明が適用されるシステムのハードウェアの
構成例を示したものである。 本実施例のハードウェアは、編集処理等を行なうcpu
(中央処理装置)1.CPUIが実行すべきプログラ
ムや種々の管理データを記憶する主メモリ2、後述する
非常駐プログラム13や退避されたタスク21等を格納
するハードディスク3、文書データを格納するフロッピ
ー4、文字や編集機能を入力するキーボード51編集結
果等を表示するデイスプレィ6、編集結果を印字するプ
リンタ7より成る。 主メモリ2上には第1図に示すように常駐エリア31お
よび1つ以上のコアブロックグループ(以下CGRと略
す)32が置かれ、CGR32は複数のコアブロック(
以下CBと略す)33より成る。なお、本明細書におい
て、参照番号33a 、 33b 。 33c・・・を総称して33とする(他の参照番号も同
様)、ハードディスク(以下)IDと略す)3上にはプ
ログラムエリア41.およびCG R32と同数の退避
エリア42が置かれ、退避エリア42は複数の退避ブロ
ック(以下SBと略す)43より成る。 常駐エリア31にはオペレーティングシステム(以下O
8と略す)11、スワツパ−12、および制御データで
あるコアブロックグループ制御ブロック51.コアブロ
ック制御ブロック52、退避ブロック制御ブロック53
、タスク制御ブロック61が置かれ、CB53にはタス
ク(タスクa、b・・・)21が置かれる。0SI1.
スワツパ−12、タスク21は全てプログラムであり、
CPU1かこれらプログラムを実行してシステムとして
の処理を行なう、タスク21は、また、スワツパ−12
の処理によりCB53から5B43へと退避■、あるい
は5B43からCB53へと回復■され、主メモリ2を
時分割的に利用する。 プログラムエリア41には非常駐プログラム13が置か
れる。非常駐プログラム13はOS 11がタスク21
を生成する際の雛形であり、1つの非常駐プログラムか
ら複数のタスクが生成可能である0個々のタスクは互い
に独立して処理を行なう、非常駐プログラム13として
は、文書の領域自身の編集を行なう文書編集プログラム
と、領域内データの編集を行なうための領域種別に対応
した領域編集プログラムがある。 第3図に、本システムにおいて各タスクの状態を制御し
てマルチタスク処理を行なうために用いる制御データ構
造を示す、マルチタスク処理という概念はコンピュータ
システムの制御方法として広く知られた技術であるため
、ここでは説明を省略する。 制御データとしてはコアブロックグループ制御ブロック
(以下CGRCBと略す)51.コアブロック制御ブロ
ック(以下CBCBと略す)52、退避ブロック制御ブ
ロック(以下5RCBと略す)53およびタスク制御ブ
ロック(以下TCBと略す)61の4種類の制御テーブ
ルがある。CGRCB51はCGR:12とl対lに対
応しており、CG。 R32に関する種々の情報を蓄える。同様に、それでれ
CBCB52はCB53.5BCB53は5B43、T
CB61はタスク33と1対1に対応しており、それら
の管理情報を蓄える。 各々の制御テーブルには次に示すフィールドがある。 CGRCB51には、CBCBリストヘッダ5111S
BCBリストヘッダ512.CGR空き待ち行列513
がある。CBCBリストヘッダ511はそのCGR32
に属するCB53を示すCB CB 52がリストとし
てつながれる。5BCBリストヘツダ512にはそのC
GR32に対応する退避エリア42に属する5B43を
示す5RCB53がリストとしてつながれる。CGR空
き待ち行列513にはそのCGR32に属するCB53
に対する回復処理を待たされているタスク21を示すT
CB61がリストとしてつながれる。 CB CB 52には、リンクポインタ521、メモリ
上位g1523.長さ524.CB状態525、占有中
TCBアドレス526の各フィールドがある。リンクポ
インタ521は他のCBCB52のアドレスを示し、C
GRCBSIのCBCBリストヘッダ511からつなが
れるCBCB52のリストを形成する。メモリ上位置5
22および長さ523は、そのCBCB52が表わすC
B53の主メモリ2上での先頭位置と長さを示す、CB
状態525は“空き”か“使用中”かというCB53の
状態を示す、占有中TCBアドレス526はそのCB5
3上にあるタスク43のTCB61を示す。 S B CB 53にはリンクポインタ531.HD上
位置532、長さ533および占有中TCBアドレス5
34の各フィールドを持つ、リンクポインタ531は他
の5BCB53のアドレスを示し、CGRCBSIの5
BCBリストヘツダ512からつながれるSB CB
53のリストを形成する。HD上位置532および長さ
533はその5BCB53が表わす5B43のHDa上
での先頭位置と長さを示す。占有中TCBアドレス53
4はその5B43上にあるタスク43のTCB61を示
す。 TCB61には、リンクポインタ611、タスク状$6
12 、タスク優先度613、スケジュール時刻614
、スタック先頭アドレス615 、CGRCBアドレス
616 、CBCBアドレス617,5BCBアドレス
618およびメモリ状$ 619の各フィールドを持つ
、リンクポインタ611は他のTCB61のアドレスを
示し、レディキューや種々の待ち行列を形成するために
使用される。タスク状態612は“実行可能”か“待ち
”かというタスクの実行状態を示す、タスク優先度61
3はタスクが実行される際の優先順位を示す、スケジュ
ール時刻614はそのタスクが実行を始めた最新の時刻
を示し、退避するタスクを決定するために使用される。 スタック先頭アドレス615は、タスク毎に持つタスク
スタックの先頭アドレスを指しており、タスク処理再開
のために使用される。CGRCBアドレス616はその
タスクの属するCGR32に対応するCGRCBSIを
示す、CBCBアドレス617はタスクがメモリ上にあ
る場合は、そのタスクの置かれているCB53に対応す
るCBCB52を示し、タスクが生成された時点ではO
となる。5BCBアドレス618は、タスクがHDS上
に退避されている場合はそのタスクが退避されている5
B43に対応する5BCB53を示し、そうでない場合
は0となる。メモリ状態619は、“メモリ上”か“退
避中”かというタスクのメモリ状態を示す。 次に、0811の処理の中でタスク・スケジューリング
を行なう部分の流れ図を第4図に示す。 まずステップ1100でタスク状態612が“実行可能
”であるタスクが存在するかどうかを調べ、存在しない
場合はシステムをIDLE状態とする。 次にステップ1101で、タスク状態612が“実行可
能”であるタスク33の中で、タスク優先度613が最
も高いタスクを選び出して実行の対象とする。 ステップ1102で、対象タスクのメモリ状態619を
調べ、′メモリ上”であればステップ11G7へと進む
。 ステップ1107では、退避処理を行なう際の退避タス
クを決定するために使用するスケジュール時刻614を
設定し、ステップ1108で、スタック先頭アドレス6
15に基づいて対象タスクの実行を再開する。 メモリ状態619が“退避中”である場合はステップ1
103へと進み、対象タスクのTCB61のCBCBア
ドレス617が0かどうかを調べ、0でない場合はその
値の示すCBCB52のCB状態525を調べて、以前
動作していたCBが“空き”かどうかを判定する。′空
き”の場合は回復処理を省ける可能性があるため、同じ
CBに回復することを指示してステップ1105でスワ
ツパ−を起動する。 以前動作していたCBがないか、あっても“空き”でな
い場合はステップ1104へと移り、CGRCBアドレ
ス616の示すCGRCBSIのCBCBリストヘッダ
511につながるCBCB52のCB状態5Sを順に調
べ、“空き”状態のCBがある場合はそのCBに回復す
にとを指示してステップ1105に移る。 ステップ1105では、スワツパ−12を起動して対象
タスクをメモリ上に回復する。スワツパ−12自身はO
S 11のスケジューリングの対象となるシステムタス
クという特殊なタスクであるため、起動後は直ちにステ
ップ1101へと戻って次のタスクのスケジュールを行
なう。 “空き”状態のCB53がなかった場合はステップ11
06へと進み、対象タスクなCGR空き待ち行列513
へとつないだ後、タスク状態612を“待ち”とする、
そしてステップ11旧へと戻って別のタスクのスケジュ
ールを試みる。 ステップ1105で起動されるスワツパ−12の処理の
流れ図を第5図に示す。 スワツパ−12は回復処理を行なう対象となるタスクの
TCB61および回復先CBのCBCB52をパラメー
タとして起動される。 ステップ1201で、回復先CB53のCB状態525
を“使用中”とする0次に、ステップ1202で、CB
CB 52の占有中TCBアドレス526が対象タス
クのTCBアドレスと一致しているかどうかを判定する
。 一致している場合は回復光CB上で動いた最後のタスク
は対象タスクであり、CB53の内容はタスクが退避さ
れたときの状態をそのまま保っているため、HD3から
の回復処理は行なう必要がない、そこで、直接ステップ
1205へと進んでHD3に対するアクセスを省略して
処理時間を短縮させる。 一致していない場合はステップ1203へと進んでHD
3からの回復処理を行なう。 ステ・ンプ1203では、対象タスクの5BCBアドレ
ス618の示す5BCB53の情報をもとに、HD3上
の5B43から主メモリ2上のCB 33へのデータ転
送を行ない、タスク43をメモリ上へと回復する。 次にステップ1204て、回復したCBの占有中TCB
アドレス526に対象タスクのTCBアドレスを設定し
、CB52に対する回復処理を完了する。 ステップ1205では回復先となった5B43の占有中
TCBアドレス534を0とし、5B43に対する回復
処理を完了する。 続いてステップ1206aで、対象タスク21のメモリ
状態を“メモリ上”とし、CBCBアドレス617に回
復先CBのCB CB 52を設定し、5BCBアドレ
ス618を0に設定してタスクに対する回復処理を完了
する。この時点で対象タスクは0811によりスケジュ
ールされて実行可能な状態となる。 次にステップ1206bで、回復したCB53の属する
CGR32に空き状態のCB53があるかどうかを判定
する。ある場合はスワツパ−12の処理は終了し、03
IIにより回復されたタスク21の実行が始められる。 “空き”状態のCB53がない場合はステップ1207
へと進んでタスクの退避処理を行なう。 ステップ1207では、回復処理を行なったCGR32
に属する全てのCB53の占有中TCBアドレス521
1の示すTCB61のスケジュール時刻614を比較し
て、スケジュール時刻の最も古いタスクを選び出し、退
避処理を行なう対象タスクを決定する。この際、先はど
回復処理を行なったタスクは退避処理の対象からは除外
する。 退避すべきタスクが決定されるとステップ1208へ進
み、退避処理を行なうCGR32の5BCBリストヘツ
ダ512につながる5BCB53の占有中TCBアドレ
ス534を調べ、占有中TCBアドレス534が0であ
る5B53を探す、見つかった最初の5BS3に対して
退避を行なうこととし、退避タスクの5BCBアドレス
618に退避先SBの5BCB53のアドレスを設定す
る。 ステップ1209で、退避先SBの占有中TCBアドレ
ス534に退避するタスクのTCBアドレスを設定し、
ステップ121Oで、退避タスクのCBCBアドレス6
17の示す主メモリ2上のCB53からHD3上の退避
先5B43へとデータ転送を行ない、5B43に対する
退避処理を完了する。 この時、HD3に対するデータ転送処理はその大部分の
時間を)lD3に対するデータ転送コマンドの終了を待
つことに費やされ、ステップ1210を実行している間
のスワツパ−12のタスク状態は、9割程度が“待ち”
状態となっている。従ってスワラパー12が゛待ち”と
なっている間、OS 11のタスク・スケジューリング
機能か働き、先はど回復したタスクの実行が行なわれる
。 HD3に対するデータ転送が終了するとステップ121
1へ進み、退避元CB53のCB状態525を“空き”
として、CB53に対する退避処理を完了する。この時
占有中TCBアドレス526は0にせず、ステップ12
02での回復処理の省略を可能とする。 ステップ1212では、退避したタスク21のメモリ状
態を“退避中”とし、CBCBアドレス617を0に設
定してタスク21に対する退避処理を完了する。 引続きステップ1213で、退避処理を行なったCGR
32のCGR空き待ち行列513につながれているTC
B61のタスク状態612を“実行可能”とし、TCB
61を待ち行列から外して、スワツパ−12の処理を終
了する。 上記0811およびスワツパ−12の処理によりタスク
21のHD3に対する退避/回復処理が実現される。 本実施例によれば、退避中のタスクの実行が始められる
までに要する時間は、対象タスクの回復処理に要する時
間だけとなり、また回復光に以前退避した時の内容がそ
のまま残っていればHDからのデータ転送を行なわない
ために、従来必要としていた時間と比べて約半分以下に
減らすことができ、ユーザが編集中領域を切替える際の
待ち時間が短縮され、使い勝手が向上する。 r発明の効果】 本発明によれば、ユーザが対話的にデータ処理を行なっ
ている最中にタスクの切替えが生じる場合でも、切替え
処理によるユーザの待ち時間を従来の約半分に短縮でき
るため、ユーザはよりスムーズに処理が行なえ、操作性
が向上する。
数のメモリブロックに分割し、該メモリブロックに、2
次記憶装置内の複数の退避ブロックから、データ処理の
実行主体となるタスクを回復して実行するマルチタスク
処理方式において、 上記主記憶装置の複数のメモリブロックのうち少なくと
も1つは、空き状態としておき、上記2次記憶装置から
の新たなタスクの回復により上記空き状態のメモリブロ
ックがなくなる場合に、上記空き状態のメモリブロック
へ新たなタスクを回復した後、他のいずれかのタスクを
上記主記憶装置から上記2次記憶装置へ退避することを
特徴とするものである。 この場合、好ましくは、上記主記憶装置から上記2次記
憶装置へのタスクの退避処理は、上記2次記憶装置から
上記主記憶装置へ回復した上記新たなタスクの実行と並
行して実行する。 本発明によるマルチタスク処理方式は、また、複数のメ
モリブロックを有する主記憶装置と、複数の退避ブロッ
クを有する2次記憶装置とを備え、データ処理の実行主
体となるタスクを上記メモリブロックの1つに割当てて
処理を行なうデータ処理装置において、 上記タスクを上記退避ブロックから上記メモリブロック
上へ回復し、上記複数のメモリブロック上にすべてタス
クが割当てられた場合は、上記メモリブロック上のタス
クのいずれかを上記退避ブロックへ退避し、上記メモリ
ブロックのいずれかを空き状態とする第1の手段と、 いずれのタスクを実行するかを制御し、実行すべきタス
クが上記退避ブロックに退避されている場合は、上記第
1の手段を起動する第2の手段とを備えた ことを特徴とするものである。 この場合、上記第1の手段は、上記タスクを上記メモリ
ブロック上へ回復する際、上記メモリブロックの内容が
、当該回復を行なうべきタスクと等しいか否かを判定し
、等しい場合には上記回復処理を省略する処理を実行す
ることができる。さらに、上記第2の手段は、上記主記
憶装置内のメモリブロックの各タスクの実行開始時刻を
表わす制御データを保持し、上記第1の手段は、上記タ
スクの退避を行なう際、上記制御データに基づいて、退
避すべきタスクを決定するようにすることも可能である
。 【作用l 具体的には、上記複数のメモリブロックは、上記主記憶
装置に固定的に割付けられたコアブロックであり、コア
ブロックグループを構成する。また、上記2次記憶装置
上の複数個の退避ブロックは退避エリアを構成する。 上記2次記憶装置上には1例えば、統合文書処理を行な
うための非常駐プログラムが設けられる。他方、主記憶
装置には、上記第2の手段として、非常駐プログラムを
タスクとして生成して実行するオペレーティングシステ
ムと、上記第1の手段として、タスクの退避/回復処理
を行なうための特別なタスクであるスワツパ−とが設け
られる。 上記コアブロックは、タスクが実行される際に用いられ
るメモリ領域であり、1つのコアブロックには1つのタ
スクが置かれる。 コアブロックグループは、複数のコアブロックの集合体
であり、1つのタスクは1つのコアブロックグループに
所属し、そのコアブロックグループ内のいずれかのコア
ブロック上で動作する。 退避ブロックは、2次記憶装置上にあり、実行されてい
ないタスクを退避するために使用される。 退避エリアは、退避ブロックの集合体であり、コアブロ
ックグループとl対lに対応している。 あるコアブロックグループに属するタスクは、そのコア
ブロックグループに対応する退避エリア内のいずれかの
退避ブロックに退避される。 非常駐プログラムは、実際に統合文書編集を行なうため
のプログラムであり、文書編集プログラムと、各領域種
別に対応した領域編集プログラムとからなる。 オペレーティングシステムは、非常駐プログラムに対し
てコアブロックを割当てて、実行可能なタスクとして生
成し、複数個のタスクを適宜、切換えてマルチタスク処
理を行なう、その際、実行すべきタスクがメモリブロッ
ク上になければ、上記スワツパ−を起動してタスクをメ
モリブロック上に回復してから実行する。 スワツパ−は、コアブロックグループ内に少なくとも1
つの空いているコアブロックが存在するように退避/回
復処理を行なう、そのため、タスクの回復処理はオペレ
ーティングシステムの指示上より直ちに行なわれ、回復
処理終了後に空きコアブロックを作成するために退避処
理が行なわれる。 したがって、退避/回復処理を行なうことでメモリブロ
ック上にないタスクの実行を行なう場合は、そのタスク
の回復処置に要する時間だけ待てばよいことになる。す
なわち、回復されたタスクの実行と並行して別タスクの
退避処理を行なうことにより、新たなタスクの実行が始
まるまでの待ち時間はタスクの回復処理に要する時間だ
けどなリ、従来に比べて別タスクの退避処理に要する時
間分だけ短縮される。 「実施例1 以下、本発明の一実施例を図面を用いて説明する。 第2図は本発明が適用されるシステムのハードウェアの
構成例を示したものである。 本実施例のハードウェアは、編集処理等を行なうcpu
(中央処理装置)1.CPUIが実行すべきプログラ
ムや種々の管理データを記憶する主メモリ2、後述する
非常駐プログラム13や退避されたタスク21等を格納
するハードディスク3、文書データを格納するフロッピ
ー4、文字や編集機能を入力するキーボード51編集結
果等を表示するデイスプレィ6、編集結果を印字するプ
リンタ7より成る。 主メモリ2上には第1図に示すように常駐エリア31お
よび1つ以上のコアブロックグループ(以下CGRと略
す)32が置かれ、CGR32は複数のコアブロック(
以下CBと略す)33より成る。なお、本明細書におい
て、参照番号33a 、 33b 。 33c・・・を総称して33とする(他の参照番号も同
様)、ハードディスク(以下)IDと略す)3上にはプ
ログラムエリア41.およびCG R32と同数の退避
エリア42が置かれ、退避エリア42は複数の退避ブロ
ック(以下SBと略す)43より成る。 常駐エリア31にはオペレーティングシステム(以下O
8と略す)11、スワツパ−12、および制御データで
あるコアブロックグループ制御ブロック51.コアブロ
ック制御ブロック52、退避ブロック制御ブロック53
、タスク制御ブロック61が置かれ、CB53にはタス
ク(タスクa、b・・・)21が置かれる。0SI1.
スワツパ−12、タスク21は全てプログラムであり、
CPU1かこれらプログラムを実行してシステムとして
の処理を行なう、タスク21は、また、スワツパ−12
の処理によりCB53から5B43へと退避■、あるい
は5B43からCB53へと回復■され、主メモリ2を
時分割的に利用する。 プログラムエリア41には非常駐プログラム13が置か
れる。非常駐プログラム13はOS 11がタスク21
を生成する際の雛形であり、1つの非常駐プログラムか
ら複数のタスクが生成可能である0個々のタスクは互い
に独立して処理を行なう、非常駐プログラム13として
は、文書の領域自身の編集を行なう文書編集プログラム
と、領域内データの編集を行なうための領域種別に対応
した領域編集プログラムがある。 第3図に、本システムにおいて各タスクの状態を制御し
てマルチタスク処理を行なうために用いる制御データ構
造を示す、マルチタスク処理という概念はコンピュータ
システムの制御方法として広く知られた技術であるため
、ここでは説明を省略する。 制御データとしてはコアブロックグループ制御ブロック
(以下CGRCBと略す)51.コアブロック制御ブロ
ック(以下CBCBと略す)52、退避ブロック制御ブ
ロック(以下5RCBと略す)53およびタスク制御ブ
ロック(以下TCBと略す)61の4種類の制御テーブ
ルがある。CGRCB51はCGR:12とl対lに対
応しており、CG。 R32に関する種々の情報を蓄える。同様に、それでれ
CBCB52はCB53.5BCB53は5B43、T
CB61はタスク33と1対1に対応しており、それら
の管理情報を蓄える。 各々の制御テーブルには次に示すフィールドがある。 CGRCB51には、CBCBリストヘッダ5111S
BCBリストヘッダ512.CGR空き待ち行列513
がある。CBCBリストヘッダ511はそのCGR32
に属するCB53を示すCB CB 52がリストとし
てつながれる。5BCBリストヘツダ512にはそのC
GR32に対応する退避エリア42に属する5B43を
示す5RCB53がリストとしてつながれる。CGR空
き待ち行列513にはそのCGR32に属するCB53
に対する回復処理を待たされているタスク21を示すT
CB61がリストとしてつながれる。 CB CB 52には、リンクポインタ521、メモリ
上位g1523.長さ524.CB状態525、占有中
TCBアドレス526の各フィールドがある。リンクポ
インタ521は他のCBCB52のアドレスを示し、C
GRCBSIのCBCBリストヘッダ511からつなが
れるCBCB52のリストを形成する。メモリ上位置5
22および長さ523は、そのCBCB52が表わすC
B53の主メモリ2上での先頭位置と長さを示す、CB
状態525は“空き”か“使用中”かというCB53の
状態を示す、占有中TCBアドレス526はそのCB5
3上にあるタスク43のTCB61を示す。 S B CB 53にはリンクポインタ531.HD上
位置532、長さ533および占有中TCBアドレス5
34の各フィールドを持つ、リンクポインタ531は他
の5BCB53のアドレスを示し、CGRCBSIの5
BCBリストヘツダ512からつながれるSB CB
53のリストを形成する。HD上位置532および長さ
533はその5BCB53が表わす5B43のHDa上
での先頭位置と長さを示す。占有中TCBアドレス53
4はその5B43上にあるタスク43のTCB61を示
す。 TCB61には、リンクポインタ611、タスク状$6
12 、タスク優先度613、スケジュール時刻614
、スタック先頭アドレス615 、CGRCBアドレス
616 、CBCBアドレス617,5BCBアドレス
618およびメモリ状$ 619の各フィールドを持つ
、リンクポインタ611は他のTCB61のアドレスを
示し、レディキューや種々の待ち行列を形成するために
使用される。タスク状態612は“実行可能”か“待ち
”かというタスクの実行状態を示す、タスク優先度61
3はタスクが実行される際の優先順位を示す、スケジュ
ール時刻614はそのタスクが実行を始めた最新の時刻
を示し、退避するタスクを決定するために使用される。 スタック先頭アドレス615は、タスク毎に持つタスク
スタックの先頭アドレスを指しており、タスク処理再開
のために使用される。CGRCBアドレス616はその
タスクの属するCGR32に対応するCGRCBSIを
示す、CBCBアドレス617はタスクがメモリ上にあ
る場合は、そのタスクの置かれているCB53に対応す
るCBCB52を示し、タスクが生成された時点ではO
となる。5BCBアドレス618は、タスクがHDS上
に退避されている場合はそのタスクが退避されている5
B43に対応する5BCB53を示し、そうでない場合
は0となる。メモリ状態619は、“メモリ上”か“退
避中”かというタスクのメモリ状態を示す。 次に、0811の処理の中でタスク・スケジューリング
を行なう部分の流れ図を第4図に示す。 まずステップ1100でタスク状態612が“実行可能
”であるタスクが存在するかどうかを調べ、存在しない
場合はシステムをIDLE状態とする。 次にステップ1101で、タスク状態612が“実行可
能”であるタスク33の中で、タスク優先度613が最
も高いタスクを選び出して実行の対象とする。 ステップ1102で、対象タスクのメモリ状態619を
調べ、′メモリ上”であればステップ11G7へと進む
。 ステップ1107では、退避処理を行なう際の退避タス
クを決定するために使用するスケジュール時刻614を
設定し、ステップ1108で、スタック先頭アドレス6
15に基づいて対象タスクの実行を再開する。 メモリ状態619が“退避中”である場合はステップ1
103へと進み、対象タスクのTCB61のCBCBア
ドレス617が0かどうかを調べ、0でない場合はその
値の示すCBCB52のCB状態525を調べて、以前
動作していたCBが“空き”かどうかを判定する。′空
き”の場合は回復処理を省ける可能性があるため、同じ
CBに回復することを指示してステップ1105でスワ
ツパ−を起動する。 以前動作していたCBがないか、あっても“空き”でな
い場合はステップ1104へと移り、CGRCBアドレ
ス616の示すCGRCBSIのCBCBリストヘッダ
511につながるCBCB52のCB状態5Sを順に調
べ、“空き”状態のCBがある場合はそのCBに回復す
にとを指示してステップ1105に移る。 ステップ1105では、スワツパ−12を起動して対象
タスクをメモリ上に回復する。スワツパ−12自身はO
S 11のスケジューリングの対象となるシステムタス
クという特殊なタスクであるため、起動後は直ちにステ
ップ1101へと戻って次のタスクのスケジュールを行
なう。 “空き”状態のCB53がなかった場合はステップ11
06へと進み、対象タスクなCGR空き待ち行列513
へとつないだ後、タスク状態612を“待ち”とする、
そしてステップ11旧へと戻って別のタスクのスケジュ
ールを試みる。 ステップ1105で起動されるスワツパ−12の処理の
流れ図を第5図に示す。 スワツパ−12は回復処理を行なう対象となるタスクの
TCB61および回復先CBのCBCB52をパラメー
タとして起動される。 ステップ1201で、回復先CB53のCB状態525
を“使用中”とする0次に、ステップ1202で、CB
CB 52の占有中TCBアドレス526が対象タス
クのTCBアドレスと一致しているかどうかを判定する
。 一致している場合は回復光CB上で動いた最後のタスク
は対象タスクであり、CB53の内容はタスクが退避さ
れたときの状態をそのまま保っているため、HD3から
の回復処理は行なう必要がない、そこで、直接ステップ
1205へと進んでHD3に対するアクセスを省略して
処理時間を短縮させる。 一致していない場合はステップ1203へと進んでHD
3からの回復処理を行なう。 ステ・ンプ1203では、対象タスクの5BCBアドレ
ス618の示す5BCB53の情報をもとに、HD3上
の5B43から主メモリ2上のCB 33へのデータ転
送を行ない、タスク43をメモリ上へと回復する。 次にステップ1204て、回復したCBの占有中TCB
アドレス526に対象タスクのTCBアドレスを設定し
、CB52に対する回復処理を完了する。 ステップ1205では回復先となった5B43の占有中
TCBアドレス534を0とし、5B43に対する回復
処理を完了する。 続いてステップ1206aで、対象タスク21のメモリ
状態を“メモリ上”とし、CBCBアドレス617に回
復先CBのCB CB 52を設定し、5BCBアドレ
ス618を0に設定してタスクに対する回復処理を完了
する。この時点で対象タスクは0811によりスケジュ
ールされて実行可能な状態となる。 次にステップ1206bで、回復したCB53の属する
CGR32に空き状態のCB53があるかどうかを判定
する。ある場合はスワツパ−12の処理は終了し、03
IIにより回復されたタスク21の実行が始められる。 “空き”状態のCB53がない場合はステップ1207
へと進んでタスクの退避処理を行なう。 ステップ1207では、回復処理を行なったCGR32
に属する全てのCB53の占有中TCBアドレス521
1の示すTCB61のスケジュール時刻614を比較し
て、スケジュール時刻の最も古いタスクを選び出し、退
避処理を行なう対象タスクを決定する。この際、先はど
回復処理を行なったタスクは退避処理の対象からは除外
する。 退避すべきタスクが決定されるとステップ1208へ進
み、退避処理を行なうCGR32の5BCBリストヘツ
ダ512につながる5BCB53の占有中TCBアドレ
ス534を調べ、占有中TCBアドレス534が0であ
る5B53を探す、見つかった最初の5BS3に対して
退避を行なうこととし、退避タスクの5BCBアドレス
618に退避先SBの5BCB53のアドレスを設定す
る。 ステップ1209で、退避先SBの占有中TCBアドレ
ス534に退避するタスクのTCBアドレスを設定し、
ステップ121Oで、退避タスクのCBCBアドレス6
17の示す主メモリ2上のCB53からHD3上の退避
先5B43へとデータ転送を行ない、5B43に対する
退避処理を完了する。 この時、HD3に対するデータ転送処理はその大部分の
時間を)lD3に対するデータ転送コマンドの終了を待
つことに費やされ、ステップ1210を実行している間
のスワツパ−12のタスク状態は、9割程度が“待ち”
状態となっている。従ってスワラパー12が゛待ち”と
なっている間、OS 11のタスク・スケジューリング
機能か働き、先はど回復したタスクの実行が行なわれる
。 HD3に対するデータ転送が終了するとステップ121
1へ進み、退避元CB53のCB状態525を“空き”
として、CB53に対する退避処理を完了する。この時
占有中TCBアドレス526は0にせず、ステップ12
02での回復処理の省略を可能とする。 ステップ1212では、退避したタスク21のメモリ状
態を“退避中”とし、CBCBアドレス617を0に設
定してタスク21に対する退避処理を完了する。 引続きステップ1213で、退避処理を行なったCGR
32のCGR空き待ち行列513につながれているTC
B61のタスク状態612を“実行可能”とし、TCB
61を待ち行列から外して、スワツパ−12の処理を終
了する。 上記0811およびスワツパ−12の処理によりタスク
21のHD3に対する退避/回復処理が実現される。 本実施例によれば、退避中のタスクの実行が始められる
までに要する時間は、対象タスクの回復処理に要する時
間だけとなり、また回復光に以前退避した時の内容がそ
のまま残っていればHDからのデータ転送を行なわない
ために、従来必要としていた時間と比べて約半分以下に
減らすことができ、ユーザが編集中領域を切替える際の
待ち時間が短縮され、使い勝手が向上する。 r発明の効果】 本発明によれば、ユーザが対話的にデータ処理を行なっ
ている最中にタスクの切替えが生じる場合でも、切替え
処理によるユーザの待ち時間を従来の約半分に短縮でき
るため、ユーザはよりスムーズに処理が行なえ、操作性
が向上する。
第1図は本発明の一実施例の構成図、第2図は本発明が
適用されるシステムの八−ドウエア構成図、第3図は本
発明の一実施例の制御データ構成図、第4図はO8の一
部分の処理の流れ図、第5図はスワツパ−の処理の流れ
図である。 l ・−c p u 2・・・主メモリ 3・・・ハードディスク 11・・・08 12・・・スワツパ− 13・・・非常駐プログラム 21・・・タスク 32・・・コアブロックグループ 33・・・コアブロック 42−・・退避エリア 43・・・退避ブロック 51・・・CGRCB 52・・・CBCB 53・−S B CB 61・−T CB 出願人 株式会社 日 立製作所 代理人 弁理士 富 1)和 子 第1図 第2図 第3図 第4図 第5図
適用されるシステムの八−ドウエア構成図、第3図は本
発明の一実施例の制御データ構成図、第4図はO8の一
部分の処理の流れ図、第5図はスワツパ−の処理の流れ
図である。 l ・−c p u 2・・・主メモリ 3・・・ハードディスク 11・・・08 12・・・スワツパ− 13・・・非常駐プログラム 21・・・タスク 32・・・コアブロックグループ 33・・・コアブロック 42−・・退避エリア 43・・・退避ブロック 51・・・CGRCB 52・・・CBCB 53・−S B CB 61・−T CB 出願人 株式会社 日 立製作所 代理人 弁理士 富 1)和 子 第1図 第2図 第3図 第4図 第5図
Claims (1)
- 【特許請求の範囲】 1、主記憶装置を複数のメモリブロックに分割し、該メ
モリブロックに、2次記憶装置内の複数の退避ブロック
から、データ処理の実行主体となるタスクを回復して実
行するマルチタスク処理方式において、 上記主記憶装置の複数のメモリブロックのうち少なくと
も1つは、空き状態としておき、上記2次記憶装置から
の新たなタスクの回復により上記空き状態がなくなる場
合に、上記空き状態のメモリブロックへ新たなタスクを
回復した後、他のいずれかのタスクを上記主記憶装置か
ら上記2次記憶装置へ退避することを特徴とするマルチ
タスク処理方式。 2、上記主記憶装置から上記2次記憶装置へのタスクの
退避処理は、上記2次記憶装置から上記主記憶装置へ回
復した上記新たなタスクの実行と並行して実行される請
求項1記載のマルチタスク処理方式。 3、複数のメモリブロックを有する主記憶装置と、複数
の退避ブロックを有する2次記憶装置とを備え、データ
処理の実行主体となるタスクを上記メモリブロックの1
つに割当てて処理を行なうデータ処理装置において、 上記タスクを上記退避ブロックから上記メモリブロック
上へ回復し、上記複数のメモリブロック上にすべてタス
クが割当てられた場合は、上記メモリブロック上のタス
クのいずれかを上記退避ブロックへ退避し、上記メモリ
ブロックのいずれかを空き状態とする第1の手段と、 いずれのタスクを実行するかを制御し、実行すべきタス
クが上記退避ブロックに退避されている場合は、上記第
1の手段を起動する第2の手段とを備えた ことを特徴とするマルチタスク処理方式。 4、上記第1の手段は、上記タスクを上記メモリブロッ
ク上へ回復する際、上記メモリブロックの内容が、当該
回復を行なうべきタスクと等しいか否かを判定し、等し
い場合には上記回復処理を省略する処理を実行すること
を特徴とする請求項3記載のマルチタスク処理方式。 5、上記第2の手段は、上記主記憶装置内のメモリブロ
ックの各タスクの実行開始時刻を表わす制御データを保
持し、上記第1の手段は、上記タスクの退避を行なう際
、上記制御データに基づいて、退避すべきタスクを決定
することを特徴とする請求項3記載のマルチタスク処理
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4845588A JPH01222335A (ja) | 1988-03-01 | 1988-03-01 | マルチタスク処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4845588A JPH01222335A (ja) | 1988-03-01 | 1988-03-01 | マルチタスク処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01222335A true JPH01222335A (ja) | 1989-09-05 |
Family
ID=12803827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4845588A Pending JPH01222335A (ja) | 1988-03-01 | 1988-03-01 | マルチタスク処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01222335A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04199429A (ja) * | 1990-11-29 | 1992-07-20 | Matsushita Electric Ind Co Ltd | プロセス管理装置 |
JP2010244679A (ja) * | 2009-04-06 | 2010-10-28 | Samsung Electronics Co Ltd | コードの動的再配置方法及びこれを利用したディスクドライブ |
-
1988
- 1988-03-01 JP JP4845588A patent/JPH01222335A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04199429A (ja) * | 1990-11-29 | 1992-07-20 | Matsushita Electric Ind Co Ltd | プロセス管理装置 |
JP2010244679A (ja) * | 2009-04-06 | 2010-10-28 | Samsung Electronics Co Ltd | コードの動的再配置方法及びこれを利用したディスクドライブ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06139120A (ja) | ファイルの更新方式 | |
JP3034873B2 (ja) | 情報処理装置 | |
JPH0675781A (ja) | ジョブ環境動的変更機能を持つ処理装置および処理方法 | |
CN112346835A (zh) | 一种基于协程的调度处理方法及系统 | |
JPH01222335A (ja) | マルチタスク処理方式 | |
Ozkarahan et al. | Analysis of aarchitectural features for enhancing the performance of a database machine | |
JP2007179100A (ja) | ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体 | |
JPH03141442A (ja) | タスク制御方式 | |
JPS603229B2 (ja) | 情報処理方式 | |
JPH0895810A (ja) | バッチジョブ実行方式 | |
JP3875371B2 (ja) | ジョブ管理装置および記録媒体 | |
JPS635780B2 (ja) | ||
JPS63298443A (ja) | デ−タ退避方式 | |
JP2000148577A (ja) | アクセス制御方法及びアクセス制御装置 | |
JPH01126738A (ja) | 多重ジョブの実行におけるデータセット競合制御方式 | |
JPS6048541A (ja) | 電子計算機システム | |
JPH076045A (ja) | 多重処理システムにおけるメモリ管理方法 | |
JP3022398B2 (ja) | 仮想計算機方式 | |
JPS5860357A (ja) | タスク制御テ−ブル管理方式 | |
JPH04346136A (ja) | 仮想命令プロセッサ構成制御方法 | |
JPS62209635A (ja) | 非同期通信におけるシステム管理フアイルアクセス方式 | |
JP2003150394A (ja) | メモリ管理方法 | |
EP0290533B1 (en) | I/o system for off-loading operating system functions | |
JP2000132409A (ja) | 待ち状態のないタスクのスタック共有方式 | |
JPS5938855A (ja) | Osの制御方式 |