JP3083575B2 - マルチタスク制御方法および制御装置 - Google Patents

マルチタスク制御方法および制御装置

Info

Publication number
JP3083575B2
JP3083575B2 JP03049316A JP4931691A JP3083575B2 JP 3083575 B2 JP3083575 B2 JP 3083575B2 JP 03049316 A JP03049316 A JP 03049316A JP 4931691 A JP4931691 A JP 4931691A JP 3083575 B2 JP3083575 B2 JP 3083575B2
Authority
JP
Japan
Prior art keywords
space
execution
type
task
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP03049316A
Other languages
English (en)
Other versions
JPH04321136A (ja
Inventor
豊 芳賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP03049316A priority Critical patent/JP3083575B2/ja
Publication of JPH04321136A publication Critical patent/JPH04321136A/ja
Application granted granted Critical
Publication of JP3083575B2 publication Critical patent/JP3083575B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,計算機システムにおい
て,それぞれに単独のプログラム実行環境を前提として
作成されたプログラムを同一の空間内で同時に複数実行
させるマルチタスク制御方法および制御装置に関する。
【0002】近年のオペレーティングシステムでは,並
列プログラミングや,サーバ空間等における多重処理の
要求に伴い,空間内に複数のCPU実行体を生成する機
能が要求されている。このため,軽量なCPU実行体で
あるスレッドが提供されているが,各スレッドは,個々
のスレッドが一時的な作業領域として使用するスタック
領域を除くと,すべてがスレッド間共用資源となるた
め,常にスレッド間の相互の影響を考慮してプログラミ
ングする必要がある。
【0003】同一空間内での多重処理を容易に実現し,
実行性能を向上させるためには,同一空間内のスレッド
間の相互作用を改善する技術が望まれる。
【0004】
【従来の技術】従来のマルチスレッド方式では,空間内
の資源をすべてのスレッドが共有して動作していた。な
お,スレッドとは,CPU実行体としてCPU実行権を
得るプログラムの実行単位であって,ハードウェア・レ
ジスタ,スタック等のプログラム実行環境を切り替える
単位となるものである。
【0005】ところが,大域的なデータ領域を含む空間
内の共用資源は,空間を範囲としてすべてのスレッドに
よって操作され得るため,各スレッドは,資源の操作に
際して,他スレッドとの排他および資源操作に伴う副作
用,すなわちスレッド間の相互作用を常に考慮しなけれ
ばならない。また,本来単独のプログラム実行環境を前
提として作成されたプログラム(C言語プログラムでは
main()関数を持つプログラムなど)を実行する場
合には,プログラム間の相互作用を避けるため,別の空
間で実行する必要がある。
【0006】また,従来のオペレーティングシステムに
よるタスク制御では,CPU実行権を持つ単位とプログ
ラムおよび資源とが一対一に結合して動作するため,あ
る資源を持つ一つのプログラムについて,複数のCPU
実行体で並列処理することはできなかった。
【0007】
【発明が解決しようとする課題】従来のマルチスレッド
方式では,多重処理を行うためには,常にスレッド間の
相互作用を考慮してプログラミングしなければならない
問題点を生じていた。また,単独のプログラム実行環境
を要求するプログラム(C言語プログラムではmain
()関数を持つプログラム)として作成した場合には,
これらのプログラムを同一空間内で複数実行させること
はできず,このようなプログラムを複数実行させるため
には,必ず別の空間を作成して実行しなければならない
ため,空間作成のオーバヘッドが大きくなるという問題
があった。
【0008】一般的には,同一空間内で,それぞれにm
ain()関数を持つ全く独立なプログラムを複数実行
させることは,プログラム実行上のセキュリティの問題
および空間に唯一割り当てられる空間属性および空間資
源の競合から許可できない。しかしながら,プログラム
実行上のセキュリティ条件に反せず,空間に唯一の空間
属性および空間資源に競合が生じない範囲においては,
これを許可することが可能である。
【0009】本発明は上記問題点の解決を図り,同一空
間内にmain()関数を持つプログラムを実行する実
行体(タスク)を複数生成することにより,同一空間内
での多重処理の実現を容易にし,かつ少ない資源での複
数の実行体の実行を可能とし,実行性能を向上させるこ
とを目的とする。
【0010】
【課題を解決するための手段】図1は,本発明の原理説
明図である。図中,10はCPUおよびメモリからなる
計算機,11は同一空間に複数のタスクを生成すること
を指示することができる空間定義手段,12はオペレー
ティングシステムによる実行制御手段,13は空間を作
成し管理する空間制御手段,14は計算機システムにお
いてプログラムが動作するための仮想的な空間,15は
空間内実行制御手段,16A,16Bは割り当てられた
資源を複数のスレッドが共有する制御単位となるタス
ク,17はCPU実行権を得るプログラムの実行単位で
あるスレッド,18はスタック領域およびスレッド固有
域であり,個々のスレッドで局所的なデータ領域として
使用されるもの,19A,19Bはタスク内のスレッド
で共用される大域データ領域であるタスク固有域,20
A,20Bはタスク資源表であり,それぞれのタスクに
割り当てられた資源を管理するための制御表,21−1
ないし21−4はファイルオープン環境やメモリの動的
獲得領域というようなプログラムが使用する計算機の資
源,22は空間属性および空間資源であり,個々のタス
クで占有されない資源を表す。
【0011】タスク16A,16Bは,それぞれ複数の
スレッド17と,各スレッド群で共用されるタスク固有
域19A,19Bおよび資源を管理するタスク資源表2
0A,20Bを一組とする制御単位である。本発明で
は,同一空間14内に,これらのタスクを複数個生成す
る。
【0012】そして,これらの各タスク16A,16B
のそれぞれに単独のプログラム実行環境を前提として作
成された同種または異種のプログラムを,同一空間14
内で同時に複数個走行させ,同一空間14内での複数の
スレッド群による多重処理を行う。
【0013】空間定義手段11は,一つの空間14を作
成し,その空間14に対して,複数のタスク16A,1
6B等を設けることを定義し指示する手段である。空間
定義手段11によるマルチタスクの指示により,実行制
御手段12は,空間制御手段13に対し空間14の作成
を依頼し,空間制御手段13は,空間14を作成する。
この空間の作成方法については従来技術と同様である。
【0014】実行制御手段12は,空間14が作成され
たならば,その空間14上で空間内実行制御手段15を
起動する。空間内実行制御手段15は,マルチタスクの
指示がある場合には,タスク固有域19A,19B,タ
スク資源表20A,20Bなどの複数の制御単位の環境
を作成し,それぞれの制御単位ごとにプログラムのアド
レス解決を行ってプログラムを実行させる。
【0015】各制御単位内,例えばタスク16A内で
は,複数のスレッド17がタスク固有域19Aおよびタ
スク資源表20Aによって管理される資源21−1,2
1−2を共用し,異なる制御単位で動作するスレッド
間,すなわちタスク16Aのスレッド17とタスク16
Bのスレッド17間では,各制御単位に割り当てられた
資源を相互に影響させず個別に扱うようになっている。
以上のように本発明は,一つの仮想空間の割当単位内に
複数個存在するCPUの割当単位である第一の種別の実
行体(スレッド17,17,…)を,資源を共有する単
位でグループ化し,そのグループ化された第一の種別の
実行体と,該グループ内の第一の種別の実行体間で共有
されるデータ領域と,その他の資源を割り当てるための
資源表とを一組として第二の種別の実行体(タスク16
A,タスク16B)とし,該第二の種別の実行体を同一
仮想空間内に複数個生成する。 そして,これらの各第一
の種別の実行体に,その属する第二の種別の実行体内の
データ領域および資源表に記載される資源を共有させ,
第一の種別の実行体を実行制御するとともに,同一仮想
空間内の異なる第二の種別の実行体間では,各第二の種
別の実行体に割り当てられた前記資源を個別に取り扱う
よう実行制御することを特徴とする。
【0016】
【作用】本発明では,図1に示すように,空間14内の
それぞれのタスク16A,16Bは,そのタスク内のス
レッド17でのみ共用されるタスク固有域19A,19
Bと,各タスクに割り当てられる資源を管理するための
タスク資源表20A,20Bを持ち,プログラム実行に
係わる資源を,各タスク16A,16Bごとに占有して
プログラムを実行するようにしている。空間属性・空間
資源22は,実行体としての空間を補完する。これらは
空間14で唯一のものでありタスク16A,16Bで共
用されるが,競合が生じないように使用が制限される。
【0017】したがって,プログラム実行上のセキュリ
ティ条件に反せず,空間14で唯一の空間属性・空間資
源22に競合が生じない範囲においては,同一空間14
内でmain()関数を持つプログラムを複数実行する
ことが可能となる。
【0018】
【実施例】図2は本発明の一実施例によるタスク構成例
を示す図,図3は本発明の一実施例に係る実行制御の構
成例を示すブロック図,図4は本発明の一実施例による
空間の作成からタスク作成までの流れ図,図5は本発明
の一実施例によるタスク作成の流れ図である。
【0019】図2は,例えばC言語によるmain()
関数を持つプログラムが要求する資源の各実行体への配
分およびその管理方法を示している。スレッド17は,
従来技術と同様に,それぞれスタック領域およびスレッ
ド固有域18を持つ。このスタック領域およびスレッド
固有域18は,各スレッド17で動作するプログラムが
使用するスタックと局所変数の格納域等に使用される。
【0020】タスク16は,これらのスレッド17とそ
の資源とをグループ化したものである。各タスク16ご
とに設けられるタスク固有域19は,そのタスク16に
属するスレッド17が共用する外部変数の領域などに使
用される。また,タスク資源表20が各タスク16対応
に用意され,そのタスク16が占有する資源21−1,
21−2などを管理する。このタスク16を空間14内
に複数個作成することにより,異なるタスク16上で動
作するスレッド17は,それぞれ他のタスク16が持つ
資源を意識することなく処理できるようになる。
【0021】空間属性・空間資源22は,例えば空間を
識別する空間idまたはプロセスidとか,各種資源の
使用権限を示すユーザidやグループidなどの各空間
に固有の管理情報などからなる資源である。空間属性・
空間資源22は,各タスク16で共用される。
【0022】図2に示すタスク構成を実現するための環
境は,図3に示すようになっている。図3における実線
の矢印は,一つの空間内に一つのタスク(スレッドは複
数)が存在するシングルタスク制御の流れであって,従
来技術に相当するものの流れを示している。点線の矢印
は,本発明に係るマルチタスク制御の流れを示してい
る。
【0023】マルチタスク制御を行う場合,プログラム
名,タスク多重度(タスク数),例えば必要メモリ量な
どのプログラム実行環境情報を定義した空間定義30
を,マルチタスク実行制御空間33に対して送る。マル
チタスク実行制御空間33は,空間スーパバイザ空間3
4に対し,空間の作成依頼を行う。
【0024】空間スーパバイザ空間34では,空間管理
部35から空間制御空間36を起動し,空間制御空間3
6の仮想空間作成部37で対象空間40を作成し,空間
初期化部38で作成した対象空間40の初期化を行う。
この空間の作成処理は,シングルタスクの場合もマルチ
タスクの場合も同様である。
【0025】対象空間40が作成されたならば,マルチ
タスク実行制御空間33は,対象空間40に対して実行
制御情報の送信を行う。このときの入力情報39は,シ
ングルタスクであるかマルチタスクであるかの実行制御
種別,プログラム名,マルチタスク種別である場合にタ
スク多重度およびプログラム実行環境情報などである。
【0026】対象空間40では,空間内実行制御部41
が受信した実行制御情報を解析し,マルチタスクの指定
がある場合には,マルチタスク実行制御部43によって
タスク制御部44へのタスク生成依頼を,タスク多重度
の数だけ行う。これにより,タスク制御部44によって
図2に示すタスク16の環境が複数個作成される。
【0027】シングルタスク制御では,要求元空間31
におけるシングルタスク実行制御部32が,空間の作成
依頼を空間スーパバイザ空間34に行い,同様に対象空
間40を作成させる。次に,シングルタスクの実行制御
種別とプログラム名とプログラム実行環境情報とを対象
空間40に送信し,対象空間40の空間内実行制御部4
1は,シングルタスク実行制御部42により,1タスク
の生成をタスク制御部44に依頼する。このシングルタ
スク制御は,従来技術によるマルチスレッド方式の制御
に相当している。
【0028】次に,図4に示す処理〜に従って,空
間の作成からタスク作成までの処理の流れを説明する。 マルチタスク実行制御空間33または要求元空間3
1の実行制御部から,空間の作成依頼を行う。 これにより,物理的な仮想アドレス空間の作成処理
を行う。 そして,作成した仮想アドレス空間を論理的な実行
体として構築するための空間制御表および空間資源の作
成と初期化を行う。 空間が作成されたならば,空間作成処理を依頼した
実行制御部が,実行プログラム情報および対象空間内で
のプログラム実行環境を補足する実行制御情報を,空間
内実行制御部41に送信する。
【0029】 空間内実行制御部41は,処理で送
信された実行制御情報をもとに,プログラム実行環境を
設定する処理を行う。 シングルタスク空間の作成時には,シングルタスク
実行制御部42がタスクの生成をタスク制御部44に依
頼し,プログラムの読込み,プログラムのアドレス解決
を行って,そのプログラムを実行させる。
【0030】 マルチタスク空間の作成時には,マル
チタスク実行制御部43が,タスクを管理するための自
身のマルチタスク制御環境を構築する。 そして,各タスクで共通に実行されるプログラムを
事前に読み込んで,対象空間40にバインドする。 次に,タスク制御部44に対し,タスクの生成を依
頼し,各タスクごとにプログラムのアドレス解決および
プログラムの実行を制御する。その処理を,指定個数の
タスクを作成するまで繰り返す。
【0031】図5は,さらに詳しいタスク作成の流れ図
を示している。以下,図5に示す処理〜に従って説
明する。 まず,タスクの実行情報を管理するためのタスク制
御表(TMB)を作成する。なお,制御表内部の構造に
ついては,本発明の実施にあたって種々の設計が可能で
あり,本発明の要旨から外れるので詳しい説明を省略す
る。 次に,タスク上で動作するプログラムが獲得する資
源を,該タスクに保持して管理するためのタスク資源表
(RLST)を作成する。 さらに,タスク内で動作する最初のスレッド(初期
スレッドという)の実行情報を管理するためのスレッド
制御表(THCT)を作成する。管理するスレッド資源
が多枝にわたらないため,ここでは,スレッド制御表が
スレッド資源表の役目も兼ねている。 初期スレッドのためのスタック領域の獲得を行う。 シングルタスク空間の作成時には,シングルタスク
実行制御部42により,指定されたプログラム情報をも
とに,プログラムを読み込んで,対象空間40にバイン
ドし,アドレス解決処理を行う。アドレス解決処理によ
り,プログラムが要求する作業領域があれば,その作業
領域を獲得・設定した上で,タスク資源表またはスレッ
ド資源表に登録する。 一方,マルチタスク空間の作成時には,そのタスク
上で,マルチタスク実行制御部43のアドレス解決処理
部を呼び出す。このアドレス解決処理では,既にプログ
ラムが空間にバインド済みであることから,アドレスの
解決のみを行い,その実行開始アドレスを通知する。 処理または処理のアドレス解決処理によって得
られた実行開始アドレスより,プログラムの実行を開始
する処理を行う。開始した初期スレッドのプログラムか
ら,必要に応じて他のスレッドを生成する処理を起動す
ることにより,そのタスク上で複数のスレッドが動作す
ることになる。
【0032】
【発明の効果】以上説明したように,本発明によれば,
同一空間内で,例えばC言語プログラムにおけるmai
n()関数を持つような,単独のプログラム実行環境を
要求するプログラムを,複数同時に実行させることがで
きるようになり,空間内における多重処理の容易な実現
が可能になるとともに,少ない資源での複数の実行体に
よる実行が可能になる。したがって,プログラム開発の
容易化および実行性能の向上に寄与するところが大き
い。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の一実施例によるタスク構成例を示す図
である。
【図3】本発明の一実施例に係る実行制御の構成例を示
すブロック図である。
【図4】本発明の一実施例による空間の作成からタスク
作成までの流れ図である。
【図5】本発明の一実施例によるタスク作成の流れ図で
ある。
【符号の説明】
10 計算機 11 空間定義手段 12 実行制御手段 13 空間制御手段 14 空間 15 空間内実行制御手段 16A,16B タスク 17 スレッド 18 スタック領域およびスレッド固有域 19A,19B タスク固有域 20A,20B タスク資源表 21−1〜21−4 資源 22 空間属性・空間資源
フロントページの続き (56)参考文献 インターフェース,1988年6月号,C Q出版社,P.127〜128 bit,Vol.20,No.12,P. 68〜78 bit,Vol.20,No.8,P. 61〜72 情報処理学会研究報告,vol.91, no.107(OS−53),P.53−1, 1〜8 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 JICITファイル

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 一つの仮想空間の割当単位内にCPUの
    割当単位である第一の種別の実行体が複数存在するシス
    テムにおけるマルチタスク制御方法において,前記複数個存在する第一の種別の実行体を,資源を共有
    する単位でグループ化し,当該グループ化された第一の
    種別の実行体と,該グループ内の第一の種別の実行体間
    で共有されるデータ領域と,その他の資源を割り当てる
    ための資源表とを一組として第二の種別の実行体とし,
    該第二の種別の実行体を同一仮想空間内に複数個生成す
    ステップと,前記各第一の種別の実行体に,その属する第二の種別の
    実行体内の前記データ領域および前記資源表に記載され
    る資源を共有させ,第一の種別の実行体を実行制御する
    とともに,同一仮想空間内の異なる第二の種別の実行体
    間では,各第二の種別の実行体に割り当てられた前記資
    源を個別に取り扱うよう実行制御する ステップとを有す
    ることを特徴とするマルチタスク制御方法。
  2. 【請求項2】 一つの仮想空間の割当単位内にCPUの
    割当単位である第一の種別の実行体が複数存在するシス
    テムにおけるマルチタスク制御装置において,前記複数個存在する第一の種別の実行体を,資源を共有
    する単位でグループ化し,当該グループ化された第一の
    種別の実行体と,該グループ内の第一の種別の実行体間
    で共有されるデータ領域と,その他の資源を割り当てる
    ための資源表とを一組として第二の種別の実行体とし,
    該第二の種別の実行体を同一仮想空間内に複数個生成す
    る手段と,前記各第一の種別の実行体に,その属する第二の種別の
    実行体内の前記データ領域および前記資源表に記載され
    る資源を共有させ,第一の種別の実行体を実行制御する
    とともに,同一仮想空間内の異なる第二の種別の実行体
    間では,各第二の種別の実行体に割り当てられた前記資
    源を個別に取り扱うよう 実行制御する手段とを有するこ
    とを特徴とするマルチタスク制御装置。
JP03049316A 1991-03-14 1991-03-14 マルチタスク制御方法および制御装置 Expired - Fee Related JP3083575B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03049316A JP3083575B2 (ja) 1991-03-14 1991-03-14 マルチタスク制御方法および制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03049316A JP3083575B2 (ja) 1991-03-14 1991-03-14 マルチタスク制御方法および制御装置

Publications (2)

Publication Number Publication Date
JPH04321136A JPH04321136A (ja) 1992-11-11
JP3083575B2 true JP3083575B2 (ja) 2000-09-04

Family

ID=12827562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03049316A Expired - Fee Related JP3083575B2 (ja) 1991-03-14 1991-03-14 マルチタスク制御方法および制御装置

Country Status (1)

Country Link
JP (1) JP3083575B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055966A (ja) 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法
JP2010198458A (ja) * 2009-02-26 2010-09-09 Denso Corp リスト生成装置、ミドルウェア生成装置、およびミドルウェア

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
bit,Vol.20,No.12,P.68〜78
bit,Vol.20,No.8,P.61〜72
インターフェース,1988年6月号,CQ出版社,P.127〜128
情報処理学会研究報告,vol.91,no.107(OS−53),P.53−1,1〜8

Also Published As

Publication number Publication date
JPH04321136A (ja) 1992-11-11

Similar Documents

Publication Publication Date Title
US9959337B2 (en) Independent data processing environments within a big data cluster system
US6505227B1 (en) Method and apparatus for distributing work granules among processes based on the location of data accessed in the work granules
US7428485B2 (en) System for yielding to a processor
JP4769484B2 (ja) 仮想計算機をマイグレーションするための方法およびシステム
TWI292127B (en) Method, apparatus and program product of dynamically allocating computer resources in a multithreaded computer
US7921261B2 (en) Reserving a global address space
Baratloo et al. Calypso: A novel software system for fault-tolerant parallel processing on distributed platforms
US20060150195A1 (en) System and method for interprocess communication
US8930921B2 (en) Compilation and placement of instructions in a memory system
US8024726B2 (en) System for correct distribution of hypervisor work
US20090157996A1 (en) Method, System and Program Product for Allocating a Global Shared Memory
Diab et al. Dynamic sharing of GPUs in cloud systems
US7454749B2 (en) Scalable parallel processing on shared memory computers
US6243762B1 (en) Methods and apparatus for data access and program generation on a multiprocessing computer
Fukutomi et al. GPUhd: Augmenting YARN with GPU resource management
JP3083575B2 (ja) マルチタスク制御方法および制御装置
US8914779B2 (en) Data placement for execution of an executable
KR101620896B1 (ko) 이기종 프로세싱 타입을 고려한 맵리듀스 프로그램 모델의 수행 성능 향상 방법, 수행 성능 향상 장치 및 수행 성능 향상 시스템
JPH0713823A (ja) 仮想計算機システムにおけるファイル資源管理方式
JPH09330243A (ja) 計算機システム
US9547522B2 (en) Method and system for reconfigurable virtual single processor programming model
US11593159B2 (en) External exception handling
JPH09146898A (ja) プロセッサ割当て制御方法
JP2522161B2 (ja) 仮想計算機システムにおけるボリュ―ム資源管理方式
JPH0616279B2 (ja) 仮想情報処理システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960806

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees