JPH08212064A - 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法 - Google Patents

共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法

Info

Publication number
JPH08212064A
JPH08212064A JP1452495A JP1452495A JPH08212064A JP H08212064 A JPH08212064 A JP H08212064A JP 1452495 A JP1452495 A JP 1452495A JP 1452495 A JP1452495 A JP 1452495A JP H08212064 A JPH08212064 A JP H08212064A
Authority
JP
Japan
Prior art keywords
subroutine
task
shared
processing
replacement
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
JP1452495A
Other languages
English (en)
Inventor
Kunihiko Tsunetomi
邦彦 恒冨
Takanori Yokoyama
孝典 横山
Masaru Shimada
優 島田
Masahiko Saito
雅彦 齊藤
Tomoaki Nakamura
智明 中村
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 JP1452495A priority Critical patent/JPH08212064A/ja
Publication of JPH08212064A publication Critical patent/JPH08212064A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【構成】共用サブルーチン入れ替えシステムは、サブル
ーチンの入れ替えコマンドが実行された時にサブルーチ
ンがタスクにより使用中であった場合の、そのタスクに
対する対処を指定するサブルーチン入れ替え処理指示記
録手段を有し、入れ替えようとするサブルーチンの使用
状況を判定し、サブルーチンがタスクに使用されておら
ず、かつサブルーチン入れ替え処理記録手段に指定がな
い場合、入れ替え処理を行ない、これ以外の場合には、
指示に従ってタスク強制終了または、タスクが終了して
入れ替え処理可能になるまで入れ替え処理を延期する。 【効果】システム全体を停止させずに効率良く、共用サ
ブルーチンを入れ替えられる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のタスクが複数の
共用サブルーチンを共有しているシステムにおいて、シ
ステム全体を停止させることなく共用サブル−チンの入
れ替えを行う、共用サブルーチン入れ替えシステムおよ
び共用サブルーチンの入れ替え方法に関する。
【0002】
【従来の技術】ユニックス(UNIX:ユニックス シ
ステム ラボラトリーズ(Unix SystemLaboratories)の
ライセンスしているオペレーティングシステム)等の従
来のオペレーティングシステムは、システム内の全ての
タスク間で共用して使用することが可能な共用サブルー
チン(ユニックスでは共用ライブラリと呼ばれる)を用
意している。共用サブルーチンはタスクのオブジェクト
ファイルに一緒に含まれずに別ファイルとなっている。
この為、全てのタスクのオブジェクトファイルにサブル
ーチンを予めリンクしておく場合に比べて、オブジェク
トファイルを格納するハードディスクの使用量を削減で
きる。また、メモリ上の共用サブルーチンも複数のタス
クにより共用されるので、メモリ使用量も節約できる。
【0003】共用サブルーチンについては、文献「マネ
ージング プログラムス アンドライブラリズ イン
エーアイエックス バージョン3 フォー リスクシス
テム/6000プロセッサ:アイビーエム ジャーナル
オブ リサーチ アンドデベロップメント,34巻1
号 1990年1月刊 エム.エイ.アウスランダー著」(M
anaging programs and libraries in AIX Version 3 fo
r RISC System/6000 processors:IBM Journal of Rese
arch and Development Vol.34, no1. January 1990:M.
A. Auslander)、文献「シェアード ライブラリ イン
サンオーエス:ユーゼニックス プロシーディング
1987年夏,ロバート エイ.ジンゲル等著」(Shared L
ibraries in SunOS:USENIX proceding Summer 1987:R
obert A. Gingell et al.)に詳しく記載されている。
【0004】この共用サブルーチンを、オンラインで入
れ替える必要が生じる場合がある。例えば、システム動
作中のサブルーチンのバージョンアップを行う場合や、
共用サブルーチンのデバッグを行う場合である。そのた
め従来のオペレーティングシステムでは、例えば特開平
4−39739に示されるような、共用サブルーチンの
入れ替え処理を行うコマンド及びシステムを用意してい
る。
【0005】この特開平4−39739においては、サ
ブルーチン交換管理手段は、何れのタスクがどのサブル
ーチンを判別する呼出判別手段を有しており、該呼出判
別手段により走行中のタスクによって現在サブルーチン
が使用されているかどうかを判定する。もしくは該呼出
判別手段の替わりにどのサブルーチンが現在メモリにマ
ッピングされているかを管理するサブルーチンマッピン
グ情報記録部を持ち、これからサブルーチンの使用状況
を調べる。そして共用サブルーチンに含まれる全てのサ
ブルーチンが使用されていない時には入れ替え処理を行
い、タスクにより使用されているサブルーチンがある時
は、そのサブルーチンを使用しているタスクが終了する
まで待つか、そのタスクを強制終了させてから共用サブ
ルーチンを入れ替える。また、タスクが入れ替え途中の
サブルーチンをコールしようとする場合には、タスク管
理がそのコールを中止しタスクを強制終了させるか、そ
のコールを延期する。これにより、システムの全タスク
を全停止させることなく、また、タスクの実行結果に不
整合が起こさずに共用サブルーチンを入れ替えることが
できる。
【0006】
【発明が解決しようとする課題】特開平4-39739で述べ
られている様な従来のサブルーチン入れ替え処理は、サ
ブルーチンを実行しているタスクに対する処理が、タス
ク強制終了若しくはタスク終了待ちのどちらかに固定さ
れているため、サブルーチン入れ替えがシステムに大き
なオーバヘッドをもたらすという問題があった。
【0007】第一の例としては、異なる性質乃至は処理
形態のタスクが混在するシステムにおけるサブルーチン
入れ替え処理である。一般にシステムを構成するタスク
の性質は処理の形態により2種類に分けることが出来
る。1つはユニックスにおけるデーモンプロセスのよう
に、無限ループを繰り返して何らかの処理を継続し、基
本的には自らは終了することがないような性質のタスク
であり、以下この様なタスクを「デーモン型タスク」と
呼ぶ。「デーモン型タスク」は、他のタスクや計算機の
入出力装置から処理要求を受け付け、その処理を行うこ
とが多い。また、、他のタスクや計算機の入出力装置か
らの処理要求が存在しない場合は、タスクは実行状態の
まま次の要求が到着するまで休止状態となる。もう1つ
は、処理が終ると自ら終了する性質を有するタスクであ
り、以下この様なタスクを「通常タスク」と呼ぶ。
【0008】これら「デーモン型タスク」と「通常タス
ク」の2種類のタスクが混在するシステムにおいては、
従来の入れ替え処理では以下のような問題点がある。即
ち、共用サブルーチン入れ替え時に、サブルーチン入れ
替え処理部の処理がタスクの強制終了に固定されている
場合、「通常タスク」がコールするサブルーチンを入れ
替える際に、「通常タスク」が以後サブルーチンをコー
ルしなくとも、そのタスクを強制終了する。これは、そ
れまで実行していた「通常タスク」の処理結果を無効と
し、始めから処理を際実行しなければならず、処理効率
が低下する。
【0009】また逆に、共用サブルーチン入れ替え時
に、サブルーチン入れ替え処理部の処理がタスクの処理
終了待ちに固定されている場合、「デーモン型タスク」
がコールするサブルーチンを入れ替える際に、「デーモ
ン型タスク」は終了することはあり得ないにもかかわら
ず、そのタスクの終了を待ち続ける。従って、この待ち
時間は無駄になる。
【0010】第二の例は、「排他制御命令を有するタス
ク」と「排他制御命令を有さないタスク」が混在するシ
ステムにおけるサブルーチン入れ替え処理である。「排
他制御命令を有するタスク」とは、共有データ、共有デ
ータベースなどを排他的にアクセスするために、排他制
御命令を使用するタスクである。排他制御命令には、共
有データを独占するロックと、共有データを解放するア
ンロック命令がある。「排他制御命令を有さないタス
ク」とは、排他制御命令を使用しないタスクである。
【0011】これら2種類のタスクが混在するシステム
においては、従来の入れ替え処理では次のような問題点
がある。共用サブルーチン入れ替え時に、サブルーチン
入れ替え処理部の処理がタスクの強制終了に固定されて
いる場合、「排他制御命令を有するタスク」がコールす
るサブルーチンを入れ替える際に、該タスクが共有デー
タをロックしている場合でもこのタスクを強制終了する
ため、該タスクが占有していた共有データをアンロック
するタスクが存在しなくなる。そのため、以後この共有
データを使用しようするタスクはすべて共有データを使
用できない状態に陥る。
【0012】また逆に、共用サブルーチン入れ替え時
に、サブルーチン入れ替え処理部の処理がタスクの処理
終了待ちに固定されている場合、「排他制御命令を有さ
ないタスク」がコールするサブルーチンを入れ替える
時、「排他制御命令を有さないタスク」はデッドロック
状態になることはあり得ないにもかかわらず、そのタス
クの終了を待ち続ける。従って、この待ち時間は無駄で
ある。
【0013】このように、公知の共用サブルーチン入れ
替えシステムでは、捜査の対象となるタスクの性質を考
慮することがなかったため、タスクに対する処理とタス
ク種別の組み合わせによっては、システムにとって大き
なオーバヘッドが発生するという問題点があった。
【0014】本発明の目的は、共用サブルーチンを入れ
替える際に、上記の如きオーバーヘッドを削減し効率の
良い共用サブルーチン入れ替えシステムを提供すること
である。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、本発明の共用サブルーチン入れ替えシステムは、ユ
ーザのプログラムを実行するタスクと、タスク間で共有
して実行可能なプログラムである共有サブルーチンと、
該共用サブルーチンを格納するサブルーチン格納部と、
当該サブルーチン格納部に格納されるサブルーチンを入
れ替えるサブルーチン入れ替え手段と、タスクの実行開
始処理と実行終了処理を行なうタスク管理手段を有する
計算機システムにおいて、上記サブルーチン入れ替え手
段は、サブルーチンの入れ替えコマンドが実行された時
にサブルーチンがタスクにより使用中であった場合に、
当該タスクに対する対処をタスクの性質に基づき指定す
るサブルーチン入れ替え処理指示記録手段を有し、上記
タスク管理手段は、タスクがコールしようとするサブル
ーチンについて入れ替え処理が実行中かどうかを判定
し、入れ替え処理中ならばそのタスクの処理を中断、ま
たは強制終了し、上記サブルーチン入れ替え手段は、入
れ替えようとするサブルーチンの使用状況を判定し、サ
ブルーチンがタスクに使用されておらず、かつサブルー
チン入れ替え処理記録手段に指定がない場合、入れ替え
処理を行ない、これ以外の場合には、指示に従ってタス
クの強制終了行うか又は、タスクが終了して入れ替え処
理可能になるまでサブルーチン入れ替え処理を延期する
ことを特徴としている。
【0016】
【作用】本発明によれば、共用サブルーチン入れ替え処
理を行うときには、現在実行中のタスクがその共用サブ
ルーチンを使用していないか確認し、もし使用していれ
ば、タスク毎にその性質に基づき指定されたサブルーチ
ン入れ替え処理指示記録部の指示に従って、タスクの終
了を待つか、タスクを強制終了させるかを選択する。
【0017】上記により、例えば「通常タスク」「デー
モン型タスク」の如き性質の異なるタスクが混在するシ
ステムにおいてサブルーチン入れ替えが行われるとき、
「通常タスク」が実行中の場合は、タスクの終了までサ
ブルーチン入れ替えが延期される。このため、「通常タ
スク」の途中までの処理結果が、無駄に破棄されること
がなくなる。また、「デーモン型タスク」が実行中の場
合には、すぐにタスクを強制終了させサブルーチン入れ
替えを行う。このため、サブルーチン入れ替え処理のた
めに「デーモン型タスク」の終了を無駄に待つような状
況が発生しなくなり、効率の良い共用サブルーチン入れ
替えシステムを実現することが出来る。
【0018】
【実施例】本発明における一実施例を、「通常タスク」
及び「デーモン型タスク」が混在するシステムにおける
サブルーチン入れ替えシステムの例で説明する。このシ
ステムでは、サブルーチン入れ替え時に「通常タスク」
が実行中の場合は、タスクの終了までサブルーチン入れ
替えを延期する。また、「デーモン型タスク」が実行中
の場合には、すぐにタスクを強制終了させサブルーチン
を入れ替える。
【0019】まず図1に、本発明の共用サブルーチン入
れ替えシステムの構成を示す。タスク1、2は、ユーザが
記述したプログラムやシステムが定めたプログラム処理
を行い、必要な場合には共用サブルーチン31〜33を呼び
出して実行する。各々のタスクは一意に区別可能なよう
にタスクの識別情報を持っている。タスクの識別情報と
しては、タスク番号等がある。なお、図1において「破
線」矢印はデータの移動を示し、「実線」矢印は制御情
報の移動を示している。
【0020】共用サブルーチンは、タスク間で共用され
自由に実行可能なプログラムである。共用サブルーチン
には、内部に単一のサブルーチンしか持たないシングル
エントリサブルーチンと、複数のサブルーチンを保持す
るマルチエントリサブルーチンがある。本実施例では、
全ての共用サブルーチンがシングルエントリサブルーチ
ンであるとして説明するが、本発明はマルチエントリサ
ブルーチンの場合でも適用できることは明らかである。
サブルーチン31〜33は、タスクの識別情報と同様に一意
に区別可能な様にサブルーチンの識別子を持っている。
このサブルーチンの識別子としては、サブルーチン番号
がある。本実施例においては、共用サブルーチンは「lo
ad」コマンドによりロード、「deload」コマンドにより
デロードされる。ロードとはディスク等外部記憶装置上
にある共用サブルーチンのファイルをメモリ上にコピー
することである。また、デロードとは、ロードされた共
用サブルーチンをメモリ上から消すことである。また、
タスク開始処理は「queue」、終了処理は「abort」とい
うコマンドで実現されているものとする。
【0021】コマンドインタプリタ6は、ユーザ13がマ
ウス125やキーボード126で入力したコマンドを解釈す
る。コマンドインタプリタ6は、「load」コマンド、「d
eload」コマンドを受け取った時には、解釈したコマン
ドと引数をサブルーチン入れ替え手段15に渡す。また、
「queue」コマンド、「abort」コマンドを受けた時は、
タスク管理手段14にコマンドと引き数を渡す。なお「lo
ad」コマンドでは共用サブルーチンのファイル名とサブ
ルーチン識別子を、「deload」コマンドではサブルーチ
ン識別子を引き数として指定する。
【0022】共用サブルーチンの入れ替えを行うサブル
ーチン入れ替え手段15は、サブルーチン入れ替え部4、
サブルーチン入れ替え処理指示記録部5、サブルーチン
使用記録部9、サブルーチン入れ替え記録部11を有して
いる。サブルーチン入れ替え手段15はコマンドインタプ
リタ11からコマンドとサブルーチン識別子を受けとる
と、サブルーチン入れ替え部4によって「load」「deloa
d」コマンドを実行する。
【0023】タスクの走行状態を管理するタスク管理手
段14は、タスクの開始処理と終了処理を行うタスク管理
部10を有しており、コマンドインタプリタ6や、サブル
ーチン入れ替え部4から呼び出される。「queue」、「ab
ort」コマンドを受け取ったタスク管理手段14では、引
数として指定された実行開始するタスクや、実行終了す
るタスクのタスク番号に基づき、タスク管理部10が指定
されたタスク番号を持つタスクの開始処理と終了処理を
行う。
【0024】また、サブルーチン格納部3は、ディスク
等外部記憶装置に存在するサブルーチンファイル格納部
8に格納された共用サブルーチンのファイルをロードす
るためのメモリ上の領域を表している。
【0025】図3に、上記本発明における一実施例を計
算機12上で実現したときの構成例を示す。タスク1、2
と、共用サブルーチン入れ替え部4がディスク123からメ
モリ122に読み出される。その後メモリ122上にタスク状
態記録部7、サブルーチン入れ替え記録部11、サブルー
チン入れ替え処理指示記録部7、サブルーチン格納部3の
ための領域を確保する。そして、これらのタスクやサブ
ルーチン入れ替え部をプロセッサ121が実行する。図3
では、全てのサブルーチン31〜33やタスク1、2及び共用
サブルーチン入れ替え部4が連続したメモり上に存在す
る構成として表されているが、これらは不連続のメモり
上に存在することも可能であるし、また全てが同時にメ
モリ上に存在する必要はなく必要に応じてメモリ上に存
在すればよい。更に、本実施例の計算機は入出力装置と
してディスプレイ124、マウス125、キーボード126、プ
リンタ127を備えているが、入出力装置はこれらに限ら
れないし、又これらを全て備えている必要はない。
【0026】図4に、サブルーチン入れ替え記録部11の
構成について示す。サブルーチン入れ替え記録部11は、
各サブルーチン31〜33に対応してサブルーチンの実行が
許可されているか否かを示す領域111〜113を有してい
る。各領域111〜113は対応するサブルーチンが使用許可
の場合には「1」、使用不許可の場合には「0」が記録
される。従って、共用サブルーチンがロードされていれ
ば「1」、デロードされていれば、「0」がそれぞれ格
納される。
【0027】サブルーチン使用記録部9は図5に示すよ
うに、各タスク1、2がリンクする全共用サブルーチンを
記録する領域の列92〜94と、共用サブルーチンに対応し
てサブルーチン識別子を記録する列91を有している。本
実施例ではサブルーチン使用記録部9はビット列で実現
し、タスクがリンクするサブルーチンを記録する列の各
々の値は、サブルーチンが使用状態である場合には
「1」、未使用状態である場合には「0」が記録され
る。サブルーチン使用記録部9の内容は全て前もって初
期化されているものとする。例えば、タスクのコンパイ
ルあるいは共用サブルーチンのリンク時に、タスクが使
用する共用サブルーチンのサブルーチン識別子とタスク
番号をユーザに指定させ、これをサブルーチン使用記録
部のファイルに記録しておくことによっても初期化が可
能である。
【0028】図6に、サブルーチン入れ替え処理指示記
録部5の構造について示す。サブルーチン入れ替え処理
指示記録部5は、各タスク1、2が走行状態の時に、タス
クがリンクするサブルーチンが「deload」される場合、
そのタスクを強制終了させるか、そのサブルーチンの終
了まで「deload」を停止するかの指示をタスク毎に記録
する。前者の場合は「KILL」、後者の場合は「WAIT」が
各タスクの対応する領域に記録される。
【0029】図7に、タスク状態記録部7の構造につい
て示す。タスク状態記録部7は、各タスク1、2毎に該タ
スクが走行状態か、停止状態かを示す領域71〜73を有し
ている。そして各領域には対応するタスクが走行状態な
らば「1」、停止状態ならば「0」が記録される。
【0030】以下、タスクが実行を開始した後、共用サ
ブルーチンを実行し、タスクの処理を停止するまでの処
理手順を説明する。その後、サブル−チンのロード、デ
ロードを行うコマンド処理の処理手順について説明す
る。
【0031】A.タスクの処理手順 以下図1において、ユーザのコマンド「queue」、また
は、システムの他の管理部から「queue」がコールされ
てタスク1が実行を開始し、続いてタスクが終了する手
順について説明する。なおここでは図4〜7に示すよう
に、タスク1はサブルーチン31、32をリンクするものと
して説明する。
【0032】タスク1を正常に動作させるためには、タ
スク1の使用するサブルーチン31、32が、事前にサブル
ーチン格納部3にロードされなければならない。ここで
は、システムを操作するユーザがコマンドインタプリタ
6にサブルーチン31、32の「load」を発行することによ
って、既にサブルーチン31、32がロードされているもの
とする。
【0033】タスク実行開始直後、最初に処理の制御は
タスク管理部10に移り、このタスク管理部10によりコマ
ンド「queue」が実行される。この「queue」コマンドの
フローチャートを図8に示す。
【0034】(1)タスクの種別を判定し、サブルーチ
ン入れ替え処理指示記録手段5の該当タスクの領域に、
タスクがコールするサブルーチンが「deload」される場
合の処理を記録する。「デーモン型タスク」の場合は、
タスクを強制終了させないと入れ替えられないので、
「KILL」を記録する。「通常タスク」の場合はその終了
まで「deload」を停止するだけでよいので「WAIT」を記
録する(801)。
【0035】(2)サブルーチン使用記録部9から、当
該タスクの使用するサブル−チン番号を1つ読み込む
(802)。
【0036】(3)サブル−チン入れ替え記録部11によ
り、当該サブル−チン番号に対応する領域が1(使用許
可)か否かを調べる(803)。0(使用不許可)なら
ば、タスクは実行を継続することは不可能なので、エラ
ー処理を行い終了する。1(使用許可)ならば、処理
(4)を実行する。
【0037】(4)上記(1),(2),(3)の処理
を、サブルーチン使用記録部9に記録されているサブル
ーチン識別子全てについて繰り返して行った後(80
4)、タスク状態記録部の該当タスクの領域を1(走行
状態)にセットする。
【0038】(5)タスクの実体を生成する(805)。
【0039】ここで、処理(1)におけるタスクの種別
の判定方式の一例を示す。「デーモン型タスク」は、他
のタスクからの処理要求を読み込むための命令を含んで
いる。ユニックスではシグナル、ソケット、共用メモリ
などの機能を使用して処理要求を読み込む。そして処理
要求が存在しない場合は「デーモン型タスク」は休止状
態となる。本実施例では、要求読み込みと、要求がない
場合に休止状態となる動作を「qwait」というシステム
コールにより行うものとする。通常「デーモン型タス
ク」では、この「qwait」が無限ループで囲まれてい
る。そこで、タスクのソースプログラムをコンパイルす
る際に、ループで囲まれた「qwait」を検出した場合、
そのタスクは「デーモン型タスク」と判定することにす
る。そして、その「デーモン型タスク」と判定されたタ
スクのオブジェクトファイルのヘッダに、タスク種別を
表わす領域を生成し「デーモン型タスク」と記録する。
【0040】一方、ループで囲まれた「qwait」が検出
できなかった場合、そのタスクは「通常タスク」と判定
し、オブジェクトコードのヘッダに「通常タスク」と記
録する。そして(1)では、オブジェクトファイルのヘッ
ダにあるタスク種別を表す領域を参照することにより、
タスクが「デーモン型タスク」であるか「通常タスク」
であるかを判別する。
【0041】タスク管理部10の処理が終了すると、処理
は生成されたタスクに移る。そしてタスクの処理が終了
すると、タスク自身が「abort」をコールしてタスク管
理部の終了処理が行われる。「abort」コマンドのフロ
ーチャートを図9に示す。
【0042】(1)タスク状態記憶部の当該タスクの領域
に、停止状態と記録する(901)。
【0043】(2)タスクの実体を消滅する(902)。
【0044】本実施例では、共用サブルーチンの最初の
メモリへのロードはコマンドインタプリタ6からコマン
ドが入力されることで行うものとしている。しかし、計
算機の立ちあげ時に、全てのタスクについてサブルーチ
ン使用記録部9に登録されたサブルーチンをロードする
コマンドを発行させる方式も考えられる。例えばユニッ
クスではrcコマンドを用いて、計算機の立ちあげ時に
ロードコマンドを実行する方式がある。rcコマンドに
ついては「ユニックス4.3ビーエスディー(BSD)の設
計と実装(S.J.Leffler等著、丸善株式会社刊)」に詳
しい記載がある。
【0045】 B.ロード、デロードのコマンドの処理手順 図1において、共用サブルーチンのロード、またはデロ
ードコマンドが入力された場合を例として本実施例を説
明する。
【0046】まず、ユーザがキーボード125やその他の
入力装置にコマンド「load」、「deload」を入力する
と、コマンドインタプリタ6は、コマンドとその引き数
をサブルーチン入れ替え手段15に送り、制御をサブルー
チン入れ替え手段15に移す。サブルーチン入れ替え手段
15では該送られたコマンドをサブルーチン入れ替え部4
で処理する。サブルーチン入れ替え部4の「deload」の
動作を表すフローチャートを図10に示す。
【0047】(1)まず、サブル−チン入れ替え記録部
11の当該サブル−チン番号の領域を0(使用不可能)に
セットする(1001)。
【0048】(2)サブルーチン使用記録部9の当該サ
ブル−チン番号の行から、あるタスクについて、そのタ
スクは当該サブルーチンを実行するか否かを検索する
(1002)。実行する場合は(3)に移る。そうでなけれ
ば(5)に移る。
【0049】(3)そのタスクが実行状態であるかどう
か、タスク状態記録部7を検索する(1003)。実行状態
であれば、(4)に移る。そうでなければ(5)に移
る。
【0050】(4)実行中のタスクに対する処理をどう
するかを、サブルーチン入れ替え指示処理記録部5の該
当タスクの領域から調べる(1004)。該当タスクの領域
が「KILL」であればタスク管理手段14によりタスクを強
制終了させ、「WAIT」であれば、該当タスクが終了する
まで待つ。その後(5)に移る。
【0051】(5)上記(2),(3),(4)の処理
をタスク番号全てについて繰り返す(1005)。
【0052】(6)該当サブルーチンに割り当てられた
メモリ領域を解放する(1006)。
【0053】このようにして古い共用サブルーチンをメ
モリから削除する。
【0054】次に、図11にサブルーチン入れ替え部の
「load」動作のフローチャートを示す。
【0055】(1)サブルーチン格納部3のうち、サブ
ルーチン識別子により指定された未使用のメモリ領域を
当該サブルーチンに割り当てる(1101)。その後、サブ
ルーチンファイル格納部8から、引き数で指定されたサ
ブル−チンファイルを読み込み、割り当てられたメモリ
領域にロードする(1102)。
【0056】(2)サブルーチン入れ替え記録部7のサ
ブル−チン番号の領域を「1」(使用可能)にセットす
る(1103)。
【0057】この様にして、新たな共用サブルーチンに
入れ替える。
【0058】上述の本発明における一実施例において
は、「load」、「deload」コマンドが実行不可能な場合
にも、そのまま共用サブルーチン入れ替え処理は継続で
きるようになっていた。しかし、共用サブルーチンのロ
ード、デロード処理よりもタスクの実行を妨げないこと
の方が重要であるシステムの場合、「queue」コマンド
実行時にこのような処理を優先させるタスクに対して
は、サブルーチン入れ替え処理指示記録部5の対応する
領域に「ABORT」を記録する。そして、「deload」コマ
ンド実行の際、サブルーチン入れ替え処理指示記録部5
に「ABORT」が書かれているタスクの場合、「deload」
コマンドの処理を強制終了させることにする。これによ
り、処理を優先させなければならないタスクが存在する
システムにおいても、信頼性の高い共用サブルーチン入
れ替え処理を行うことが出来る。
【0059】また、前記本発明の一実施例において、タ
スク毎のサブルーチン入れ替え処理時の動作指示は、オ
ブジェクトファイルを元に自動的に行うものとしてい
た。これに対して、サブルーチン入れ替え処理時のタス
クに対する処理の指示を、共用サブルーチン入れ替え処
理が発生したときに、必要に応じてユーザから与えるよ
うにすることも可能である。この実施例の構成を図12
に示す。
【0060】この共用サブルーチン入れ替えシステム
は、サブルーチン入れ替え処理記録部5の代わりにメッ
セージ表示部16を持つ。そして、「deload」コマンドの
実行中に入れ替え対象のサブルーチンを使用しているタ
スクを発見すると、メッセージ表示部16により「タスク
を強制終了させる」か「タスクが終了するのを待つ」か
「コマンドを終了する」といった選択肢を画面に表示し
てユーザに処理を選択させる。そしてユーザの選択に従
って「deload」コマンドの処理を続行する。上記動作
は、図10のステップ1004の処理において、メッセージ
表示部が当該タスクに対する処理の選択肢をユーザに示
し、ユーザの選択に従って当該タスクを強制終了する
か、乃至は当該タスクの終了を待つか、あるいはコマン
ドを終了するかを選択するように変更することで実現で
きる。
【0061】これにより、不用意なタスクの終了乃至は
サブルーチン入れ替え処理の遅延を防ぎ、効率の良い共
用サブルーチン入れ替え処理を行うことが出来る。
【0062】更に、前記本発明の一実施例においては、
共用サブルーチンはシングルエントリサブルーチンであ
るとして説明してきた。しかし、ユニックスなどの共用
ライブラリは、一般にマルチエントリサブルーチンであ
り、この場合について以下記述する。
【0063】共用ライブラリの場合には、サブルーチン
毎ではなくライブラリ毎にサブルーチン識別子としてサ
ブルーチン番号を割り当てる。そして、サブルーチン使
用記録部9は各タスクがどのサブルーチンを使用するか
をサブルーチン毎にではなくライブラリ単位で記録す
る。また、「load」「deload」コマンドの入れ替え指定
単位は、各サブルーチン単位ではなくライブラリ単位と
する。このようにすることにより、マルチエントリの共
用サブルーチンライブラリをオンラインで効率良く入れ
替えるシステムを実現することができる。
【0064】
【発明の効果】本発明によれば、共用サブルーチン入れ
替え処理を行うときには、現在実行中のタスクがその共
用サブルーチンを使用していないか確認し、もし使用し
ていれば、タスク毎に指定されたサブルーチン入れ替え
処理指示記録部の指示に従って、タスクの終了を待つ
か、タスクを強制終了させるかを選択する。
【0065】上記により、例えば「通常タスク」「デー
モン型タスク」が混在するシステムにおいてサブルーチ
ン入れ替えが行われるとき、「通常タスク」が実行中の
場合は、タスクの終了までサブルーチン入れ替えが延期
される。このため、「通常タスク」の途中までの処理結
果が、無駄に破棄されることがなくなる。また、「デー
モン型タスク」が実行中の場合には、すぐにタスクを強
制終了させサブルーチン入れ替えを行う。このため、サ
ブルーチン入れ替え処理のために、「デーモン型タス
ク」の終了を無駄に待つような状況が発生しなくなる。
【図面の簡単な説明】
【図1】本発明のサブルーチン入れ替えシステムの構成
図である。
【図2】本発明の別のサブルーチン入れ替えシステムの
構成図である。
【図3】本発明のサブルーチン入れ替えシステムを計算
機上に実現した構成図の一例である。
【図4】サブルーチン入れ替え記録部の構成図である。
【図5】サブルーチン使用記憶部の構成図である。
【図6】サブルーチン入れ替え処理指示記憶部の構成図
である。
【図7】タスク状態記憶部の構成図である。
【図8】本発明にかかる実施例の動作を示すフローチャ
ートである。
【図9】本発明にかかる実施例の動作を示すフローチャ
ートである。
【図10】本発明にかかる実施例の動作を示すフローチ
ャートである。
【図11】本発明にかかる実施例の動作を示すフローチ
ャートである。
【符号の説明】
1,2…タスク、3…サブルーチン格納部、4…サブル
ーチン入れ替え部、5…サブルーチン入れ替え処理指示
記録部、6…コマンドインタプリタ、7…タスク状態記
録部、8…サブルーチンファイル格納部、9…サブルー
チン使用記録部、10…タスク管理部、11…サブルー
チン入れ替え記録部、12…計算機、14…タスク管理
手段、15サブルーチン入れ替え手段、16…メッセー
ジ表示部、31〜33…サブルーチン、125…マウ
ス、126…キーボード。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 齊藤 雅彦 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】一つ以上のタスクと、タスク間で共有して
    実行可能な共用サブルーチンと、該共用サブルーチンを
    格納するサブルーチン格納部と、当該サブルーチン格納
    部に格納された共用サブルーチンを入れ替えるサブルー
    チン入れ替え手段と、タスクの実行開始処理と実行終了
    処理を行なうタスク管理手段を有する、共用サブルーチ
    ン入れ替えシステムにおいて、 該サブルーチン入れ替え手段は、サブルーチンの入れ替
    えを行う際に、入れ替えの対象となるサブルーチンがタ
    スクにより使用中であった場合の該サブルーチンを使用
    するタスクに対する処理を指定するサブルーチン入れ替
    え処理指示記録手段を有し、 該タスク管理手段は、タスクが使用するサブルーチンの
    入れ替え処理が実行中か判定し、入れ替え処理中ならば
    該サブルーチンを使用するタスクの処理を中断乃至は強
    制終了し、 上記サブルーチン入れ替え手段は、入れ替えの対象とな
    る共用サブルーチンの使用状況を判定し、当該共用サブ
    ルーチンがタスクに使用されておらず、かつサブルーチ
    ン入れ替え処理記録手段に指定がない場合、入れ替え処
    理を行ない、それ以外の場合には、該サブルーチン入れ
    替え処理指示記録手段に記録された指示に従って処理を
    行うことを特徴とする、共用サブルーチン入れ替えシス
    テム。
  2. 【請求項2】一つ以上のタスクと、タスク間で共有して
    実行可能な共用サブルーチンと、該共用サブルーチンを
    格納するサブルーチン格納部とを有する計算機システム
    における共用サブルーチン入れ替え方法であって、 共用サブルーチンを入れ替える際に、入れ替えの対象と
    なるサブルーチンがタスクにより使用中であるか否かを
    判定する判定処理と、 該判定処理により、該サブルーチンがタスクにより使用
    中である場合は、該サブルーチンを使用するタスクの性
    質により、該タスクに対する操作を決定する処理を有す
    ることを特徴とする共用サブルーチン入れ替え方法。
  3. 【請求項3】請求項2の共用サブルーチン入れ替え方法
    における、前記サブルーチンを使用するタスクの性質
    は、タスクが処理の終了後に自ら停止するか否かを元に
    判定し、該タスクが処理の終了後に自ら停止する場合に
    は、前記タスクに対する操作を決定する処理において該
    タスクが停止するまでサブルーチンの入れ替えを中断す
    ることを特徴とする共用サブルーチン入れ替え方法。
  4. 【請求項4】請求項3の共用サブルーチン入れ替え方法
    において、上記タスクの性質はタスクのコンパイル時に
    タスクのプログラムを元に判定しておくことを特徴とす
    る共用サブルーチン入れ替え方法。
JP1452495A 1995-01-31 1995-01-31 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法 Pending JPH08212064A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1452495A JPH08212064A (ja) 1995-01-31 1995-01-31 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1452495A JPH08212064A (ja) 1995-01-31 1995-01-31 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法

Publications (1)

Publication Number Publication Date
JPH08212064A true JPH08212064A (ja) 1996-08-20

Family

ID=11863510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1452495A Pending JPH08212064A (ja) 1995-01-31 1995-01-31 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法

Country Status (1)

Country Link
JP (1) JPH08212064A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374362B1 (en) 1998-01-14 2002-04-16 Nec Corporation Device and method for shared process control
US6546485B1 (en) 1998-03-13 2003-04-08 Hitachi, Ltd. Method for exchanging modules in operating system by using inheritance buffer presented in virtual space to store inherited information of old module and read by new module thereafter
JP2005165902A (ja) * 2003-12-05 2005-06-23 Toyota Motor Corp タスク管理システム
US8589930B2 (en) 2002-03-22 2013-11-19 Toyota Jidosha Kabushiki Kaisha Determining whether to execute a new task by deleting task objects of existing tasks
JP2015527676A (ja) * 2012-09-12 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パッチングのための方法および装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374362B1 (en) 1998-01-14 2002-04-16 Nec Corporation Device and method for shared process control
US6546485B1 (en) 1998-03-13 2003-04-08 Hitachi, Ltd. Method for exchanging modules in operating system by using inheritance buffer presented in virtual space to store inherited information of old module and read by new module thereafter
US8589930B2 (en) 2002-03-22 2013-11-19 Toyota Jidosha Kabushiki Kaisha Determining whether to execute a new task by deleting task objects of existing tasks
JP2005165902A (ja) * 2003-12-05 2005-06-23 Toyota Motor Corp タスク管理システム
US8151274B2 (en) 2003-12-05 2012-04-03 Toyota Jidosha Kabushiki Kaisha Task management system
JP2015527676A (ja) * 2012-09-12 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パッチングのための方法および装置
US10241813B2 (en) 2012-09-12 2019-03-26 International Business Machines Corporation Method and apparatus for patching

Similar Documents

Publication Publication Date Title
US6505257B2 (en) Multi-processor system, disk controller using the same and nondisruptive maintenance method thereof
US5717902A (en) Method and system for selectively applying an appropriate object ownership model
US4104718A (en) System for protecting shared files in a multiprogrammed computer
US7073176B1 (en) Deadlock detection based on information stored in distributed objects that participate in a distributed lock management system
US5526523A (en) Interface between operating system and operating system extension
JPH10301834A (ja) 共用メモリの管理方法
JPS60147855A (ja) 記憶管理装置
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JPH08212064A (ja) 共用サブルーチンの入れ替えシステム及び共用サブルーチン入れ替え方法
US6842900B2 (en) Information processing apparatus executing processing corresponding to new thread by reusing arrangement for previous thread
JPH01126738A (ja) 多重ジョブの実行におけるデータセット競合制御方式
US6345312B1 (en) Selectively dummying a data pipe transparent to a writer application
JPH09185540A (ja) マルチプロセスシステム
JP3998604B2 (ja) コンピュータ装置、エージェントの実行継続方法、アクセス制限保証方法、および、プログラム
JPS5947341B2 (ja) 索引順編成フアイルの動的排他制御方式
JP3381652B2 (ja) ロック制御方式
JPH01303537A (ja) 共有資源の排他制御方法
JPH07175671A (ja) プロセス管理方式
JPH0546415A (ja) 排他管理制御方式
JPH06161872A (ja) タスク間排他制御方法
JPH07114514A (ja) 計算機間のデータ引き継ぎ方法
JPH11161506A (ja) 情報処理装置のディスパッチ方法、情報処理装置及びその記録媒体
JPH08314792A (ja) コンピュータ・システムにおける入出力システム
JPH0652028A (ja) ファイル管理装置