JPH08339355A - 分散形システムでの処理タスク実行呼び出し方法及び装置 - Google Patents

分散形システムでの処理タスク実行呼び出し方法及び装置

Info

Publication number
JPH08339355A
JPH08339355A JP8094250A JP9425096A JPH08339355A JP H08339355 A JPH08339355 A JP H08339355A JP 8094250 A JP8094250 A JP 8094250A JP 9425096 A JP9425096 A JP 9425096A JP H08339355 A JPH08339355 A JP H08339355A
Authority
JP
Japan
Prior art keywords
file
namespace
channel
processor
pathname
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
JP8094250A
Other languages
English (en)
Inventor
Philip Steven Winterbottom
スティーヴン ウィンターボトム フィリップ
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.)
A T and T I P M CORP
AT&T Corp
Original Assignee
A T and T I P M CORP
AT&T Corp
AT&T IPM Corp
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 A T and T I P M CORP, AT&T Corp, AT&T IPM Corp filed Critical A T and T I P M CORP
Publication of JPH08339355A publication Critical patent/JPH08339355A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/463Naming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

(57)【要約】 【課題】 分散形システムでの処理タスク実行呼び出し
方法及び装置の改善。 【解決手段】 散形計算システム100内の第1のプロ
セッサ105が行う、遠隔のプロセッサ120上での処
理タスク(タスク)の実行を呼び出すための方法におい
て、タスクが第1のプロセッサに連関する第1のネーム
空間において動作し第1のネーム空間が複数のネーム空
間修正コマンドからなり、この方法が、第1のプロセッ
サと遠隔のプロセッサとの間に通信リンク150を設立
するステップと、第1のネーム空間を形成する、少なく
とも1個の動的ネーム空間修正コマンドからなる複数の
ネーム空間修正コマンド、を特定するステップと、これ
ら複数のネーム空間修正コマンドに基づいて修正された
ネーム空間上で遠隔のプロセッサによってタスクを実行
するために、これら複数のネーム空間修正コマンドを遠
隔のプロセッサへ送信するステップとからなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散形計算システ
ムに関し、詳しくは、分散形計算システムにおけるネー
ム(名前)空間情報の格納及び取り出しに関する。
【0002】
【従来の技術】計算システムにおけるリソースと計算タ
スクとは複数のネットワークノード間にますます拡散し
つつありこれによって分散形計算システムが形成される
ようになって来ている。分散形計算システムがますます
人気を得ている大きな理由は、同システムによってコス
ト効率及び可用度が増大するためである。集中形リソー
スが分散形システム内の複数のユーザによって共用され
る場合、リソースのコストが、より大きなユーザ基盤に
わたって分散される。
【0003】加えて、共用リソースの集中によって、こ
れらリソースの管理及び保守がより効率的になり、又集
中バックアップ機構が利用可能になることから潜在的に
信頼性が増大する。更に、大抵の分散形計算環境によっ
て得られる冗長性から、故障が検出された場合に代替の
デバイス上でプロセス処理を続行できるため、故障に対
する回復能力が改善される。
【0004】分散形計算システム(又は簡単に、分散形
システム)は処理時間においても同様の改善が得られ
る。例えば或る特定の処理タスクを、分散形システムに
おいてはいくつもの小さなタスクに分割して複数の分散
形プロセッサによって同時に実行することが可能とな
る。加えて、個々の処理タスクの処理時間も、タスクを
より強力な集中プロセッサへ移出(エクスポート)する
ことによって、しばしば改善される。
【0005】しかし、分散形計算システムを成功させる
には、ユーザが種々の且つ分散したリソースに一律すな
わち同一の仕方でアクセスできることが必要である。し
たがって、与えられたリソースの物理的な場所及びその
プロトコルの特異な詳細は、ユーザには透過的(すなわ
ち、ユーザが知らなくてよい状態)でなければならな
い。
【0006】AT&Tベル研究所によって開発された
「プラン9」形分散処理システムのような、いくつもの
分散計算環境において、システム内の各リソースは、そ
のリソースによって供給されるファイル類似の対象物
(オブジェクト)の樹木からなる階層形ファイルシステ
ムとして実現される。したがって、分散形システム内の
異なる個々のリソースは、もしそれらアクセスされるリ
ソースが従来の意味でのファイルではない場合でも、同
一のファイル志向方式でアクセスすることが可能であ
る。
【0007】一般に、このような分散形計算環境におけ
るオペレーティングシステムにより、各「ファイル」が
それに連関する英数字のネーム(名前)を持つことが可
能となる。この英数字ネームはネーム空間内のファイル
にアクセスするために利用される。加えて、ファイル間
の関係を指定し、これによってファイルをディレクトリ
とファイルとの階層形樹木に構成することが可能とな
る。ファイルは一般に、与えられたファイルへの階層形
構造を通してのパスネーム(経路名)によってネーム空
間において特定される。
【0008】分散形計算環境におけるネーム空間の全般
的な説明については、文献(RogerM. Needham, "Name
s," (Distributed Systems 315-27)(Sape Mullender e
d., 2ded. 1993))を参照されたい。
【0009】分散形システム内の各リソースをファイル
セットとして表現することにより、望む透過性が得ら
れ、各ユーザ又はプロセスは、利用可能なリソースセッ
トについて自分にに独自の構成図を組み立てることが可
能となる。したがって、各ユーザ又はプロセスは、1個
以上の選択されたリソースによって得られるファイル樹
木からなる個々にそのユーザまたはプロセスに合わせた
(カスタム化した)ネーム空間を持つことができる。
【0010】その後、ユーザ又はプロセスがカスタム化
された階層形ファイル樹木を通してパスネームによって
特定されるファイル上でのオペレーション(作業)を実
現する場合に、パスネームが、作業対象とすべき特定
の、ファイル類似の対象物に変換される。
【0011】ローカルオペレーティングシステムの核
は、ローカルユーザ又はプロセスのカスタム化されたネ
ーム空間内のネームと物理的対象物との間の関係を追跡
できるが、一方、ユーザ又はプロセスが処理タスクを、
分散システム内の別の、多分より強力な遠隔のプロセッ
サにエクスポートする場合に、ネーム空間変換問題が生
じる。
【0012】もし遠隔のプロセッサが、エクスポートす
る側のユーザ又はプロセスによって組み立てられたのと
正に同一のネーム空間においてその特定の処理タスクを
行わない場合には、パスネームを、オペレーション対象
とすべき適切なファイル類似の対象物に正しく変換され
ないことになる。
【0013】
【発明が解決しようとする課題】上記の説明から明らか
なように、第1のプロセッサが遠隔のプロセッサによる
処理タスクの実行を呼び出すことができ、且つこの遠隔
のプロセッサが、この第1のプロセッサから受信された
ネーム空間表現に基づいて修正変更(又は簡単に、修
正)されたネーム空間上でこの処理タスクを実行するよ
うな、分散形計算環境が求められている。
【0014】なお又、分散形計算システムのノード内に
ネーム空間情報を格納するための装置であって、格納さ
れたネーム空間情報が、ネーム空間の指示された部分に
加えられたリソースによって得られる階層形ファイルシ
ステムの表示と、接続された各リソースのファイルシス
テム階層の再形成を可能にするパス情報とからなるよう
な、ネーム空間情報を格納するための装置が求められて
いる。
【0015】更に又、分散形計算システム内で、ファイ
ルを表現する与えられたチャネルに連関するパスネーム
を特定するための方法が求められている。
【0016】
【課題を解決するための手段】概して、本発明の一態様
によれば、複数のコンピュータ及びネットワークにかけ
て分散された計算環境であって或る場所に所在するユー
ザが別の場所に所在するリソースにアクセスできるよう
な分散された計算環境が提供される。この分散された計
算環境により、第1のプロセッサが、中央処理装置のよ
うな遠隔のプロセッサによる処理タスクの実行を呼び出
すことが可能となる。
【0017】本発明の一態様によれば、この第1のプロ
セッサがその現ネーム空間の表現を遠隔のプロセッサへ
送信する。遠隔のプロセッサが、第1のプロセッサから
受信されたネーム空間表現に基づいて変更されたネーム
空間上で処理タスクを実行する。
【0018】本発明の別の態様によれば、分散形計算シ
ステム内の第1のプロセッサによって行われる、遠隔の
プロセッサ上での処理タスクの実行を呼び出すための方
法であって、第1のプロセッサが、複数のネーム空間変
更コマンドによって形成される、連関する第1のネーム
空間を有するような、処理タスク実行呼び出し方法が提
供される。本処理タスク実行呼び出し方法は、第1のプ
ロセッサと遠隔のプロセッサとの間に通信リンクを設立
するステップからなる。
【0019】本方法は更に、第1のネーム空間を形成す
る複数のネーム空間変更コマンドを特定するステップで
あって、特定された複数のネーム空間変更コマンドが少
なくとも1個の動的ネーム空間変更コマンドからなるよ
うにした特定するステップと、複数のネーム空間変更コ
マンドに基づいて変更されたネーム空間上で遠隔のプロ
セッサによって処理タスクを実行するために、複数のネ
ーム空間変更コマンドを遠隔のプロセッサへ送信するス
テップと、からなる。
【0020】本発明のなお別の態様によれば、分散形計
算システム内の遠隔のプロセッサによって行われる、第
1のプロセッサから受信され呼び出された処理タスクを
実行するための方法であって、処理タスクが、第1のプ
ロセッサに連関する第1のネーム空間において動作し、
第1のネーム空間が、複数のネーム空間変更コマンドに
よって形成され、遠隔のプロセッサが第2のネーム空間
を有する、ようにした処理タスク実行方法が提供され
る。
【0021】本処理タスク実行方法は、第1のプロセッ
サからの接続要求を処理するステップと、呼び出された
処理タスクを実行するためのプロセスを遠隔のプロセッ
サ上に割り当てるステップと、第1のネーム空間を形成
する複数のネーム空間変更コマンドを第1のプロセッサ
から受信するステップであって、受信された複数のネー
ム空間変更コマンドが少なくとも1個の動的ネーム空間
変更コマンドからなる、ようにした受信するステップと
からなる。
【0022】本処理タスク実行方法は更に、第1のプロ
セッサへの通信リンクを設立するステップと、第2のネ
ーム空間内の予め定められた場所に第1のプロセッサへ
の通信リンクをマウントするステップと、第2のネーム
空間を変更するために、受信された複数のネーム空間変
更コマンドを実行するステップと、呼び出された処理タ
スクを、変更された第2のネーム空間上で実行するステ
ップと、からなる。
【0023】本発明の更に別の態様によれば、複数のリ
ソースからなる分散形計算システムのノード内にネーム
空間情報を格納するための装置であって、リソースの各
々が階層形ファイルシステムとして表現され、ネーム空
間が、ネーム空間に1個以上のネーム空間変更コマンド
によって加えられた少なくとも1個のリソース階層形フ
ァイルシステムからなり、ネーム空間がプロセス毎に変
更可能であるようにした、ネーム空間情報格納装置が提
供される。
【0024】本ネーム空間情報格納装置は、ネーム空間
変更コマンドによってネーム空間内の指示された部分に
加えられたリソース階層形ファイルシステムの各々につ
いての表示を格納するためのマウントテ−ブルと、ネー
ム空間に加えられたリソース階層形ファイルシステムの
各々に連関するサーバ樹木パステ−ブルとからなる。サ
ーバ樹木パステ−ブルは、連関するリソース階層形ファ
イルシステム内のファイルの各々についてのパス情報を
供給し、パス情報が、リソース階層形ファイルシステム
の階層の再形成を可能にする。
【0025】ファイルの各々について格納されたパス情
報が、連関するファイルのネームと、ネーム空間階層内
の連関するファイルの階層内の親のファイルの表示とか
らなるようにした、サーバ樹木パステ−ブルとからな
る。
【0026】本発明のなお別の態様によれば、分散形計
算システムにおける与えられたチャネルに連関するパス
ネームを特定するための方法が提供される。同方法は、
分散形計算システムが、複数の分散形リソースを有し、
複数の分散形リソースの各々が、1個以上のファイルか
らなる階層形ファイルシステムとして表され、1個以上
の階層形ファイルシステムの集合がネーム空間を形成
し、階層形ファイルシステムの各々が、ルートディレク
トリを有する。
【0027】又、チャネルの各々が、ネーム空間内の与
えられたファイルを表し、ファイルの各々が、英数字ラ
ベルからなるファイルネーム(ファイル名)を有し、パ
スネームが、階層形ファイルシステムを通るルートディ
レクトリからファイルへのパスを指定することによって
ファイルを特定する。
【0028】同方法は、チャネルの各々に1個のパスデ
ータ構造を連関させるステップであって、パスデータ構
造が、連関するファイルのファイルネームとネーム空間
階層内の親のファイルに連関するパスデータ構造を指す
ポインタとを格納するようにした、連関させるステップ
と、パスネームを特定されるべきチャネルの表示を受信
するステップと、記表示されたチャネルに連関するパス
データ構造を特定するステップとからなる。
【0029】同方法は又、特定されたパスデータ構造か
ら、ファイルネームと親のファイルに連関するパスデー
タ構造を指すポインタとを「検索して取り出す」(又は
簡単に、「取り出す」と記載)ステップと、親のファイ
ルに連関するパスデータ構造を指す取り出されたポイン
タに従うとともに、階層形ファイルシステムのルートデ
ィレクトリに到達するまでの、本ステップの前のステッ
プを反復するステップであって、パスデータ構造から取
り出されたファイルネームの各々が、表示されたチャネ
ルに連関する生成されたパスネームの前部に付けられる
ようにした、ポインタに従うとともに反復するステップ
とからなる。
【0030】本発明並びにその更なる機能及び利点につ
いて、より完全な理解を得て頂くために、以下、図面を
参照して詳細に説明する。
【0031】
【発明の実施の形態】本発明の機能を実現するのに適し
た分散形計算環境100の例示構成を示す。下で更に述
べるように、分散形計算環境100は望ましくは、複数
のコンピュータ及びネットワークにわたって分散し、1
つの場所に所在するユーザの、別の場所に所在するリソ
ースへのアクセスを、例えばユーザの端末と望むリソー
スとの間に通信リンクを設立することによって可能とす
るものである。
【0032】この分散形計算環境100により、処理タ
スクの遠隔のプロセッサへのエクスポートが可能とな
る。本発明の一態様によれば、ユーザまたはプロセス
が、処理タスクを遠隔のプロセッサへエクスポートすべ
きであると表示した場合にエクスポートする側のユーザ
またはプロセスに連関するネットワーク空間の現在の状
態が点検評価される。
【0033】その後、ネットワーク空間の現在の状態、
いい替えれば、ネーム空間を形成するためにユーザまた
はプロセスによって実行されたネーム空間変更コマンド
のシーケンスが、遠隔のプロセッサへ送信される。この
ようにして、遠隔のプロセッサがエクスポートする側の
ユーザまたはプロセスのネーム空間を正確に再形成する
ことができ、これによってファイルネームを、運用すべ
き適切なファイル又はファイル類似の対象物に信頼性を
持たせて変換することができる。
【0034】本発明を以下8項目に分けて説明する。1
番目に、まず[システムアーキテクチャ]の項で、図1
及び図2に関連して分散形計算環境(すなわちネットワ
ーク環境)全体及び分散形ネットワーク環境100の例
示ノードについて述べる。
【0035】2番目に[ネーム空間におけるリソースの
概念的表現]の項で、分散形計算システムにおけるユー
ザ又はプロセスに連関するネットワーク空間について述
べる。この項においては、1個以上の遠隔のリソースの
階層形ファイル樹木を特定のユーザ又はプロセスのカス
タム化されたネーム空間を、望む場所へ連関させる仕方
について説明する。
【0036】3番目に、[オペレーティングシステム
核]の項で、本発明の機能を組み込んだ推奨オペレーテ
ィングシステムについて述べる。この項においては、オ
ペレーティングシステム核によって分散形計算環境内の
各リソースに与えられるインタフェ−スについて説明す
る。
【0037】4番目に、[分散形システムにおけるリソ
ースへのアクセス]の項で、ネーム空間においてアクセ
スされる個々のファイル類似の対象物の表現についての
推奨実現例について述べる。望ましくはアクセスされる
各ファイルを表すような、チャネルデータ構造の推奨実
施例について図7に関連して説明する。加えて、ファイ
ルアクセス情報を格納するために核によって利用される
データ構造についても図6に関連して説明する。
【0038】5番目に、[非核ファイルシステムとの通
信]の項で、核によって供給されないリソースと通信す
るために核によって設立されるデータ構造及び通信リン
クについて述べる。この項においては、望む非核ファイ
ルシステムへのパイプ又はネットワーク通信のような通
信リンクの設立、非核ファイルシステムについてのアク
セス及びパス情報を格納するための適切なデータ構造の
形成、及びローカルユーザ又はプロセスのネーム空間へ
の、非核ファイルシステムのファイル樹木ルートディレ
クトリのマウントの仕方、について説明する。
【0039】加えて、ローカルネーム空間の現在の状態
を形成するネーム空間変更コマンドのシリーズを格納す
るためのマウントテ−ブル800の推奨実現例につい
て、図8(B)及び図9に関連して説明する。
【0040】6番目に、[ネットワークの表現]の項
で、ネットワーク形成及び維持についての推奨実現例に
ついて述べる。この項においては、記号的なマシンネー
ムと、連関するネットワーク宛先アドレスとの間の翻訳
について説明する。7番目に、[ネーム空間情報データ
構造]の項で、本発明の機能を組み込んだいくつかの推
奨パスデータ構造について述べる。
【0041】この項においては、特定のチャネルに連関
するパスネームをどのようにして定めることができる
か、及び接続された非核ファイルシステムの各々のファ
イル樹木内のアクセスされたファイルのネーム空間をど
のようにして再形成するか、について説明する。
【0042】最後に、[ネーム空間プロセス]の項で、
本発明の機能を組み込んだプロセスについて述べる。こ
の項においては、処理タスクを、ローカルネーム空間の
現在の状態の正確な表現と共に、遠隔のプロセッサへエ
クスポートするのに利用されるプロセス実行エクスポー
タ1600について、図18に関連して説明する。
【0043】加えてローカルノードによってエクスポー
トされる処理タスクをインポートするために、図19に
関連して述べるプロセス実行インポータ1650が、選
択された遠隔のプロセッサによって実行される。プロセ
ス実行インポータ1650がローカルノードのネーム空
間を再形成し、これにより、ファイルネームが、運用す
べき適切なファイル又はファイル類似の対象物に確実に
正確に変換される。
【0044】図1に示す分散形計算環境100は望まし
くは、AT&Tベル研究所(600 Mountain Avenue, Mur
ray Hill, New Jersey 07974-0636) によって開発さ
れ、ネーム空間情報を格納しそして取り出すためのメカ
ニズムを得るために変更を加えた「プラン9」形の分散
形処理システムとして実施される。
【0045】「プラン9」形の分散形処理システムの詳
細説明については、米国特許出願(出願番号08/23
7,967)(1994年5月3日出願)(現在放棄さ
れている米国特許出願(出願番号07/702,65
1)(1991年5月17日出願)の継続出願)及び米
国特許出願(出願番号08/247,626)(199
4年5月20日出願)(現在放棄されている米国特許出
願(出願番号07/999,755)(1992年12
月31日出願)の継続出願)を参照されたい。これら2
件の米国特許出願をここに本出願の参照文献とする。
【0046】又、「プラン9」形の分散形処理システム
の追加説明が、文献(David Presotto et al., "Plan
9, A Distributed System,"Proc. of the Spring 1991
EurOpen Conference, pp. 43-50 (Tromso, Norway 199
1) 及び文献("Plan 9 from Bell Labs, Programmers
Manual") にある。これら2件の文献をここに本出願の
参考文献とする。これらの文献は、2個のディレクトリ
((pub/plan9doc)及び(pub/plan9dist)) 内のイン
ターネットアドレス(plan9.att.com) からファイルト
ランスファプロトコル(ftp) によって入手可能であ
る。
【0047】[システムアーキテクチャ]概して、分散
形計算環境100は、端末105〜110のような複数
のユーザ端末と、1個以上の中央処理装置(CPU)サ
ーバ120〜121と、1個以上のファイルサーバ13
0〜131とからなる。ユーザ端末105〜110は、
例えば図2(A)及び図(B)に関連して下で更に述べ
る、ミニコンピュータ、ワークステーション、又はパー
ソナルコンピュータのような汎用計算システム200と
して実施される。
【0048】下で更に述べるように、ユーザ端末105
〜110は望ましくは、分散形計算環境100の各ユー
ザに、ウインドウシステム実行用のビットマップ画面及
びマウスを有する専用コンピュータを提供する。このウ
インドウシステムは、分散形計算環境100内のリソー
スへの多重化インタフェ−スを提供する。
【0049】CPUサーバ120〜121は望ましく
は、計算パワーを既知の仕方で大形マイクロプロセッサ
に集中させ、例えばシリコングラフィックス社から商業
的に入手可能なパワーシリーズのマシンとして実施され
る。したがって、コンパイレーションのような集中計算
タスクについて、ユーザは、図18に関連して下で更に
述べる、次のコマンド処理を符号120又は121のよ
うなCPUサーバに転送するCPUコマンドを実行する
ことが可能となる。
【0050】CPUコマンドの実行に続いてユーザ端末
105〜110のアクティブウインドウにコマンドイン
タープリタからのプロンプトが現れはするがコマンドイ
ンタープリタの実行動作(ラン)はCPUサーバ120
又は121上で行われる。
【0051】下で述べるように、本発明により、遠隔の
CPUサーバ120又は121によって行われる処理タ
スクを、ユーザ端末で実行中のユーザ又はプロセスのネ
ーム空間と同一のネーム空間内で実行することが可能と
なる。ネーム空間については、下の[ネーム空間におけ
るリソースの概念的表現]の項で説明する。
【0052】ファイルサーバ130〜131は、ユーザ
端末105〜110によって又CPUサーバ120〜1
21によって既知の仕方で利用されるファイルの格納保
管のための保管場所を提供する。図3(A)及び図3
(B)に関連して下で更に述べるように、ファイルサー
バ130〜131は、これらのファイルサーバ130〜
131によって与えられるファイルの樹木からなる階層
形ファイルシステムを提供する。
【0053】ネットワークの組織と管理は、図1に示す
分散形計算環境のような、分散形システムのどれにとっ
ても重要な因子を構成する。このことは、CPUサーバ
120〜121及びファイルサーバ130〜131のよ
うな、分散形計算環境100の重要構成要素が集中した
場所に位置する場合に特にそうである。
【0054】一推奨実施例において、CPUサーバ12
0〜121とファイルサーバ130〜131とが、高帯
域幅2点間光ファイバリンクのような高速ネットワーク
接続によって相互接続される。しかしユーザ端末105
〜110は、イーサネット又はデータキット接続のよう
な、上記の高速ネットワークよりも低速の通信ネットワ
ーク150との接続によって分散形計算環境100内の
他のリソースに連結される。ネットワーク接続の形成及
び管理についての適切な一例を、図10(A)及び図1
0(B)に関連して下で更に述べる。
【0055】ユーザ端末105〜110として用いるの
に適した汎用計算システム200の一実施例を、図2
(A)に更に詳細に示す。汎用計算システム200は例
えば、ミニコンピュータ、ワークステーション、又はパ
ーソナルコンピュータである。汎用計算システム200
は望ましくは、表示モニタ204、処理装置206、ラ
ンダムアクセスメモリ(RAM)のような1個以上のメ
モリ装置207、バス224、並びにマウス208及び
キーボード205のような1個以上のユーザインタフェ
−スからなる。
【0056】上に述べたように、表示モニタ204は望
ましくは、ウインドウシステムをサポートする。処理装
置206及びメモリ装置207については図2(B)に
関連して下で更に述べる。
【0057】汎用計算システム200は又、外部ディス
クドライブ202及びハードディスクドライブ203か
らなる。外部ディスクドライブ202は、フロッピーデ
ィスク、テープ、又はコンパクトディスクのような1個
以上の外部データ記憶装置を受け入れて読み出し及び書
き込みを行うように作動する。一方、ハードディスクド
ライブ203は、高速アクセスデータ格納及び取り出し
機能を既知の仕方で提供するように作動する。
【0058】加えて、汎用計算システム200は望まし
くは、遠隔の装置とのシリアル又はパラレルデータ通信
のための1個以上のデータ通信ポ−トを有する。例え
ば、汎用計算システム200は更に、フォアシステムズ
社(Fore Systems, Inc. of Pittsburgh, Pennsylvani
a)から商業的に入手可能なATMホストアダプタカー
ドのような、ネットワークインタフェ−ス209に接続
される。
【0059】図2(B)は、図2(A)の汎用計算シス
テム200に関連して利用されるマイクロプロセッサ処
理システムの概略ブロック図を示す。マイクロプロセッ
サ処理システムは、RAMのようなメモリ装置207に
バス270を介して結合された処理装置206とネット
ワークインタフェ−ス209とからなる。処理装置20
6は、単一のプロセッサ又は並行して作動するいくつか
のプロセッサとして実現される。
【0060】メモリ装置207は、処理装置206が取
り出し、解釈し、実行するように作動する対象となる1
個以上の命令を記憶する。加えて、メモリ装置207は
図4(A)、図4(B)、及び図5に関連して下で更に
述べるオペレーティングシステムに連関するプログラム
コード275を記憶する。
【0061】処理装置206は、制御装置250と、算
術論理装置255と、例えばキャッシュ又は複数のレジ
スタのような、ローカルメモリ装置260とからなる。
制御装置250は、メモリ装置207から命令を取り出
すように作動する。算術論理装置255は、命令を遂行
するために必要な複数の演算を行うように作動する。ロ
ーカルメモリ装置260は、仮の結果及び制御情報を記
憶するのに用いられる高速記憶装置を提供するように作
動する。
【0062】[ネーム空間におけるリソースの概念的表
現]前に述べたように、分散形計算環境100により、
ユーザが複数のローカル及び遠隔のリソースにアクセス
することが可能になる。望ましくは、システム内の各リ
ソースは、リソースによって供給されるファイル類似の
対象物の樹木からなる階層形「ファイル」システムとし
て実現される。このようにして、ユーザは、アクセスさ
れるリソースが従来の意味でのファイルではない場合で
も、同一の、ファイル志向の仕方で各リソースにアクセ
スする。
【0063】以下の説明において、用語「ファイル」に
は従来の意味でのファイルと他のファイル類似の対象物
とを含む。なお、ユーザ又はプロセスのネーム空間内の
各ファイルは、図6及び図7に関連して下で述べるチャ
ネルデータ構造として表される。
【0064】すなわち、階層形ファイルシステムが、フ
ァイルサーバ130〜131によって与えられるような
従来形ファイルシステム及び物理的デバイス及びプロセ
スのような他の非従来形リソースを表すために利用され
る。例えば、RS232ラインが、「データ」ファイル
と「制御」ファイルとを含むディレクトリからなる階層
形ファイルシステムとして表される。データが「デー
タ」ファイルに書き込まれると、そのデータは連関する
RS232ライン上で伝送される。
【0065】同様に、RS232ライン上で受信された
データは、「データ」ファイルから読み出しを行うこと
によって取得される。「制御」ファイルには、RS23
2ラインに連関する制御パラメータが含まれ、これを修
正することによって、ビットレートのような、物理的デ
バイスのパラメータが変更される。
【0066】オペレーティングシステム275により、
ファイルシステム内の各ファイルがそれに連関する英数
字ネーム又はラベルを持つことが可能になる。この英数
字ネーム又はラベルをを後にユーザが利用してネーム空
間内でのそのファイルの所在場所が求められる。加え
て、ユーザはファイル間の関係を指定して、これにより
ファイルをディレクトリ及びファイルの階層形樹木の形
に組織化することができる。なお、ディレクトリは実際
には、他のファイルの場所についての情報を含むファイ
ルである。
【0067】概念的には、ディレクトリ及びファイルの
階層形樹木より、ネームとエンテティ(主体)との間の
関係を維持するためのメカニズムが得られ、これによ
り、ユーザがパスネームによって対象物の場所を求める
ことが可能になる。ファイルのパスネームは、階層構造
を通してのファイルへのパスを指定することによってフ
ァイルを特定する英数字文字列として定義される。
【0068】一実施例において、パスネームは、ルート
ディレクトリを表す斜線(スラッシュ)文字”/”と、
ルートディレクトリと望むファイルとの間の全てのディ
レクトリのネーム(斜線文字で互いに分けられている)
とからなる。
【0069】ユーザ又はプロセスは、ユーザ又はプロセ
スについての連関するカスタム化されたネーム空間を形
成するために1個以上の望むリソースを選択することに
より分散形計算環境100内で利用可能なリソースセッ
トについて個々に独自の構成図を組み立てる。例えば、
図3(A)に示すような、ユーザ端末305上で作業中
のユーザが、例えば個人的ファイルが常駐する或るファ
イルサーバと、特定のグループプロジェクトについての
ソフトウエアが書き込まれる部門ファイルサーバとに接
続されることを希望し、そのような独自の構成図を組み
立てる場合が考えられる。
【0070】オペレーティングシステム275は一般
に、ユーザ端末305のような端末に、端末がブートア
ップされる都度、最小デフォルトネーム空間320を供
給する。デフォルトネーム空間320は例えば、入出力
サービス、ユーザ端末305上でプロセッサを走らせる
ためのバイナリコード、及びプロセスサービスからな
る。例示の「プラン9」形分散処理システム内のデフォ
ルト又は「スタブ」ネーム空間についての更に詳細な説
明は、例えば上に参照文献とした米国特許出願(出願番
号08/237,967)(1994年5月3日出願)
を参照されたい。
【0071】しかし、本明細書の説明においては、例示
として、図3(A)に示すユーザ端末305のデフォル
トネーム空間320は、2個のファイル、X及びYを含
む1個のルートディレクトリ(斜線文字「/」で表
す))だけからなるものとして述べる。
【0072】ファイル、X及びYは、図5及び図8
(A)に関連して下で更に述べるように、他のリソース
によって供給されるファイルシステムがマウントされる
場所であるマウントポイントとして機能する。図3
(A)に示すように、ファイルサーバ310はネーム空
間325を供給し、ファイルサーバ315はネーム空間
330を供給する。
【0073】ユーザ端末305は、ネーム空間320内
のファイルXを、ファイルサーバ310によって供給さ
れるネーム空間325のルートディレクトリ「/」に等
しくすることによって又ネーム空間320内のファイル
Yを、ファイルサーバ315によって供給されるネーム
空間330のルートディレクトリ「/」に等しくするこ
とによって、デフォルトネーム空間320を修正して、
図3(B)に示す修正された修正ネーム空間320’を
形成することができる。
【0074】各ファイルサーバ310及び315をそれ
ぞれユーザのローカルのネーム空間320’に結合させ
るには、ネットワーク340を通して適切な接続を設立
する必要がある。ネットワーク接続を設立するため及び
特定の遠隔のサービスのネーム空間をユーザ端末305
に連関するネーム空間320内の望ましい場所に結合さ
せるためのメカニズムを、図8(A)に関連して下に述
べる。
【0075】なお、オペレーティングシステム275に
よって各ユーザに供給されるデフォルトネーム空間に加
えて、個々のユーザは一般に、ネーム空間「プロフィ
ル」に書き込みを行うことによってそのユーザのネーム
空間をカスタム化することができる。ユーザによってカ
スタム化された「プロフィル」は、デフォルトネーム空
間内のそのユーザの個人的ディレクトリ内に格納される
ファイルで、ユーザが自動的に接続されるべきサービス
のリソースのリストを包含する。
【0076】例えば、ユーザの「プロフィル」は、ユー
ザによって利用されるホームファイルサーバを表示し、
ホームファイルサーバのルートがユーザのローカルのネ
ーム空間「/」に接続されるべきことを表示する。加え
て、ユーザの「プロフィル」は、デフォルトネーム空間
に見出されるディレクトリ「/proc」にプロセスフ
ァイルシステムが接続されるべきことも表示する。
【0077】したがって、分散形計算環境100にログ
インすると、個々のユーザは、ユーザのカスタム化され
た「プロフィル」によって修正されたデフォルトネーム
空間(以下包括的に、ユーザの予め定められたネーム空
間、と称する)を自動的に与えられる。ユーザの予め定
められたネーム空間は、デフォルトネーム空間とそのユ
ーザのカスタム化されたネーム空間とに連関する一連の
予め定められたネーム空間修正コマンドを実行すること
によって形成される。
【0078】加えて、操作中にユーザは、ユーザの予め
定められたネーム空間を更に修正するように機能する動
的ネーム空間修正コマンドを実行する。なお、動的ネー
ム空間修正コマンドをここに、ユーザ又はプロセスによ
って実行されるネーム空間修正コマンドであって、ユー
ザの予め定められたネーム空間に連関する予め定められ
たネーム空間修正コマンドのリストに含まれていないネ
ーム空間修正コマンドを含むものと定義する。
【0079】すなわち、動的ネーム空間修正コマンドに
は一般に、分散形計算環境100にログイン後にユーザ
又はプロセスによって実行されるネーム空間修正コマン
ドがどれも含まれる。
【0080】例えば、例示の「プラン9」形の分散形処
理システムにおいては、1対のネーム空間修正コマン
ド、すなわち「bind」(バインド)(連結)コマン
ド及び「mount」(マウント)(搭載)コマンドが
与えられる。
【0081】「連結」コマンドは、チャネルデータ構造
として表現される現在のローカルのネーム空間内のファ
イル又はディレクトリ(以下、「from」ファイルと
称する)を、別のチャネルデータ構造として表される現
在のネーム空間の別の部分(以下、「to」ファイルと
称する)に等しくする。いい替えれば、「to」チャネ
ルは「from」チャネルと連結された状態となる。
【0082】したがって、「連結」コマンドの実行後に
は、「from」パスネームによって指定されたファイ
ルへの参照は、「to」パスネームによって指定された
ファイルへの参照として解釈されることになる。
【0083】「マウント」コマンドは、チャネルとして
表される現在のローカルのネーム空間内に既に所在する
ネーム(以下、「from」ファイルと称する)を、別
のチャネルとして表される、遠隔のファイルサーバのよ
うな非核ファイルシステムのルート(以下、「to」フ
ァイルと称する)に等しくする。いい替えれば「マウン
ト」コマンドは、非核ファイルシステムのルートディレ
クトリを表すチャネルを、現在のネーム空間の、指示さ
れた部分を表すチャネル上にマウントする。
【0084】なお、ルートディレクトリにより、非核フ
ァイルシステムによって与えられる階層形ファイル樹木
全体へのアクセスが与えられる。このため、「マウン
ト」コマンドの実行後には、「from」パスネームに
よって指定された、「自分の上に他からのマウント処理
が行われた」(以下、「他からマウントを受けた」とも
表現する)ファイル及び階層内でのそれより下方のファ
イルへの参照は、非核ファイルシステムのファイル樹木
内のファイルへの参照として解釈されることになり、し
たがって、通信ストリームへ書き込まれた要求メッセ−
ジとなる。
【0085】図3(A)の例では、遠隔のファイルサー
バ310のルートディレクトリ「/」がユーザ端末30
5のデフォルトネーム空間320内のファイルX上にマ
ウントされている。
【0086】加えて、「連結」コマンド及び「マウン
ト」コマンドは望ましくは、「from」ファイルと
「to」ファイルとの間の関係についていくつかの異な
る種類の関係を指定することが可能である。
【0087】まず、ユーザ又はプロセスは望ましくは、
「to」ファイルによって参照されるもの全てによっ
て、「from」パスネームによって参照されるもの全
てが置換されるように指定することが可能である。加え
て、ユーザ又はプロセスは、「from」パスネーム及
び「to」パスネームが「from」ディレクトリファ
イルと「to」ディレクトリファイルとの両方にあるフ
ァイルからなる合同ディレクトリを形成するように指定
することが可能である。
【0088】本質的に、この合同ディレクトリはいくつ
ものマウントされたサービスを有するディレクトリであ
る。望ましくは、ユーザ又はプロセスは、この合同ディ
レクトリにおいて「from」ディレクトリを「to」
ディレクトリの前に探すか又は後に探すかを指定するこ
とができる。
【0089】すなわち、ユーザ又はプロセスに連関する
ネーム空間の現在の状態は、ユーザによってカスタム化
された「プロフィル」によって修正された、デフォルト
ネーム空間320に連関する予め定められたネーム空間
修正コマンドのリストによって、又ユーザ又はプロセス
によって実行された動的ネーム空間修正コマンドによっ
て定められる。
【0090】なお、ユーザの予め定められたネーム空間
を形成するデフォルトネーム空間及びユーザによってカ
スタム化された「プロフィル」は一般に、ユーザ又はプ
ロセスのネーム空間内にファイルとして格納される。
【0091】本発明の一態様により、次に実行される
「マウント」コマンド及び「連結」コマンドのような動
的ネーム空間修正コマンドのリストは、図8(B)及び
図9に関連して下で更に述べるような、各「マウント」
コマンド及び「連結」コマンドのエントリを含むマウン
トテ−ブル800内に格納される。
【0092】望ましくはマウントテ−ブル800によ
り、「マウント」コマンド及び「連結」コマンドのリス
トをこれらのコマンドの実行順にマウントテ−ブル80
0から取り出すことが可能となる。しかし、注記したい
のは、マウントテ−ブル800から取り出された動的ネ
ーム空間修正コマンドのリストが、バインド(連結)さ
れ又はマウント(搭載)されたその特定のチャネルデー
タ構造によって表されるが、より有益なファイルパスネ
ームでは表されないことである。
【0093】このため、下で述べる本発明の別の態様に
より、図12(A)〜図12(C)に関連して述べるよ
うな、各チャネルに対応するパスネームを定めることを
可能にするパス情報を格納する付加的データ構造が設け
られる。加えて、下で述べるように、格納されたパス情
報により、接続された非核ファイルシステムの各々につ
いての樹木内のアクセスされたファイルのネーム空間を
再形成することが可能になる。
【0094】[オペレーティングシステム核]推奨する
「プラン9」形の分散形処理システムのような分散形処
理システムにおいて、オペレーティングシステム275
が、図4(A)に示す核400として構成される。核4
00は一般に、分散形計算環境100内の核リソースへ
のインタフェ−スを提供する。
【0095】概念的には、核400は、プロセス管理ソ
フトウエアであるプロセスマネージャ410及びネーム
空間管理ソフトウエアであるネーム空間マネージャ42
0を有するものとして見ることができる。プロセスマネ
ージャ410は一般に、メモリ管理と、プロセススケジ
ューリングと、「フォーク」システムコールとの制御の
ためのプログラムコードからなる。プロセスマネージャ
410は周知であり、他で詳細にに述べられているの
で、ここでのプロセスマネージャの説明は、本発明の理
解に必要な程度にとどめることとする。
【0096】前に述べたように、核400は、リソース
が実際に核400によって実現されるか否かに拘らず、
分散形計算環境100内の各リソースへのインタフェ−
スを提供する。例えば、「プラン9」形の分散形処理シ
ステムにおいて、ネーム空間マネージャ420は、図4
(B)に関連して下で述べるような、分散形計算環境1
00内の各デバイスのインタフェ−スとして機能するデ
バイステ−ブル450(「devtab」)からなる。
【0097】ユーザまたはプロセスのネーム空間内のネ
ームを変換するために、ネーム空間マネージャ420
は、図13及び図14に関連して下で述べるパスネーム
からチャネルへの変換ソフトウエアである、「パスネー
ム/チャネル」コンバータ1200からなる。上で述べ
たように、ユーザは、特定のファイルを、ユーザのネー
ム空間内でパスネームを用いて作動させるように指定す
ることができる。「パスネーム/チャネル」コンバータ
1200がパスネームを、作動させるべきファイルを表
す特定のチャネルデータ構造へ翻訳変換する。
【0098】加えて、核400は望ましくは、ファイル
樹木の1つのレベルから別のレベルへ移動するために、
図15に関連して下に述べる「walk」(ウオーク)
(移動)機能1300を実現する。又、図17に関連し
て下に述べる「domount」(ドゥーマウント)機
能1500が望ましくは核400によって供給され、こ
の機能がチャネルを取って、その意味が、連結され又は
マウントされることによって改変されているかどうかを
判断し、もし改変されている場合には必要なチャネル置
換を行う。
【0099】遠隔のプロセッサへのプロセスのエクスポ
ート作業中に、図20に示すネーム空間読み出しサブル
ーチン1700が、望ましくは、マウントテ−ブル80
0にアクセスして、ローカルのネーム空間の現在の状態
を形成する「連結」コマンド及び「マウント」コマンド
の各々に連関する「from」ファイル及び「to」フ
ァイルからなるリストを生成する。
【0100】最後に、核400は望ましくは、ファイル
を供給するサーバのネーム空間において、与えられたチ
ャネルを対応するパスネームに翻訳変換するソフトウエ
アである、図24に関連して下で述べる「チャネル/パ
スネーム」コンバータ2000を供給する。
【0101】図4(B)に示すように、デバイステ−ブ
ル450は、望ましくは、特定のデバイスによって供給
されるファイル上で望むファイル作業(オペレーショ
ン)を行うのに利用されるデバイスに特定の手順コール
のアレイとして実現される。デバイステ−ブル450
は、特定のデバイスによって供給されるファイル上で行
うことのできる、ファイル開設、読み出し、及び書き込
みのような各作業についての手順コールを指すポインタ
からなる。すなわち、核に常駐する各デバイスは、各基
本動作についての手順を含むデバイスドライバによって
実現される。
【0102】図4(B)に示すように、デバイステ−ブ
ル450は、横列461〜464のような複数の横列か
らなり、これらの横列は各々、ディスク装置又はテレタ
イプ(tty)装置のような、核によって実現された特
定のデバイスに連関する。加えて、デバイステ−ブル4
50は、縦列452〜457のような複数の縦列からな
る。デバイステ−ブル450の縦列452内のエントリ
は、デバイステ−ブル450内の与えられた横列に連関
する特定のデバイスを表示する。
【0103】縦列453〜457のような残りの縦列は
各々、特定の手順コールに連関する。例えば横列461
に連関するディスク装置によって供給されるファイルを
開設するためには核400が、デバイステ−ブル450
のセル468に表示される手順コール「diskope
n」(ディスクオープン)を実行する必要がある。
【0104】なお、デバイステ−ブル450の横列46
4内のエントリは、図5にマウントデバイス470(又
はマウントドライバ)として示す特別な核デバイスに連
関する。マウントデバイス(又は核マウントデバイス)
470は、核400の一部分で、核400によって実現
されない分散形計算環境100内の非核ファイルシステ
ム480〜482のようなデバイスの全てにインタフェ
−スを提供する。なお、非核ファイルシステム480〜
482は、分散形計算環境100内の、核400と同じ
ノード上又は遠隔のノード上に常駐する。
【0105】非核ファイルシステム480〜482が核
400と同じノードに常駐している場合、プロセス間の
通信は望ましくは従来のパイプを用いて行われる。加え
て、この非核ファイルシステムが遠隔のノードに位置す
る場合、プロセス間の通信は1個以上のネットワーク制
御を用いて行われる。
【0106】図8に関連して下で更に述べるように、マ
ウントデバイスは、非核ファイルシステムへの、パイプ
又はネットワーク接続からなる通信リンク476〜47
8を表す。このリンクは、マウントポイント472〜4
74のような、複数の関連データ構造からなるマウント
ポイントに対するリンクである。
【0107】なお、マウントデバイス470は望ましく
は、ファイルシステム480〜482のような接続され
た非核ファイルシステムの各々に対して1個づつのマウ
ントポイント472〜474を設ける。したがって、与
えられた遠隔のファイルシステムにアクセスしようと望
むプロセスは、同じマウントポイント472〜474を
利用することとなる。そのため、マウントデバイス47
0は、連関するサービス機能と通信中の1個以上のプロ
セスに付いて受信した伝送内容をデマルチプレクス(分
離)処理できなければならない。
【0108】分散形計算環境100において、ファイル
処理作業(オペレーション)は、しばしば遠隔のファイ
ル上で行われる。概して、遠隔のファイル上で作業を行
いたい第1のプロセスは、そのファイルを提供する第2
のプロセスへメッセ−ジを送る。送信されたメッセ−ジ
は、第2のプロセスが、指示されたファイル上で特定の
タスクを行うことを要求する。要求されたタスクを第2
のプロセスが処理し終ると、第2のプロセスは、単なる
肯定応答(アクノリッジ)からなる結果を知らせる応答
を第1のプロセスに返す。
【0109】マウントデバイス470は望ましくは、第
1及び第2のプロセス間の仲介役として機能し、第1の
プロセスによって実行される手順コールをファイル処理
作業メッセ−ジに翻訳変換する。このファイル処理作業
メッセ−ジは、リンク476〜478のような設立され
た通信リンクを介して第2のプロセスへ送信される。通
信リンクを介して送信されるこのファイル処理作業メッ
セ−ジを、遠隔手順コール(RPC)と称することとす
る。これについては図8(A)に関連して下で説明す
る。
【0110】すなわち、もし或るプロセスが、ファイル
システム480から482のような非核ファイルシステ
ムによって提供されるファイル上で特定の処理作業を行
いたいと望む場合、このプロセスは、望む処理作業に対
応する手順コールを実行することになる。核が、このフ
ァイルが非核ファイルシステムによって提供されること
を認識した後、マウントデバイス470を利用してこの
手順コールを適切な遠隔手順コールに翻訳変換する。
【0111】遠隔手順コールメッセ−ジが遠隔ファイル
システムに、望むタスクの実行を要求する。その後、遠
隔のファイルシステムがマウントデバイス470に応答
を送る。すると、マウントデバイス470が、ファイル
処理作業の結果を要求側のプロセスに送る。このように
して、マウントデバイス470は、要求及び応答のメッ
セ−ジを手順インタフェ−スの陰に隠す。
【0112】[分散形システムにおけるリソースへのア
クセス]或る特定のファイルが或るプロセスによって開
設されると、核400が一般に、そのファイルにファイ
ル記述子「fd」又は数字ラベルを割り当てる。加え
て、核400は、図7に関連して下で述べる核データ構
造(以下、チャネルとも称する)を利用して、ネーム空
間内でプロセスがアクセスする各ファイルを表現する。
各400が、図6に示すファイル記述子アレイ500を
用いて、割り当てられたファイルにファイル記述子「f
d」をマッピングする。
【0113】ファイル記述子アレイ500の各エントリ
にはファイル記述子「fd」による索引(インデック
ス)が付けられ、ファイル記述子アレイ500の縦列5
04には、縦列502に表示されるファイル記述子に連
関する、チャネル520〜521のような特定のチャネ
ルを指すポインタを有する。
【0114】一推奨実施例において、各400は、アク
ティブなプロセスの各々についてファイル記述子アレイ
500を維持する。したがって、ファイル記述子アレイ
500が指すチャネル(チャネルデータ構造)520〜
522のセットは、特定のプロセスが接続されているフ
ァイルの集合、いい替えれば、連関するプロセスのネー
ム空間内のファイルのセットを表す。
【0115】加えて、各400は望ましくは又、アクテ
ィブなプロセスの各々について、図6に示すプロセスデ
ータ構造550を維持する。プロセスデータ構造550
は、プロセスの実行を管理するのに必要な情報を既知の
仕方で格納する。プロセスデータ構造550は特に、プ
ロセスに連関するファイル記述子アレイ500を指すポ
インタを格納するためのエントリ555を有する。
【0116】加えて、プロセスデータ構造550は、プ
ロセスのネーム空間内のルートディレクトリ「/」に対
応するチャネル520を指すポインタを格納するための
エントリ560と、プロセスのネーム空間内の現在の作
業ディレクトリに対応する、チャネル521のようなチ
ャネルを指すポインタを格納するためのエントリ565
とを有する。
【0117】前に述べたように、核400は、「チャネ
ル」と称する核データ構造を利用して、与えられたプロ
セスがネーム空間内でアクセスする各ファイルを表す。
チャネルデータ構造の適切な実現例を図7に符号600
として示す。チャネルデータ構造(又は、チャネル)6
00は望ましくは、ディスク装置又はtty(テレック
ス)装置のような、対応するファイルを提供する「核サ
ービスデバイスの種類」を記録するための要素605を
有する。
【0118】「核サービスデバイスの種類」は、デバイ
ステ−ブル450の索引として利用され、これにより、
適切なデバイスに対応する手順コールのファイル上での
実行が可能となる。なお、非核として実現されたファイ
ルについては、「核サービスデバイスの種類」がマウン
トデバイス470を示すこととなる。
【0119】例えば、もし或る特定のプロセスが或るフ
ァイルの読み出しを望む場合、プロセスは、読み出すべ
きファイルに連関するチャネルを表示する、ファイル記
述子「fd」を含む適切なアーギュメント(探索かぎ)
を用いて「read」(読み出し)コマンドを実行す
る。核400はファイル記述子「fd」を利用して、フ
ァイル記述子アレイ500を介して適切なチャネル60
0にアクセスし、その後、データ構造要素605内に表
示される、ファイルを提供する「核サービスデバイスの
種類」、を特定する。
【0120】その後、この「核サービスデバイスの種
類」がデバイステ−ブル450への索引として用いられ
てこの特定のデバイスに対応する手順コールが実現され
る。
【0121】加えて、チャネル600は望ましくは、チ
ャネル600に連関するファイルを特定するためにロー
カルの核400によって割り当てられるファイル識別子
(fid)を格納するための要素610と、ファイルを
提供するサーバによってサーバのファイル樹木内の各フ
ァイルに割り当てられる独特の番号である「qid」を
格納するための要素615とを有する。
【0122】なお、与えられたプロセスは、同じファイ
ルを指し且つ各々が異なるファイル識別子(fid)を
持つ複数のチャネル600を有するけれども、同じファ
イルを指す各チャネルは同じ独特の「qid」を有す
る。「種類」フィールドが、ファイルを提供するリソー
スを特定するので、「qid」及び「種類」の値が利用
されてファイルが独特の仕方で特定され、その結果、2
個の異なるチャネル又はファイル識別子(fid)が同
じファイルを指すかどうかが判断される。
【0123】チャネル600は望ましくは又、連関する
ファイル上で「read」(読み出し)及び「writ
e」(書き込み)のコマンドを実行する際に利用される
情報を格納するための1対の要素を有する。要素620
が、望ましくは、次の「read」及び「write」
のコマンドが開始される連関するファイル内の位置を示
す現在の「file offset」(ファイルオフセ
ット)をチャネルに連関するファイル内に格納する。
【0124】加えて、要素625が、望ましくは、ファ
イルがアクセスされるモード、いい替えれば、ファイル
処理が「read」又は「write」だけでよいか、
若しくは両方か、を表示する。
【0125】前に述べたように、もし或るファイルが非
核ファイルシステムによって提供される場合、そのファ
イルは、マウントデバイス470によって提供される、
図8(A)に関連して下で述べるマウントポイントを介
して間接的にアクセスされる。マウントポイントは、非
核ファイルシステムへの通信リンクを表す複数のデータ
構造からなる。
【0126】したがって、もし或るチャネル600が非
核ファイルシステムによって提供されるファイルを表す
場合、チャネル600内の要素630は望ましくは、遠
隔のファイルサーバのような望む非核ファイルシステム
への通信リンクを表す、図8(A)に示す適切なマウン
トポイント構造を指すポインタを有する。
【0127】加えて、上に述べたように、ユーザはネー
ム空間修正コマンドを利用して、少なくとも2個のディ
レクトリからなる合同ディレクトリをネーム空間内に形
成することができる。すなわち、ネーム空間内のチャネ
ルを合同ディレクトリに等しくすることができ、したが
って合同ディレクトリを表すといえる。チャネル600
が合同ディレクトリを表す場合、チャネル600内の要
素635は望ましくは、合同ディレクトリ内の「現ディ
レクトリ」を指すポインタを有する。
【0128】図15に関連して下で述べるように、「ウ
オーク」機能1300を利用して、合同ディレクトリの
各要素から要素へ移ることができる。望ましくは、チャ
ネル600が合同ディレクトリの異なる要素を指すにつ
れて、ポインタ635が適切に更新される。
【0129】上に述べたように、本発明によれば、与え
られたチャネルに対応するファイルパスネームの正確な
再生成を可能にするネーム空間又はパス情報を格納する
ためのデータ構造が得られる。図12(C)に関連して
下で述べる本発明の一態様によれば、各ファイルに連関
するパスデータ構造1140が、ファイルのネームと、
ネーム空間を通しての特定のファイルへのパスを定める
ことを可能にする追加情報とを格納する。
【0130】したがって、各チャネル600は望ましく
は、そのチャネルによって表される与えられたファイル
に連関するパスデータ構造1140を指すポインタを格
納するための要素640を有する。
【0131】最後に、各チャネル600は望ましくは、
現在特定のチャネルを指すポインタの数を監視する基準
カウンタ645を有する。これにより、基準カウンタが
「0」の場合、現在チャネルを指すポインタがないこと
を表し、データ構造は、既知の仕方で解放される。
【0132】[非核ファイルシステムとの通信]上に述
べたように、或る特定のユーザ又はプロセスのネーム空
間内の各ファイルは、そのファイルがローカルの核40
0によって維持されるか又は非核ファイルしによって維
持されるかに拘らず、チャネル600のような、チャネ
ルデータ構造によって表される。
【0133】しかし、或る特定のチャネル600が非核
で実現されたファイルを表す場合には、そのファイル
は、核マウントデバイス470によって与えられる、図
5に示すマウントポイント472〜474のような、マ
ウントポイントを介して間接的にアクセスされる。なお
又、核マウントデバイス470は望ましくは、ファイル
システム480のような接続された各非核ファイルシス
テムについて、マウントポイント472のような、単一
のマウントポイントを形成する。
【0134】そして、形成されたマウントポイント47
2〜474が、連関する非核ファイルシステムによって
与えられるファイルへのアクセスを望む複数のプロセス
によって利用される。
【0135】(a.通信リンクの形成)プロセスが最初
に、遠隔のファイルサーバのような、図8(A)に示す
非核ファイルシステム750に接続するときには、この
非核ファイルシステム750(すなわちデバイス)への
通信リンク740を設立する必要がある。前に述べたよ
うに、もし非核ファイルシステムが分散形計算環境10
0内の同じノード上に常駐している場合、通信リンクは
望ましくは、従来のパイプとして実現される。しかし、
もし非核ファイルシステムが分散形計算環境100内の
遠隔のノード上に常駐する場合には、通信リンク740
はネットワーク接続が用いられる。
【0136】一般に、オペレーティングシステムは、次
のような「パイプ」システムコールを供給する。すなわ
ち、実行されたときに従来のプロセス間通信パイプを形
成してパイプの各端を表すチャネルを特定する2個のフ
ァイル記述子、fd1 及びfd2 を返すコールである。
パイプは、普通のファイルのように、適切なファイル記
述子fd1 又はfd2 によってアクセスされる。
【0137】すなわち、非核ファイルシステム750
が、第1のファイル記述子fd1 を用いて、形成された
パイプの一端から遠隔手順の読み出し及び書き込みを行
い、一方、非核ファイルシステム750と通信する1個
以上のプロセスが、第2のファイル記述子fd2 を利用
して、パイプの他端から読み出し及び書き込みを行うこ
とができる。
【0138】しかし、もし非核ファイルシステム750
が分散形計算環境100の遠隔のノード上に常駐する場
合には、通信リンク740はネットワーク接続が用いら
れる。一般に、分散形処理システムに連関するオペレー
ティングシステムは、遠隔のファイルシステムへのネッ
トワーク接続を形成するためのコマンドを出す。
【0139】例えば、推奨する「プラン9」形の分散形
処理システムにおいては、望む宛先の記号的ネーム又は
ネットワークアドレスのような、適切なアーギュメント
を用いて「dial」(ダイヤル)コマンドを実行する
ことによって形成される。
【0140】図10(A)に関連して下で述べるよう
に、「dial」コマンドは、もし必要ならネットワー
クデータベース900を用いて、記号的ネームをネット
ワーク宛先へ翻訳変換する。その後、「dial」コマ
ンドは、分散形計算環境100内の指示されたネットワ
ークアドレスへのネットワーク接続の形成を試みる。
【0141】望むネットワーク接続が設立されると、
「dial」コマンドは、形成されたネットワーク接続
を表すチャネルデータ構造(又は簡単に、チャネル)7
30を特定するファイル記述子「fd」を返す。チャネ
ル730のようなチャネルを利用してネットワーク接続
上でメッセ−ジの送受信を行う仕方について、図10
(B)に関連して下で述べる。
【0142】こうして、図8(A)に示すチャネル73
0が、「pipe」又は「dial」コマンドから返さ
れたファイル記述子「fd」によって特定される。チャ
ネル730は、非核ファイルシステム750と通信する
パイプ又はネットワーク接続である通信リンク740を
表す。
【0143】一推奨実施例において、特定の、遠隔のフ
ァイルシステムと通信するために、予め定められたプロ
セスが、いま述べた仕方でパイプ又はネットワーク接続
を形成すると、形成された通信リンク740を表すチャ
ネル730を特定する、返されたファイル記述子が、ロ
ーカルのネーム空間内の予め定められた場所にあるファ
イルに掲示される。
【0144】図11に関連して下で述べる一実施例にお
いては、チャネル730を特定するファイル記述子「f
d」又はポインタを各マウントポイントが格納できるよ
うに、特別の核デバイス、「/srv」内にファイルが
形成される。
【0145】この仕方で、非核ファイルシステム750
のような非核ファイルシステムへの新たな接続を形成す
る前に、「/srv」ディレクトリ内のファイルを探索
して、特定の非核ファイルシステムへの接続が既に設立
されているかどうかを判断することができる。もし望む
非核ファイルシステムへの接続が前に設立されているこ
とが見出された場合、通信リンクを表すファイル記述子
「fd」を「/srv」ディレクトリ内のファイルから
取り出し、ネーム空間内の望む場所へマウントすること
ができる。
【0146】(b.マウントポイントの形成)非核ファ
イルシステム750への通信リンク740を表すチャネ
ル730に加えて、核マウントデバイス470(図5)
は望ましくは、非核ファイルシステム750に関するア
クセス及びパス情報を格納するためにマウントポイント
データ構造(又は簡単に、マウントポイント)710を
割り当てる。マウントポイントデータ構造710は望ま
しくは、非核ファイルシステム750への通信リンク7
40を表すチャネル730を指すポインタ(チャネルデ
ータ構造ポインタ)712を有する。
【0147】加えて、マウントポイントデータ構造71
0は望ましくは、未決着の遠隔手順コマンドメッセ−ジ
にそれぞれが連関するタグからなるタグリストを内蔵す
る待ち行列714を有する。これによって、マウントポ
イント710が、通信リンク上で受信した応答を適切な
要求側プロセスへ送ることが可能となる。
【0148】本発明の一態様によれば、マウントポイン
トデータ構造710は又望ましくは、図12(A)に関
連して下で述べるサーバ樹木パステ−ブル1100を指
すポインタ716を有する。このサーバ樹木パステ−ブ
ル1100は、非核ファイルシステム750の樹木内の
アクセスされたファイルの各々についてのネーム空間情
報を内蔵するデータ構造を指すポインタを格納する。下
で述べるように、格納されたネーム空間情報により、非
核ファイルシステムのファイル樹木を生成することが可
能となる。
【0149】一推奨実現例において、チャネルデータ構
造(又は単に、チャネル)705のような1個のチャネ
ルが、マウントポイント710の形成時に、非核ファイ
ルシステム750によって与えられるファイル樹木のル
ートディレクトリ「/」を表すように、自動的に割り当
てられる。
【0150】上に述べたように、チャネル705のよう
なチャネルが遠隔のファイルを表す場合、チャネルデー
タ構造600内の要素630(図7)(すなわち、マウ
ントポイント構造ポインタ)には望ましくは、望む遠隔
のファイルサーバ750(すなわち、非核ファイルシス
テム)への通信リンクに対するアクセスを与える適切な
マウントポイントデータ構造710を指すポインタが所
在する。
【0151】前に述べたように、割り当てられたチャネ
ル705のような各チャネルは、チャネルデータ構造の
要素610に表示されるファイル識別子「fid」を有
する。各マウントデバイス470は望ましくは、チャネ
ル705の要素610に表示されるファイル識別子「f
id」を含む「attach」(アタッチ)(接続)遠
隔手順コールを、通信リンク740を介して非核ファイ
ルシステム750へ送信する。
【0152】「attach」遠隔手順コールは、非核
ファイルシステム750によって与えられるファイル樹
木のルートにおいて、表示されたファイル識別子「fi
d]」を指すように非核ファイルシステム750に命令
する。
【0153】一推奨実施例において、チャネル705
は、非核ファイルシステム750への通信リンク740
が維持される間は、非核ファイルシステム750のファ
イル樹木のルートディレクトリを指す。
【0154】したがって、もしユーザ又はプロセスが、
非核ファイルシステム750のファイル樹木内の他のフ
ァイルにアクセスしたい場合、既知の仕方で「clon
e」(クローン)コマンドを用いてチャネル705をコ
ピーする必要がある。すなわち、マウントテ−ブル80
0が、非核ファイルシステム750によって与えられる
ファイルがアクセスされる都度修正されることにはなら
ない。
【0155】チャネル705のコピーは最初、非核ファ
イルシステム750のルートディレクトリ「/」を指
す。その後は、図15に関連して下で述べるように、フ
ァイル樹木の或るレベルから別のレベルへ移動する「ウ
オーク」機能1300を実行することにより、チャネル
705のコピーが非核ファイルシステム750のファイ
ル樹木内の別のファイルを指すように操作することが可
能である。これらのコマンドは一般に、遠隔手順コール
を用いて非核ファイルシステム750へ送信される。
【0156】(c.非核ファイルシステムのルートディ
レクトリのマウント処理)図3(A)に関連して上に述
べたように、非核ファイルシステム750のファイル樹
木は、非核ファイルシステム750のルートディレクト
リを表すチャネル705をローカルのネーム空間内に既
に所在するファイルに等しくすることによって、ローカ
ルのネーム空間内に位置させることができる。
【0157】いい替えれば、「マウント」コマンドを実
行することにより、ネーム空間内の、チャネルによって
表されるファイル上にチャネル705をマウントするこ
とができる。例えば、もし図8(A)に示す通信リンク
740が、図3(A)に示すユーザ端末305から遠隔
のファイルサーバ310への接続を表す場合、チャネル
705はこの遠隔のファイルサーバ310のネーム空間
325のルートディレクトリ「/」を表す。
【0158】したがって、遠隔のファイルサーバ310
のファイル樹木をユーザ端末305に連関するネーム空
間320内に位置させるためには、チャネル705をユ
ーザ端末のネーム空間320内のファイルX上にマウン
トする必要がある。
【0159】前に述べたように、核400は、図8
(B)及び図9に示すマウントテ−ブル800及び関連
するデータ構造を利用して、ローカルのネーム空間を形
成するためにユーザ又はプロセスが実行する一連の「連
結」及び「マウント」のコマンドを格納する。
【0160】したがって、図3(A)及び図3(B)の
例に関連して引続き説明すると、もしユーザ端末305
に連関してネーム空間320’上で処理作業を行うユー
ザがファイル「/X/D」を開こうと試みる場合、核4
00は、マウントテ−ブル800を利用して、ファイル
X及び階層のファイルXよりも下方のファイルにアクセ
スする要求を、ファイルサーバ310のファイル樹木内
の、ファイルDのようなファイルへの参照として解釈す
る。
【0161】一推奨実施例において、核400は、ファ
イルがパスネームを用いてアクセスされる都度、図13
及び図14に関連して下で述べる「パスネーム/チャネ
ル」コンバータ1200を実行する。これによって特
に、「連結」又は「マウント」コマンドからチャネル置
換が必要かどうかが判断される。
【0162】なお、「連結」又は「マウント」コマンド
のアーギュメントは、「from」チャネル及び「t
o」チャネルである。したがって、マウントテ−ブル8
00の各エントリは、「from」エントリと「to」
エントリとの対からなる。もし或るチャネルがマウント
テ−ブル800において「from」チャネルに見える
場合、別のチャネルがこのチャネル上にマウントされて
おり、チャネル置換を行う必要がある。
【0163】したがって、パスネームを用いてファイル
がアクセスされる都度、各400は、パスネームをこれ
に対応するチャネルに変換し、マウントテ−ブル800
について探索を行ってその特定のチャネルが「他からマ
ウントを受けて」いるかどうか、いい替えれば、そのチ
ャネルがマウント「from」チャネルのリストに現れ
るかどうかを判断する。もしチャネルがマウント「fr
om」チャネルのリストに見出された場合、マウントテ
−ブル800内のこれに対応するマウント「to」エン
トリが取り出され、必要なチャネル置換が行われる。
【0164】上に述べたように、チャネル600のよう
な各チャネルの要素615及び605にそれぞれ格納さ
れている「qid」及び「type」の値が、そのチャ
ネルに対応するファイルを独特の仕方で特定する。こう
して、チャネルが望ましくは、その「qid」及び「t
ype」の値によってマウントテ−ブル内で特定され
る。一推奨実施例において、マウントテ−ブル800内
のエントリが、「他からマウントを受けた」チャネルの
「qid」値に基づくハッシュ値によって索引が付けら
れる。
【0165】したがって、或る特定のチャネルが「他か
らマウントを受けて」いるかどうかを判断するには、マ
ウントテ−ブル800に、対応する「qid」値を入れ
る。その後、マウント「from」チャネルのリストに
おいて、同じ「qid」及び「type」の値を有する
チャネルが所在するかどうかの探索が行われる。もし一
致が見出された場合、核400が、対応するマウント
「to」チャネルエントリによって表示されるチャネル
について置換を実行する。
【0166】概念的には、マウントテ−ブル800を、
1対の縦列805及び810からなる最上位レベルのデ
ータ構造として見ることができる。ハッシュアドレス縦
列805内の各エントリには、独特のハッシュ値が入
り、これが横列815、820、及び825のようなマ
ウントテ−ブル800の各横列についての索引又はアド
レスとして機能する。
【0167】なお、いくつもの異なる「qid」値が同
一のハッシュ値に合わせて調整される。したがって、横
列820のようなマウントテ−ブル800の各横列が、
各々「qid」及び「type」の値によって独特の仕
方で特定された複数の「他からマウントを受けた」チャ
ネルに連関する。このため、「リンクされたリストを指
すポインタ」の縦列810は、もしエントリがあるとす
れば、望ましくはハッシュ値に連関する、データ構造8
30、832、及び837からなるリンクされたデータ
構造リスト826を指すポインタ828を有する。
【0168】マウント「from」及びマウント「t
o」データ構造についての現在推奨の一実施例を図9に
示す。概して、図8(B)に示すように、構造830、
832、及び837のような構造についてのリンクされ
たマウント「from」データ構造リスト826内の各
データ構造は、リンクされたリスト内の次のデータ構造
を指すポインタ829のようなポインタを有する。リン
クされたリスト内の最後のデータ構造837は望ましく
は図8(B)に示すような「ゼロ」ポインタを有する。
【0169】前に述べたように、マウントテ−ブル80
0内の各エントリは、「他からマウントを受けた」チャ
ネルを表す「from」データ構造と、1個以上のマウ
ントされたチャネルを表す少なくとも1個の「to」デ
ータ構造とからなる。図9に示すように、最上位レベル
マウントテ−ブル800からのリンクされたリストのポ
インタ828が、リンクされたデータ構造リスト826
内のマウント「from」データ構造830を指す。
【0170】リンクされたデータ構造リスト826の一
部をなすマウント「from」リンクリストデータ構造
830のような、マウント「from」データ構造は望
ましくは、「他からマウントを受けた」チャネルを指す
ポインタを格納するためのエントリ840と、同じく連
関するマウント「to」リンクリストデータ構造850
を指すポインタを格納するためのエントリ845とを有
する。
【0171】なお、もしマウントされたチャネルが合同
ディレクトリの一部である場合、マウント「to」デー
タ構造は、リンクされたリスト880のようなリンクさ
れたデータ構造リストの形を取る。加えて、データ構造
830のようなマウント「from」データ構造の各々
は望ましくは、リンクされたリスト826内の次の要素
を指すポインタ829を格納するためのエントリ848
を有する。
【0172】一推奨実施例において、核400は「ドゥ
ーマウント」機能1500を有し、この機能がチャネル
を取って、その意味が、「他からマウントを受ける」こ
とによって改変されているかどうかを判断し、もし改変
されている場合には必要なチャネル置換を行う。
【0173】下で述べるように、「ドゥーマウント」機
能1500は、受信されたチャネルから「qid」を取
り出し、ハッシュ値を生成し、マウントテ−ブル800
の縦列810内の適切なエントリからリンクリストポイ
ンタ828を利用して、リンクされたデータ構造リスト
(リンクリスト)826のような適切な、マウント「f
rom」データ構造のリンクされたリストにアクセスす
る。
【0174】その後、核400が、リンクされたデータ
構造リスト826内の、データ構造830のようなマウ
ント「from」データ構造の各々を指すポインタに逐
次従って、もしリンクリスト内の或るマウント「fro
m」データ構造によって指されるチャネルが、「ドゥー
マウント」機能1500へ送られたチャネルと同じ「q
id」及び「type」の値を有するかどうかを判断す
る。
【0175】もし或るチャネルが、一致する「qid」
及び「type」の値を有することが判った場合、マウ
ント「from」データ構造830のエントリ845内
のポインタに従って、データ構造850のようなマウン
ト「to」データ構造の、連関するリンクされたデータ
構造リスト880の最初の要素に到達する。望ましく
は、各マウント「to」データ構造850が、マウント
されたチャネルを指すポインタを格納するための要素8
55を有する。
【0176】加えて、このマウント「to」データ構造
850は望ましくは、マウントテ−ブル800内のその
エントリを独特の仕方で特定する「mountid」値
を格納するための要素860を有する。一推奨実施例に
おいて、エントリが付加される都度、「mounti
d」値が増値され、これにより、この値がタイムスタン
プとして機能し、マウントテ−ブルのエントリを、対応
する「連結」及び「マウント」のコマンドが実行された
順に取り出すことが可能となる。
【0177】加えて更に、マウント「to」のリンクさ
れたリストのデータ構造850は望ましくは、連関する
マウント「from」のリンクされたリストのデータ構
造830に戻ってこれを指すポインタを格納する要素8
65を有する。
【0178】加えて、マウント「to」のリンクされた
リストのデータ構造850は、マウントテ−ブルエント
リに連関する「連結」又は「マウント」のコマンドに指
定されたマウント順序フラッグを格納するための要素8
70を有する。いい替えれば、連関する「連結」又は
「マウント」のコマンドが、合同ディレクトリ内の「現
ディレクトリ」を合同ディレクトリ内の他のディレクト
リの前にすべきと表示していたか又は後にすべきと表示
していたかである。
【0179】最後に、マウント「to」のリンクされた
リストのデータ構造850は望ましくは、マウント「t
o」データ構造のリンクされたリスト880内の次の要
素を指すポインタを格納するためのエントリ875を有
する。
【0180】[ネットワークの表現]前に述べたよう
に、図10(A)に示すネットワークデータベース90
0を利用して記号的マシンネームとネットワーク宛先ア
ドレスとの間の翻訳変換が行われる。例えば、ネットワ
ーク接続を設立する際、ユーザ又はプロセスが、記号的
マシンネームによって特定される望む遠隔のマシンへの
接続を要求する。すると、接続ステップの間に、表示さ
れた記号的マシンネームを対応するネットワーク宛先ア
ドレスに翻訳変換するためにネットワークデータベース
900がアクセスされる。
【0181】加えて、下に述べる本発明の態様によれ
ば、ネーム空間を再形成するときにネットワーク宛先ア
ドレスを再び翻訳変換して記号的マシンネームに戻すこ
とがしばしば必要となる。
【0182】したがって、図10(A)に示すネットワ
ークデータベース900は望ましくは、1対の縦列92
5及び930からなる。データベース900の、横列9
05、910、及び915のような各横列は望ましく
は、それぞれ或る特定の遠隔のマシンと連関関係にあ
る。
【0183】縦列925内の各エントリが、特定のマシ
ンに連関する記号的マシンネームを表示する。縦列93
0内の各エントリは望ましくは、特定のマシンが接続さ
れるネットワークと適切なネットワーク宛先アドレスと
のリストを有する。例えば、マシン「helix」は
「ip」ネットワーク上に宛先アドレス135.104.
9.31 を有する。
【0184】この仕方で、もしユーザ又はプロセスが、
マシン「helix」のような特定の遠隔のマシンへの
ネットワーク接続を要求した場合、核400がネットワ
ークデータベース内の適切なエントリにアクセスして、
そのマシンの、対応するネットワーク宛先アドレスを取
り出す。望ましくは、接続の設立が成功するまで、取り
出された各宛先アドレスへの接続の試みを反復して行
う。
【0185】ネットワークは、分散形計算環境100内
の他のリソースと同様に、望ましくは階層形ファイルシ
ステムとして表現される。図10(B)に、ネットワー
クに関連するネーム空間950の一部分を例示する。ネ
ーム空間950は望ましくは、ディレクトリ「/ne
t」を有し、ディレクトリ「/net」は、ネットワー
ク「il」及び「tcp」のようなアクセスされる各ネ
ットワークについてのサブディレクトリである。
【0186】加えて、ネットワークディレクトリ「/n
et/il」のような各ネットワークディレクトリは望
ましくは、「clone」(クローン)ファイルと、番
号を付けたディレクトリのセットとを有する。番号を付
けたディレクトリの各々は、連関する接続の制御と同接
続上での通信のためのファイルを有する。
【0187】下で述べるように、新たなネットワーク接
続は、ファイル「/net/il/clone」のよう
な、望むネットワークのネットワークディレクトリ内の
「clone」ファイルを開いて未使用の接続を予約す
ることによって割り当てられる。開設コマンドによって
返されたファイル記述子「fd」によって、新たな接続
の「制御」ファイルを指すチャネルが特定される。
【0188】その後、接続を設立するために、 「co
nnect 135.104.9.30!1708」のよ
うなASCII(アスキー)アドレス文字列が新たな接
続の「制御」ファイルに書き込まれて、「il」ネット
ワーク上の「bootes」マシンへの接続が行われ
る。
【0189】その後、連関するデータファイルに対する
読み出し及び書き込みにより、設立された接続上でので
の受信及び送信がそれぞれ可能となる。なお、「lis
ten」(聴取)ファイルを用いてネットワークからの
着信コールが受け入れられる。又、「local」(ロ
ーカル)ファイルは一般に、アドレッシング情報を有
し、「remote」(遠隔)及び「status」
(状態)のファイルは接続状態についての情報を出す。
【0190】「プラン9」形の分散形計算システムのよ
うな分散形計算環境100でのネットワーク接続の形成
及び利用の更に詳細な内容については、文献(David Pr
esotto & Philip Winterbottom, "The Organization of
Networks in Plan 9”, Proc. of the Winter 1993 US
ENIX Technical Conference, San Diego, CA., pp. 43-
50 (1993)) を参照されたい。ここに本文献を本出願の
参照文献とする。
【0191】図8(A)に関連して上に述べたように、
パイプ又はネットワーク接続のような通信リンクが非核
ファイルシステムに対して設立される都度、形成された
通信リンクを表すチャネルを特定するために「pip
e」又は「dial」コマンドによって返されるファイ
ル記述子「fd」が望ましくは、ローカルのネーム空間
内の予め定められた場所にあるファイルに掲示される。
【0192】図11に示す一実施例において、形成され
たマウントポイントの各々についてディレクトリ「/s
rv」内にファイルが形成され、その通信リンクを表す
チャネルを特定するファイル記述子「fd」又はポイン
タが格納される。
【0193】例示の実施例において、パイプに対応する
チャネルを指すポインタを格納するために「/srv」
ディレクトリ内に形成されたファイルには、次の構成に
基づいてファイル名が付けられる。すなわち、 pro
gramname.username.procid(プ
ログラム名.ユーザ名.プロセスid) の構成である。
したがって、ファイル「8−1/2.philw.35」
には、ユーザ「philw」に対する「プラン9」形ウ
インドウシステム「8−1/2」へのパイプに連関する
チャネルを指すポインタが格納される。
【0194】同様に、ネットワーク接続に対応するチャ
ネルを指すポインタを格納するために「/srv」ディ
レクトリ内に形成されたファイルには、次の構成に基づ
いてファイル名が付けられる。すなわち、networ
k!machine name(ネットワーク!マシン
名)の構成である。したがって、ファイル「il!bo
otes」には、「il」ネットワークを介してのマシ
ン「bootes」へのネットワーク接続に連関するチ
ャネルを指すポインタが格納される。
【0195】この仕方で、デバイス750のような非核
ファイルシステムへの新たな接続を形成する前に、「/
srv」ディレクトリ内のファイルについて探索を行っ
てその特定の非核ファイルシステムへの接続が既に設立
されているかどうかを判断することができる。そして、
もし望む非核ファイルシステムへの接続が既に設立され
ている場合、「/srv」ディレクトリ内に表示されて
いるチャネルをネーム空間内の望む場所にマウントする
ことができる。
【0196】加えて、「/srv」ディレクトリ内のフ
ァイルに格納されている情報を利用して、図18に関連
して下で述べるように処理タスクのエクスポート作業中
にcpuサーバへの送信用にネーム空間を一体のパッケ
ージにまとめる(パッケージ化する)ときにパイプ及び
ネットワーク接続を特定することができる。
【0197】[ネーム空間情報データ構造]前に述べた
ように、ネーム空間を形成するためにユーザ又はプロセ
スによって実行された「マウント」及び「連結」のコマ
ンドのリストが、望ましくはこれらのコマンドが実行さ
れた順にマウントテ−ブル800から取り出される。し
かしここで注記したいのは、マウントテ−ブル800か
ら取り出された「マウント」及び「連結」のコマンドの
リストが、バインド(連結)され又はマウント(搭載)
されたその特定のチャネルデータ構造によって表され、
ファイルパスネームでは表されないことである。
【0198】このため、本発明の別の態様により、図1
2(A)〜図12(C)に示す、パスデータ構造が、各
チャネルに対応するパスネームを定めることを可能にす
るパス情報を格納する。加えて、下で述べるように、格
納されたパス情報により、接続された非核ファイルシス
テムの各々についての樹木内のアクセスされたファイル
のネーム空間を再形成することが可能になる。
【0199】前に述べたように、図8(A)に関連して
上に述べた、遠隔のサーバへのアクセスを与えるマウン
トポイントデータ構造710は、図12(A)に示すサ
ーバ樹木パステ−ブル1100を指すポインタ716を
有する。
【0200】サーバ樹木パステ−ブル1100は、マウ
ントポイント710に連関する非核ファイルシステム7
50の階層形ファイル樹木内の、アクセスされたファイ
ルの各々についてのパス情報を含むデータ構造を指すポ
インタを格納する。格納されたパス情報によって、非核
ファイルシステムのファイル樹木を下で述べる仕方で生
成することが可能となる。
【0201】図12(A)に示すように、サーバ樹木パ
ステ−ブル1100は望ましくは、遠隔のファイルシス
テム750のルートディレクトリを表すチャネル705
のような、特定の非核ファイルシステムのルートディレ
クトリを表すチャネルに連関するパスデータ構造を指す
ポインタ1102からなる。
【0202】下で述べるように、非核ファイルシステム
のルートのパスデータ構造を指すポインタ1102を利
用して、ルートディレクトリまでの全行程を戻って階層
内の与えられたファイルからパスネームが、いつ再構築
されたかを特定することができる。
【0203】加えて、サーバ樹木パステ−ブル1100
は望ましくは、図12(B)に示すサーバ樹木パスリス
ト1110を指すポインタ1104を有する。このサー
バ樹木パスリスト1110は望ましくは、連関する非核
ファイルシステムの全てについてのパス情報を有するデ
ータ構造を指すポインタのリストである。
【0204】一推奨実施例において、サーバ樹木パスリ
スト1110内のエントリは、与えられたファイルにつ
いてのパスネーム情報に基づく。いい替えれば、一推奨
実施例において、サーバ樹木パスリスト1110内のエ
ントリは、与えられたファイルの「パスネーム」に基づ
くハッシュ値によって索引が付けられる。
【0205】この仕方で、与えられたファイルに連関す
る、データ構造1140のような適切なパスデータ構造
を、例えば「ウオーク」機能1300の実行中、パスネ
ームに基づいてアクセスされるファイルについて特定す
ることができる。なお、もし或る特定のチャネルについ
てのパス情報を望む場合、チャネルデータ構造600
(図7)からパス構造ポインタ640を取り出すことに
よって、適切なデータ構造に直接アクセスすることがで
きる。
【0206】したがって、パスネームによって特定され
た、或る特定のファイルについてのパス情報にアクセス
するためには、与えられたファイルのパスネームに基づ
くハッシュ値をサーバ樹木パスリスト1110に入れ
る。
【0207】概念的には、サーバ樹木パスリスト111
0を、1対の縦列1122及び1124からなる最上位
レベルのデータ構造として見ることができる。ハッシュ
アドレス縦列1122内の各エントリには、独特のハッ
シュ値が入り、これが横列1115、1118、及び1
120のようなサーバ樹木パスリスト1110の各横列
についての索引又はアドレスとして機能する。
【0208】なお、いくつもの異なる「pathnam
e」(パスネーム)値が同一のハッシュ値に合わせて調
整される。したがって、横列1118のようなサーバ樹
木パスリスト1110の各横列が、複数のパスデータ構
造に連関する。このため、「リンクされたリストを指す
ポインタ」の縦列1124は、もしエントリがあるとす
れば、望ましくはハッシュ値に連関する、データ構造1
130、1132、及び1137からなるリンクされた
データ構造リスト1126を指すポインタ1128を有
する。
【0209】パスデータ構造11140についての現在
推奨の一実施例を図12(C)に示す。概して、図12
(B)に示すように、構造1130、1132、及び1
137のようなリンクされたパスデータ構造リスト11
26内の各データ構造は、リンクされたリスト内の次の
データ構造を指すポインタ1129のようなポインタを
有する。リンクされたリスト内の最後のデータ構造11
37は望ましくは図12(B)に示すような「ゼロ」ポ
インタを有する。
【0210】リンクリストパスデータ構造1140のよ
うな各パスデータ構造は望ましくは、連関するファイル
のネームを格納するためのエントリ1142と、現ファ
イルの親のファイルパスデータ構造を指すポインタを格
納するためのエントリ1144と、基準カウンタ114
6と、リンクされたリスト内の次の要素を指すリンクさ
れたリストのポインタ1148とを有する。
【0211】図24に関連して下で述べるように、「チ
ャネル/パスネーム」コンバータ2000は、データ構
造1140のようなパスデータ構造を利用して、チャネ
ルとして表される、与えられたファイルについてのパス
ネームを構築する。概して、チャネルが与えられると、
「チャネル/パスネーム」コンバータ2000が、表示
されたファイルについてパスデータ構造1140にアク
セスし、エントリ1142からファイルネームを取り出
す。
【0212】それから、エントリ1144から取り出さ
れた親のファイルのパスデータ構造を指す一連のポイン
タに順次従って、ルートディレクトリに到達するまでフ
ァイル樹木を登りパスネームを構築する。
【0213】[ネーム空間プロセス]前に述べたよう
に、核400は、ユーザまたはプロセスのネーム空間内
の与えられたパスネームを、表示されたファイルを表す
適切なチャネルに翻訳変換するための「パスネーム/チ
ャネル」コンバータ1200を提供する。上に述べたよ
うに、ユーザまたはプロセスは、ユーザまたはプロセス
のネーム空間内のパスネームによって特定されるいくつ
もの異なるファイル作業を1つのファイル上で行うこと
ができる。パスネームアーギュメントを受信して作業場
所のファイルを特定するこれらのファイル作業の各々は
望ましくは、「パスネーム/チャネル」コンバータ12
00を呼んで、表示されたパスネームを、その作業場所
のファイルを表す特定のチャネルデータ構造へ翻訳変換
する。
【0214】下で述べるように、「パスネーム/チャネ
ル」コンバータ1200の処理プロセスは、3個の主要
部分から構成される。第1の部分及び第2の部分は、表
示されたファイルを含むディレクトリを表す適切なチャ
ネルを特定する。なお、「パスネーム/チャネル」コン
バータ1200を呼ぶこれらの異なるファイル作業にお
いては、アクセスモードによって特定されて、その表示
されたファイル上で、異なるタスクを行うことになる。
【0215】「open」(開設)又は「creat
e」(形成)のような大抵のファイル作業については、
マウントテ−ブル800に表示される全てのチャネル置
換を行うことが望ましい。しかし、ファイル作業が「作
業ディレクトリの設定」又は「マウント」コマンドであ
る場合、そのファイル作業は、合同ディレクトリ自体を
表すチャネル上で行うべきであり、合同ディレクトリ内
の第1の要素を表すチャネル上で行うべきではない。
【0216】この仕方で、もし或るチャネルが次の「連
結」又は「マウント」コマンドによって合同ディレクト
リ内の第1の要素の前に挿入された場合、その新しい第
1の要素が、合同ディレクトリを表すチャネルによって
指されることになる。そのため、「パスネーム/チャネ
ル」コンバータ1200の処理プロセスの第3の部分1
245が、受信されたアクセスモードアーギュメントを
点検評価し、置換を行わないのが適切な場合には、最後
のパスネーム要素についてマウントテ−ブル800に表
示されているチャネル置換を行わない。
【0217】図13に示すように、ステップ1204に
おいて、「パスネーム/チャネル」コンバータ1200
がプロセスに入り、表示されたパスネームアーギュメン
ト(探索かぎ)を用いて処理を開始する。ステップ12
08〜1224に対応する「パスネーム/チャネル」コ
ンバータ1200の処理プロセスの第1の部分1202
の間、パスネームの第1の要素が分析される。
【0218】なお、パスネームは一般に、そのパスネー
ムについての異なる発起点をそれぞれが特定するような
3個の文字のうちの1個で始まる。そして、ステップ1
208において、パスネームのアーギュメント中の第1
の文字が、そのパスネームがルートディレクトリに関し
て指定されていることを表示する斜線文字かどうかが点
検される。
【0219】もしステップ1208において、パスネー
ムのアーギュメント中の第1の文字がルートディレクト
リ「/」を表示すると判断された場合、ステップ121
2において、ルートディレクトリを表すチャネルを指す
ポインタがプロセスデータ構造550(図6)の要素5
60から取り出され、対応するチャネルがクローン処理
すなわちコピーされる。
【0220】しかし、もしステップ1208において、
パスネームのアーギュメント中の第1の文字がルートデ
ィレクトリ「/」を表示しないと判断された場合には、
ステップ1216において、パスネームのアーギュメン
ト中の第1の文字が、そのパスネームが現作業ディレク
トリに関して指定されていることを表示するドット文字
「.」かどうかが点検される。
【0221】もしステップ1216において、パスネー
ムのアーギュメント中の第1の文字が現作業ディレクト
リ「.」を表示すると判断された場合、ステップ122
0において、現作業ディレクトリを表すチャネルを指す
ポインタがプロセスデータ構造550(図6)の要素5
65から取り出され、対応するチャネルがクローン処理
すなわちコピーされる。
【0222】しかし、もしステップ1216において、
パスネームのアーギュメント中の第1の文字が現作業デ
ィレクトリ「.」を表示しないと判断された場合には、
パスネームのアーギュメント中の第1の文字は、そのパ
スネームが核デバイスに関して指定されていることを表
示するハッシュ文字「#」に違いない。
【0223】したがって、ステップ1224において、
プロセスデバイスを表示する「#p」のようなパスネー
ムの第2の文字によって特定される核デバイスが取り付
けられる。「attch」(取り付け)コマンドによっ
て既知の仕方で返されたファイル記述子「fd」が変数
「channel」(チャネル)に割り当てられる。
【0224】「パスネーム/チャネル」コンバータ12
00の処理プロセスの第1の部分1202の実行の後、
変数「チャネル」には、パスネームのアーギュメント中
の第1の文字(すなわち要素)によって表示されたディ
レクトリ又はファイルを表すチャネルが含まれる。ステ
ップ1228〜1240に対応する「パスネーム/チャ
ネル」コンバータ1200の処理プロセスの第2の部分
1226の間、パスネームアーギュメントの各要素が、
最後の要素に到達するまで逐次、点検処理される。
【0225】ステップ1228において、パスネームア
ーギュメントの「次の要素」が取り出される。その後、
ステップ1232において、図15に関連して下で述べ
る「walk」(ウオーク)機能が、変数「チャネル」
の現在値と前のステップにおいて取り出された「次の要
素」とを用いて実行される。「ウオーク」機能1300
の結果が変数「チャネル」に割り当てられる。
【0226】概して、「ウオーク」機能1300は、パ
スネームにおいて「次の要素」によって表示されるファ
イル又はディレクトリを求めて、「チャネル」の現在値
によって表されるディレクトリ内で探索を行う。
【0227】ステップ1232における「ウオーク」機
能の実行に続いて、ステップ1236において、図17
に関連して下で述べる「domount」(ドゥーマウ
ント)機能1500が実行される。概して、「ドゥーマ
ウント」機能1500は、マウントテ−ブル800にア
クセスして、変数「チャネル」の現在値によって表され
るチャネルが「他からマウントを受けて」いるかどうか
を判断する。
【0228】もし変数「チャネル」の現在値に対応する
チャネルが「他からマウントを受けて」いると判断され
た場合には、変数「チャネル」の値が「ドゥーマウン
ト」機能1500によって、マウントされたチャネルが
表示されるように翻訳変換される。
【0229】その後、ステップ1240において、最後
の要素以外に点検評価すべきパスネームアーギュメント
内の要素がまだあるかどうかを判断する点検が行われ
る。もしステップ1240において、点検評価すべきパ
スネームアーギュメント内の要素がまだあると判断され
た場合、プロセスはステップ1228に戻って、上に述
べた仕方で残りのパスネーム要素の処理を継続する。
【0230】しかし、もしステップ1240において、
点検評価すべきパスネームアーギュメント内の要素がも
はやないと判断された場合、プロセスは図14のステッ
プ1250に進む。「パスネーム/チャネル」コンバー
タ1200の処理プロセスの第2の部分1226の実行
の後、変数「チャネル」は、表示されたパスネーム内の
最後の要素の次を、いい替えれば、パスネームアーギュ
メントによって特定されたファイル(又はディレクト
リ)を指す。を指している。
【0231】前に述べたように、「パスネーム/チャネ
ル」コンバータ1200によって受信されたアーギュメ
ントは、現ファイル作業のアクセスモードを特定する。
上に述べたように、「アクセス」モードが、マウントテ
−ブル800に表示されたチャネル置換がパスネームの
最後の要素に対して行われたかどうかを判断する。
【0232】ステップ1250〜1290に対応する
「パスネーム/チャネル」コンバータ1200の処理プ
ロセスの第3の部分1245がアクセスモードのアーギ
ュメントを点検評価して、そのファイルを表す適切なチ
ャネルを特定する。
【0233】ステップ1250において、現アクセスモ
ードが「アクセス」かどうかを判断する点検が行われ
る。もしステップ1250において、現アクセスモード
が「アクセス」であると判断された場合、ステップ12
54において、図15に示す「ウオーク」機能が変数
「チャネル」の現在値と、パスネームの「最後の要素」
とを用いて実行される。「ウオーク」機能の結果が変数
「チャネル」に割り当てられる。
【0234】「ウオーク」機能1300は、パスネーム
において「最後の要素」によって表示されるファイル又
はディレクトリを求めて、「チャネル」の現在値によっ
て表されるディレクトリ内で探索を行う。
【0235】ステップ1254における「ウオーク」機
能の実行に続いて、ステップ1258において、図17
に示す「domount」(ドゥーマウント)機能15
00が実行される。
【0236】「ドゥーマウント」機能1500は、マウ
ントテ−ブル800にアクセスして、変数「チャネル」
の現在値によって表されるチャネルが「他からマウント
を受けて」いるかどうかを判断し、もしそうなら、マウ
ントされたチャネルを表示するために、変数「チャネ
ル」の値が「ドゥーマウント」機能1500によって翻
訳変換される。その後、プロセスは、ステップ1290
において、作業場所のファイルを今や表している変数
「チャネル」の現在値を持って呼び出し側のファイル作
業に戻る。
【0237】しかし、もしもしステップ1250におい
て、現アクセスモードが「アクセス」に等しくないと判
断された場合、ステップ1262において、現アクセス
モードが「作業ディレクトリの設定」又は「マウント」
に等しいかどうかを判断するための点検が行われる。
【0238】もしステップ1262において、現アクセ
スモードが「作業ディレクトリの設定」又は「マウン
ト」に等しいと判断された場合、チャネルが合同ディレ
クトリ自体を表すのが望ましく、合同ディレクトリ内の
第1の要素を表すのは望ましくない。
【0239】それで、ステップ1264において、図1
5に示す「ウオーク」機能1300が、変数「チャネ
ル」の現在値とパスネームの「最後の要素」とを用いて
実行され、この実行により、パスネームにおいて「最後
の要素」によって表示されるファイル又はディレクトリ
を求めて、「チャネル」の現在値によって表されるディ
レクトリ内で探索が行われる。「ウオーク」機能130
0の結果は、変数「チャネル」に割り当てられる。
【0240】その後、プロセスは、ステップ1290に
おいて、「ドゥーマウント」機能を呼ぶことなく、変数
「チャネル」の現在値を持って呼び出し側のファイル作
業に戻る。
【0241】しかし、もしステップ1262において、
現アクセスモードが「作業ディレクトリの設定」又は
「マウント」に等しくないと判断された場合には、ステ
ップ1268において、現アクセスモードが「開設」又
は「形成」に等しいかどうかを判断するための点検が行
われる。
【0242】もしステップ1268において、現アクセ
スモードが「開設」又は「形成」に等しいと判断された
場合、ステップ1272において、図15に示す「ウオ
ーク」機能1300が、変数「チャネル」の現在値とパ
スネームの「最後の要素」とを用いて実行され、この実
行により、パスネームにおいて「最後の要素」によって
表示されるファイル又はディレクトリを求めて、「チャ
ネル」の現在値によって表されるディレクトリ内で探索
が行われる。「ウオーク」機能1300の結果が変数
「チャネル」に割り当てられる。
【0243】ステップ1272における「ウオーク」機
能の実行に続いて、ステップ1276において、図17
に示す「domount」(ドゥーマウント)機能15
00が実行される。
【0244】「ドゥーマウント」機能1500は、マウ
ントテ−ブル800にアクセスして、変数「チャネル」
の現在値によって表されるチャネルが「他からマウント
を受けて」いるかどうかを判断し、もしそうなら、マウ
ントされたチャネルを表示するために、変数「チャネ
ル」の値が「ドゥーマウント」機能1500によって翻
訳変換される。
【0245】なお、ファイル開設のタスクは、ある種の
許可について検証を受ける必要がある。したがって、ス
テップ1280において、ファイルがアクセスされる仕
方が点検評価される。
【0246】その後プロセスはステップ1290におい
て、作業場所のファイルを今や表している変数「チャネ
ル」の現在値を持って呼び出し側のファイル作業に戻
る。
【0247】しかし、もしもしステップ1268におい
て、現アクセスモードが「開設」又は「形成」に等しく
ないと判断された場合には、有効なアクセスモードが全
て試みられたわけで、現アクセスモードはエラーに違い
ない。したがって、望ましくは、プロセスが呼び出し側
のファイル作業に戻る前に、ステップ1284において
エラーフラッグがセットされる。
【0248】前に述べたように、図15に示す「ウオー
ク」機能1300は、「チャネル」とパスネーム「要
素」とをアーギュメントとして受信する。下で述べるよ
うに、「ウオーク」機能1300は、パスネーム「要
素」によって表示されるファイル又はディレクトリを求
めて、「チャネル」の現在値によって表されるディレク
トリ内で探索を行う。
【0249】「ウオーク」機能1300は、図16に示
すデバイスウオークサブルーチンを利用して、その特定
のディレクトリが、表示されたファイルを有するかどう
かを実際に判断する。加えて、受信されたチャネルが、
「ウオーク」成功時に新たなファイルを指すので、デバ
イスウオークサブルーチン1400は又、要すれば、適
切なパスデータ構造1140(図12(C))を更新す
る。
【0250】図15に示すように、「ウオーク」機能1
300は望ましくは、ステップ1305においてプロセ
スに入り、処理を開始する。「ウオーク」機能1300
のアーギュメントは、或る特定のファイルを求める探索
が行われるディレクトリを表す「チャネル」であって、
与えられたネーム要素によって表示される「チャネ
ル」、からなる。
【0251】ステップ1310において、チャネル60
0のような表示されたチャネルの核サービスデバイス
「種類」要素605が点検評価され、これによりそのフ
ァイルを提供する核デバイスが特定される。前に述べた
ように、核サービスデバイス「種類」は、デバイステ−
ブル450において索引として利用される。そして、
「ウオーク」作業に対応するデバイステ−ブル450の
縦列内のエントリによって表示されるような、適切なデ
バイスウオークサブルーチンがステップ1315におい
て実行される。
【0252】例示のデバイスウオークサブルーチン14
00について、図16に関連して下で述べる。前に述べ
たように、デバイスウオークサブルーチン1400は、
表示されたディレクトリを表すチャネルが、受信された
パスネーム「要素」によって特定されるファイルを有す
るかどうかを判断し、もし成功の場合は又、適切なパス
データ構造1140を更新する。
【0253】その後、ステップ1320において、デバ
イスウオークサブルーチン1400が成功だったかどう
かを判断する点検が行われる。いい替えれば、ネーム
「要素」アーギュメントによって表示されるファイル
が、「チャネル」アーギュメントによって表されるディ
レクトリ内に見出されたかどうかである。もしステップ
1320において、デバイスウオークサブルーチン14
00が成功だったと判断された場合、受信されたパスネ
ーム「要素」によって表示されるファイルを今や指すよ
うな変数「チャネル」の現在値が返される。
【0254】しかし、もしステップ1320において、
デバイスウオークサブルーチン1400が不成功だった
と判断された場合には、受信されたチャネルは、そのフ
ァイルを含む合同ディレクトリを表す。したがって、ス
テップ1325において、受信された「チャネル」が合
同ディレクトリを表すかどうかを判断する点検が行われ
る。
【0255】もしステップ1325において、「チャネ
ル」が合同ディレクトリを表すと判断された場合、マウ
ント合同ポインタが、チャネルデータ構造(チャネル)
600のような受信された「チャネル」の要素635か
ら取り出される。前に述べたように、チャネル600の
ようなチャネルが合同ディレクトリを表すとき、マウン
ト合同ポインタ635が、合同ディレクトリ内の現ディ
レクトリを表すチャネルを指す。
【0256】その後、チャネル600のような、マウン
ト合同ポインタ635によって指されたチャネルの核サ
ービスデバイス「種類」要素605が、ステップ133
2において点検されて、ディレクトリを供給し且つデバ
イステ−ブル450において索引として利用される核サ
ービスデバイス「種類」が特定される。そして、ステッ
プ1334において、適切なデバイスウオークサブルー
チンが実行される。
【0257】ステップ1336において、ステップ13
34で実行されたデバイスウオークサブルーチンが成功
だったかどうかを判断するための点検が行われる。いい
替えれば、ネーム「要素」アーギュメントによって表示
されるファイルが、マウント合同ポインタ635によっ
て指される現ディレクトリ内に見出されたかどうか、で
ある。
【0258】もしステップ1336において、ステップ
1334で実行されたデバイスウオークサブルーチン1
400が成功だったと判断された場合、パスネーム「要
素」によって表示されるファイルを今や指すような変数
「チャネル」の現在値がステップ1350において返さ
れる。
【0259】しかし、もしステップ1336において、
ステップ1334で実行されたデバイスウオークサブル
ーチン1400が不成功だったと判断された場合には、
他のディレクトリがもしあれば、それらのディレクトリ
が点検評価される。
【0260】それから、ステップ1338において、点
検評価されている現チャネルが、合同ディレクトリの
「最後の要素」を表すかどうか、いい替えれば、マウン
ト「to」データ構造850の要素875から取り出さ
れた、リンクされたリスト880の「次の要素」を指
す、ポインタが「ゼロ」であるかどうかを判断するため
の点検が行われる。
【0261】もしステップ1338において、点検評価
されている現チャネルが、合同ディレクトリの「最後の
要素」を表さないと判断された場合、ステップ1340
において、合同ディレクトリを形成するリンクされたリ
スト880内の次の要素に対応するチャネルに合わせて
「チャネル」の値が望ましくは増値される。
【0262】加えて、ステップ1342において、合同
ディレクトリからマウントを受けているチャネル内のポ
インタ(マウント合同ポインタ)635の値が望ましく
は、「チャネル」によって指される合同ディレクトリ内
の現ディレクトリを表示するように更新される。その
後、プロセスはステップ1332に戻って上に述べた仕
方で処理を継続する。
【0263】しかし、もしステップ1338において、
点検評価されている現チャネルが、合同ディレクトリの
「最後の要素」を表すと判断された場合には、パスネー
ムアーギュメントによって表示されるファイルは、受信
された「チャネル」アーギュメントによって表されるチ
ャネルにはない。すなわち、そのチャネルにマウントさ
れた合同ディレクトリ内にある。したがって、「ウオー
ク」は不成功で、「ウオーク」機能1300は望ましく
は、ステップ1345において「ゼロ」の値を持って呼
び出し側の作業に戻る。
【0264】上に述べたように、「ウオーク」機能13
00は、図16に示すデバイスウオークサブルーチンを
利用して、受信されたチャネルによって定まる或る特定
のディレクトリが、受信されたパスネーム「要素」によ
って特定される或る表示されたファイルを有するかどう
かを判断する。加えて、受信されたチャネルが、「ウオ
ーク」成功時に新たなファイルを指すので、デバイスウ
オークサブルーチン1400は又、要すれば、適切なパ
スデータ構造1140(図12(C))を更新する。
【0265】前に述べたように、「ウオーク」機能13
00は、デバイステ−ブル450にアクセスして、ディ
レクトリを提供する核デバイスに適した特定のデバイス
ウオークサブルーチン1400を実行する。すなわち、
各デバイスウオークサブルーチン1400は、その特定
の核デバイスについての「ウオーク」機能を実現するの
に必要な特定のコードを有する。デバイスに特定のコー
ドは、ここでは関係ない。そのため、図16に示すデバ
イスウオークサブルーチン1400は、本発明に関連す
る概念を例示するように一般化されている。
【0266】図16に示すように、デバイスウオークサ
ブルーチン1400は、ステップ1405においてプロ
セスに入って、処理を開始する。その後、受信された
「チャネル」アーギュメントによって表されるディレク
トリが、受信されたパスネーム「要素」アーギュメント
によって特定されるファイルを有するかどうかを判断す
るのに必要な、デバイスに特定のコードが、ステップ1
410において実行される。
【0267】ステップ1415において、そのパスネー
ム「要素」アーギュメントが、表示されたディレクトリ
内に見出されたかどうかを判断するための点検が行われ
る。もしステップ1415において、そのパスネーム
「要素」アーギュメントが、表示されたディレクトリ内
に見出されなかったと判断された場合、デバイス「ウオ
ーク」は不成功だった。そして、デバイスウオークサブ
ルーチン1400は、ステップ14205において、望
ましくは「ゼロ」の値を持って、呼び出し側の「ウオー
ク」機能1300に戻る。
【0268】しかし、もしステップ1415において、
そのパスネーム「要素」アーギュメントが、表示された
ディレクトリ内に見出されたと判断された場合、デバイ
ス「ウオーク」は成功だった。そしてステップ1430
〜1460において、受信された「チャネル」が今や受
信されたパスネーム「要素」によって表示されるファイ
ルを指すことを表示するように、適切なデータ構造を更
新する必要がある。
【0269】すなわち、ステップ1425において、受
信された「チャネル」の要素615が、望ましくはその
パスネーム「要素」アーギュメントによって特定された
ファイルの「qid」値を反映するように更新される。
なお、「qid」値は、そのファイルを与えるデバイス
によって出され、ステップ1410におけるデバイスに
特定のコードの実行時に取得される。
【0270】今や、じゅしんされた「チャネル」が新た
なファイルを指しているので、そのファイルに連関する
パスデータ1140を指すチャネル内のポインタも同様
に更新する必要がある。加えて、もし受信された「チャ
ネル」によって今指されているファイルが前にアクセス
されていない場合、パスデータコード1140を形成す
る必要がある。
【0271】前に述べたように、サーバ樹木パスリスト
1110(図12(B))は、そのファイルを与えるデ
バイスに連関するパスデータ構造の全てを指すポインタ
のリストを有する。サーバ樹木パスリスト1110は望
ましくは、パスネーム「要素」と親のファイルのパスデ
ータ構造を指すポインタとによってハッシュ処理され
る。そして、ステップ1430において、適切なハッシ
ュ値が利用されてパスデータ構造の適切なリンクされた
リスト1126がアクセスされる。
【0272】ステップ1435において、リンクされた
リスト1126内のデータ構造が、受信されたパスネー
ム「要素」アーギュメントに等しいファイルネームを有
するかどうか、及びパスデータ構造1140の要素11
44から取り出された、親のパスデータ構造値を指すポ
インタが、受信された「チャネル」アーギュメントの要
素640(図7)内に表示されたパス構造値を指すポイ
ンタに等しいかどうか、を判断するための点検が行われ
る。
【0273】もしステップ1435において、リンクさ
れたリスト1126内のデータ構造が、受信されたパス
ネーム「要素」アーギュメントに等しいファイルネーム
を有さず、且つ親のパスデータ構造値1144を指すポ
インタが、受信された「チャネル」アーギュメントの要
素640内のパス構造値を指すポインタに等しくない、
と判断された場合、現ファイルは前にアクセスされてお
らず、又パスデータ構造はそのファイルについては前に
形成されていない。
【0274】したがって、ステップ1440において、
望ましくは、そのファイルについてパスデータ構造11
40が形成され、ファイルネーム要素1142に、受信
されたパスネーム「要素」アーギュメントが入れられ、
親のパスデータ構造を指すポインタ1144が、受信さ
れた「チャネル」アーギュメント等しくされる。ステッ
プ1440において形成されたパスデータ構造1140
は、ステップ1430においてアクセスされたパスデー
タ構造のリンクされたリスト1126に挿入される(ス
テップ1445)。
【0275】ステップ1445は例えば、リンクされた
リストを指すポインタ1128を、パス樹木リスト11
10の縦列1124内のエントリからステップ1440
において形成されたデータ構造1140の最後の要素1
148へコピーすることによって、そして新たに形成さ
れたデータ構造を指すポインタを、ステップ1430に
おいてアクセスされたサーバ樹木パスリスト1110の
縦列1124内のエントリへコピーすることによって、
実現される。その後、プロセスはステップ1450に進
み、下で述べる仕方で処理を継続する。
【0276】しかし、もしステップ1435において、
リンクされたリスト1126内のデータ構造が、受信さ
れたパスネーム「要素」アーギュメントに等しいファイ
ルネームを有し、且つ親のパスデータ構造値1144を
指すポインタが、受信された「チャネル」アーギュメン
トの要素640内のパス構造値を指すポインタに等し
い、と判断された場合、パスデータ構造がそのファイル
について前に形成されている。
【0277】したがって、受信された「チャネル」内の
パス構造ポインタ640が望ましくは、ステップ145
0において、受信されたパスネーム要素アーギュメント
によって表示された、ウオークされた先(ウオーク動作
の終端場所)のファイルのパスデータ構造を指すように
更新される。
【0278】受信された「チャネル」内のパス構造ポイ
ンタ640は今や、ウオークされた先のファイルに連関
するパスデータ構造を指し、ウオークされた元(ウオー
ク動作の発端場所)のファイルに連関するパスデータ構
造をもはや指さない。
【0279】それで、ウオークされた先のファイルに関
連するパスデータ構造1140内の基準カウンタ114
6がステップ1455において増値され、ウオークされ
た元のファイルに関連するパスデータ構造1140内の
基準カウンタ1146がステップ1460において減値
される。この仕方で、各構造を現在指すポインタの数の
カウントが維持される。
【0280】その後、プロセスは望ましくはステップ1
475において、変数「チャネル」の現在値を持って
「ウオーク」機能に戻る。
【0281】前に述べたように、核400は、図17に
示す「domount」(ドゥーマウント)機能150
0を有し、このドゥーマウント機能1500は、「チャ
ネル」アーギュメントを受信し、マウントテ−ブル80
0にアクセスして、受信された「チャネル」アーギュメ
ントによって表されるチャネルが「他からマウントを受
けて」いるかどうかを判断する。
【0282】もしドゥーマウント機能1500が、変数
「チャネル」の現在値に対応するチャネルが「他からマ
ウントを受けて」いると判断した場合、変数「チャネ
ル」のその値が、マウントされたチャネルを表示するよ
うに翻訳変換される。ドゥーマウント機能1500は、
図17に示すように、ステップ1505においてプロセ
スに入り、受信された「チャネル」をアーギュメント
(探索かぎ)として処理を開始する。
【0283】ドゥーマウント機能1500は望ましく
は、受信された「チャネル」の要素615から「qi
d」値を取り出し、「qid」値に、適切な「ハッシ
ュ」機能を実現して、ステップ1510において、マウ
ント「from」データ構造の適切なリンクされたリス
ト826にアクセスする。ステップ1515において、
マウント「from」データ構造によって指されるチャ
ネルが、受信された「チャネル」アーギュメントと同じ
「qid」値を有するかどうかを判断する点検が行われ
る。
【0284】もしステップ1515において、マウント
「from」データ構造によって指されるチャネルが、
受信された「チャネル」アーギュメントと同じ「qi
d」値を有すると判断された場合、マウント「to」ポ
インタ845に従って、これに対応するマウント「t
o」データ構造850に到達することにより、マウント
されたチャネルを指すポインタ855が取り出される。
【0285】それから、ステップ1520において、マ
ウントされたチャネルを指すこのマウント「to」ポイ
ンタ855によって指されるチャネルがクローン処理
(コピー)され、変数「チャネル」に再割り当てされ
る。なお、マウントテ−ブル800内のチャネルは望ま
しくは、クローン処理されたチャネルがマウントテ−ブ
ル800に影響を与えないように、タスク実行の前にク
ローン処理される。
【0286】しかし、もしステップ1515において、
マウント「from」データ構造830によって指され
るチャネルが、受信された「チャネル」アーギュメント
と同じ「qid」値を有しないと判断された場合、その
チャネルは、「他からマウントを受けて」いない。そし
てステップ1525において、チャネル値が改変なしに
戻される。
【0287】[遠隔のポインタへの処理タスクのエクス
ポート]前に述べたように、分散形計算環境100のよ
うな分散形システムにおいて、ユーザは、コンパイレー
ションのような集中計算アプリケーションを、例えばc
puコマンドを実行することにより、cpuサーバ12
0のような遠隔のプロセッサへ移出(エクスポート)す
る。このcpuコマンドをユーザが実行後、コマンドイ
ンタプリタからのコマンドプロンプトが、ユーザ端末1
05のような端末の表示ウインドウに現れる。しかし、
コマンドインタプリタはcpuサーバ上で処理を実行中
である。
【0288】下で更に述べるように、cpuコマンド
は、端末をして、ローカルのネーム空間の正確な記述を
cpuサーバ120にエクスポートさせる。cpuサー
バ120は受信したネーム空間を利用して、端末のネー
ム空間とほぼ同一のネーム空間を組み立てる。この仕方
で、cpuサーバ120は、端末によって組み立てられ
たのと同じカスタム化した構成図をこの分散形計算環境
100について見ることになる。
【0289】一推奨実施例において、cpuコマンド
が、図18に示すプロセス実行エクスポータ1600
(プロセス実行作業を移出するための処理プログラム)
の実行をユーザ端末105上に呼び出す。プロセス実行
エクスポータ1600がメッセ−ジを、選択されたcp
uサーバ120に送信すると、この選択されたcpuサ
ーバ120が、図19に示すプロセス実行インポータ1
650の実行をこの選択されたcpuサーバ120上に
呼び出す。
【0290】下で述べるように、プロセス実行エクスポ
ータ1600及びプロセス実行インポータ1650の実
行には、2個の遠隔のプロセッサ上の2個のプロセス間
の相互対話処理が必要である。これに関連して、図18
及び図19の流れ図において種々の計算システム間の信
号の転送を示すために、次の取り決めを設定する。
【0291】すなわち、或るプロセッサが信号を別のプ
ロセッサに送信しているとき、そのプロセスに対応する
ステップを図18のステップ1610のような右側が突
出した矢印形ブロックで示す。同様に、或るプロセッサ
が別の端末から送信された信号を受信しているとき、そ
のプロセスに対応するステップを図19のステップ16
60のような「フラッグ」形ブロックで示す。
【0292】図18に示すように、プロセス実行エクス
ポータ1600は、ステップ1605において、例えば
ユーザまたはプロセスによるcpuコマンドの実行時に
プロセスに入って処理を開始する。その後、プロセス実
行エクスポータ1600は、ステップ1610におい
て、cpuサーバ120のような選択された遠隔のプロ
セッサに既知の仕方でダイヤルする。本発明の一態様に
よれば、ローカルのネーム空間の現在の状態の正確な表
現が生成され、この選択されたサーバ120に送信され
る。
【0293】それから、ステップ1620において、図
20に関連して下で述べるネーム空間読み出しサブルー
チン1700が実行される。前に述べたように、ローカ
ルのネーム空間は、一連の「連結」及び「マウント」コ
マンドによって形成される。「連結」及び「マウント」
コマンドの各々は、マウントテ−ブル800内の個々の
エントリによって実現される。
【0294】すなわち、ネーム空間読み出しサブルーチ
ン1700が、マウントテ−ブル800にアクセスし
て、「連結」及び「マウント」コマンドの各々に連関す
る「from」ファイルと「to」ファイルとからなる
「ネーム空間リスト」を生成する。又、これらのファイ
ルによってローカルのネーム空間の現在の状態が形成さ
れる。
【0295】なお、ネーム空間読み出しサブルーチン1
700の推奨実施例では、「ネーム空間リスト」の生成
は、その特定のファイルを与えるサーバのネーム空間内
のパスネームを用いて行われ、ローカルのネーム空間は
必ずしも用いられない。
【0296】次に、ステップ1625において、図21
に示すパスネーム置換サブルーチン1800が望ましく
は実行されて、ネーム空間読み出しサブルーチン170
0から返された「ネーム空間リスト」が分析され、この
特定のファイルを与えるサーバのネーム空間内の「fr
om」パスネーム及び「to」パスネームが、プロセス
のローカルのネーム空間全体の、完全なパスネームに置
換される。
【0297】なお、「ネーム空間リスト」内の「fro
m」パスネーム及び「to」パスネームはユーザまたは
プロセスのローカルのネーム空間に完全に指定されてい
るが、パスネーム置換サブルーチン1800の実行後
に、「ネーム空間リスト」内のエントリを更に分析して
各エントリが「連結」コマンド又は「マウント」コマン
ドに連関するかどうかを判断する必要がある。
【0298】更に又、エントリが「マウント」コマンド
の結果である場合、非核ファイルシステムのファイル樹
木が、ローカルのネーム空間に既にあるファイルにマウ
ントされている。したがって、図8(A)に関連して上
で述べたように、非核ファイルシステムとの通信リンク
をパイプ又はネットワーク接続を用いて設立する必要が
ある。
【0299】そこで、ステップ1630において、プロ
セス実行エクスポータ1600が、図22、図23
(A)、及び図23(B)に示すネーム空間パッケージ
化サブルーチン1900を実行する。
【0300】このネーム空間パッケージ化サブルーチン
1900は、「ネーム空間リスト」内のエントリを分析
して、ステップ1610において設立されたネットワー
ク接続を介して上記の選択されたcpuサーバ120に
送信するために、これらのエントリを「連結」コマンド
及び「マウント」コマンドのリストとして一体のパッケ
ージにまとめる(パッケージ化する)処理を行う。
【0301】加えて、「マウント」コマンドに対応する
「ネーム空間リスト」内の各エントリについてネーム空
間パッケージ化サブルーチン1900が、マウントされ
た非核ファイルシステムへの適切な通信リンクのアクセ
ス又は設立の仕方についての情報をcpuサーバ120
に供給する。
【0302】その後、ネーム空間パッケージ化サブルー
チン1900によって生成された「ネーム空間パッケー
ジリスト」が、ステップ1635において、この選択さ
れたcpuサーバ120に送信される。端末がローカル
のネーム空間の表現をcpuサーバ120にエクスポー
トし終った後に、ステップ1640において、プロセス
実行エクスポータ1600はファイルサーバとなり、ネ
ットワーク接続を介して受信されるcpuサーバ120
からの遠隔手順コール要求に応答する。
【0303】本質的に、プロセス実行エクスポータ16
00が、この選択されたcpuサーバ120に対してフ
ァイルサーバとして機能しているとき、プロセス実行エ
クスポータ1600は、cpuサーバ120のネーム空
間にマウントされている図8(A)に示す非核ファイル
システム750のような、非核ファイルシステムであ
る。
【0304】前に述べたように、ユーザが、集中計算ア
プリケーションのような処理タスクを、cpuサーバ1
20のような遠隔のプロセッサにエクスポートしたいと
望む場合、ユーザ端末105上で実行中のプロセス実行
エクスポータ1600がステップ1610において、c
puサーバ120のような選択された遠隔のプロセッサ
にダイヤルする。
【0305】望ましくは、cpuサーバ120は、図1
9に示すプロセス実行インポータ1650を有する。こ
のプロセス実行インポータ1650は、図19のステッ
プ1660に示すように、既知の仕方で、ネットワーク
を介して受信された通信を絶えずモニタして、到来する
接続要求を聞き取るためのプロセスを有する。
【0306】ユーザ端末105上で実行中のプロセス実
行エクスポータ1600から接続要求を受信すると、c
puサーバ120が望ましくは、端末105上でコマン
ドを処理するために、ステップ1662において、この
端末用の新たなプロセスグループを形成する。なお、プ
ロセスグループは、同じネーム空間を共用する1個以上
のプロセスからなる。
【0307】その後、ステップ1665においてcpu
サーバ120は、ステップ1635において端末によっ
て送信された「ネーム空間パッケージリスト」を待つ。
「ネーム空間パッケージリスト」を受信すると、プロセ
ス実行インポータ1650が、ステップ1670におい
て、端末のルートディレクトリを表す、ファイル記述子
「fd」によって特定されるチャネルを形成する。それ
から、プロセス実行インポータ1650は、ステップ1
675において、新たなネーム空間を形成し、古いネー
ム空間を廃棄する。
【0308】ステップ1670において形成された、端
末105のルートディレクトリを表すチャネルが望まし
くは、cpuサーバ120の新たなネーム空間で、端末
に割り当てられたネーム空間の一部分を表す位置「/m
nt/term」にマウントされる。
【0309】図5及び図8(A)に関連して上で述べた
ように、遠隔のファイルシステムのルートディレクトリ
を表すチャネルのマウント処理は望ましくは、cpuサ
ーバ120のマウントデバイス470をして、ユーザ端
末への通信リンクを表すマウントポイントを設立させ
る。図8(A)に示すチャネルデータ構造705が端末
105のルートディレクトリを表す。一方、非核ファイ
ルシステム750がユーザ端末105である。
【0310】その後、ステップ1685において、プロ
セス実行インポータ1650が、ステップ1665にお
いて端末から受信された「ネーム空間パッケージリス
ト」内の「連結」および「マウント」コマンドのリスト
を実行する。cpuサーバ120は、受信したネーム空
間を利用して、端末105のネーム空間にほぼ同一のネ
ーム空間を組み立てる。この仕方で、cpuサーバ12
0は、端末によって組み立てられたのと同じカスタム化
した構成図をこの分散形計算環境100について見るこ
とになる。
【0311】いい替えれば、プロセス実行インポータ1
650が端末105のネーム空間内にあったリソース
を、ステップ1675において形成された、新たなcp
uネーム空間内の同じ場所へ連結する。例えば、ユーザ
端末105上のマウス装置を表すファイル「/mnt/
term/dev/mouse」が、ファイル「/de
v/mouse」に連結される。
【0312】そして、cpuによる、ファイル「/de
v/mouse」にアクセスするための次の試みが、c
puサーバ120内のマウントデバイス470によっ
て、端末105に送られる遠隔手順コールメッセ−ジに
翻訳変換される。こうして、マウス及び表示モニタのよ
うな端末105上のローカルのリソースが、cpuサー
バ120上で端末105と同じネーム空間内の場所で実
行中のプロセスに見えるようになる。
【0313】端末から受信されたネーム空間パッケージ
がcpuサーバによって処理され終ると、プロセスは、
ステップ1690において、シェルプロセスを開始し
て、コマンドインタプリタを始める。プロセス実行イン
ポータ1650の実行は、ユーザによる「ファイルの終
了」コマンドの実行に続いて最後のチャネルを閉じると
きにステップ1695において終結する。
【0314】前に述べたように、プロセス実行エクスポ
ータ1600は、ステップ1620において、ネーム空
間読み出しサブルーチン1700を実行する。ネーム空
間読み出しサブルーチン1700は、マウントテ−ブル
800にアクセスして、ローカルのネーム空間の現在の
状態を形成するために実行された「連結」及び「マウン
ト」コマンドの各々に連関する「from」ファイルと
「to」ファイルとからなるネーム空間リストを生成す
る。
【0315】図20に示すように、ネーム空間読み出し
サブルーチン1700は、ステップ1705において、
例えばユーザまたはプロセスによるcpuコマンドの実
行時にプロセスに入って処理を開始する。ネーム空間読
み出しサブルーチン1700は、ステップ1710にお
いて、変数「ネーム空間リスト」を初期化する。この変
数を利用して、ネーム空間の現在の状態を表す、「連
結」及び「マウント」コマンドの各々に連関するパスネ
ームのリストが格納される。
【0316】その後、ネーム空間読み出しサブルーチン
1700は、ステップ1720において、要素860に
表示される最も低い「mountid」値を有するデー
タ構造850を求めてマウントテ−ブル800内のマウ
ント「to」データ構造850の各々を探索する。前に
述べたように、「mountid」値が、マウントテ−
ブル800に新たなエントリが付加される都度、増値さ
れ、マウントテ−ブル800のエントリがその形成され
た順に取り出せるようにするタイムスタンプとして機能
する。
【0317】それから、現在の「mountid」値に
対応するマウントテ−ブル800内のエントリが、ステ
ップ1730において、アクセスされる。ステップ17
40において望ましくは、マウントテ−ブル800内の
現エントリについての「ネーム空間リスト内にエントリ
を形成し、対応するマウント「from」データ構造か
ら取り出された、「他からマウントを受けた」チャネル
を指すポインタと、マウント「to」データ構造から取
り出された、マウントされたチャネル及びマウント順序
フラッグとを入れる。
【0318】その後、ステップ1760において、「他
からマウントを受けた」チャネル及びマウントされたチ
ャネルについて、「チャネル/パスネーム」コンバータ
2000が個別に実行され、「ネーム空間リスト」内の
形成されたエントリをこれらのファイルを提供するサー
バのネーム空間内のチャネルに対応するパスネームに置
換される。
【0319】ステップ1770において、マウントテー
ブル800内に点検評価すべきエントリがまだあるかど
うかを判断する点検が行われる。もしステップ1770
において、マウントテーブル800内に点検評価すべき
エントリがまだあると判断された場合、ステップ178
0において、次に最も低い「mountid」値につい
て探索が行われる。その後、プロセスはステップ173
0に戻って、上に述べた仕方で処理を継続する。
【0320】しかし、もしステップ1770において、
マウントテーブル800内に点検評価すべきエントリが
もはやないと判断された場合には、プロセスはステップ
1790において、呼び出し側のプロセス実行エクスポ
ータ1600に戻る。
【0321】前に述べたように、プロセス実行エクスポ
ータ1600は、ステップ1625において、パスネー
ム置換サブルーチン1800を実行して、ネーム空間読
み出しサブルーチン1700によって形成された「ネー
ム空間リスト」を分析し、それぞれのサーバのネーム空
間内の「from」パスネーム及び「to」パスネーム
をユーザまたはプロセスのローカルのネーム空間全体の
完全なパスネームに置換する。なお、「ネーム空間リス
ト」内の各エントリは、連関する「連結」又は「マウン
ト」コマンドに対応する1対の「from」パスネーム
及び「to」パスネームの要素からなる。
【0322】図21に示すように、パスネーム置換サブ
ルーチン1800はステップ1805でプロセスに入
る。その後、ステップ1810において、パスネーム要
素が「ネーム空間リスト」から取り出される。「ネーム
空間リスト」内のエントリで現パスネーム要素より先行
するものがもしあれば、その要素がステップ1815に
おいて取り出される。
【0323】ステップ1820において、非核ファイル
システムのネーム空間がマウントされたマウントポイン
トを一般に指定する現パスネーム要素のルートが、現前
回(現時点で(すぐ)前)のエントリ内の「from」
パスネーム要素に等しいかどうかを判断するための点検
が行われる。
【0324】もしステップ1820において、現パスネ
ーム要素のルートが、現前回のエントリ内の「fro
m」パスネーム要素に等しいと判断された場合、ステッ
プ1825において、現パスネーム要素のルートが、現
前回のエントリ内の、対応する「to」パスに置換され
る。
【0325】しかし、もしステップ1820において、
現パスネーム要素のルートが、現前回のエントリ内の
「from」パスネーム要素に等しくないと判断された
場合には、ステップ1830において、「ネーム空間リ
スト」内に、現パスネーム要素に対して点検評価すべき
前のエントリがまだあるかどうかを判断するための点検
が行われる。
【0326】もしステップ1830において、「ネーム
空間リスト」内に、現パスネーム要素に対して点検評価
すべき前のエントリがまだあると判断された場合、ステ
ップ1835において、現前回のエントリよりも次に前
の(より前の)エントリが「ネーム空間リスト」から取
り出される。その後、プロセスはステップ1820に戻
って、この、次に前のエントリを、上に述べた仕方で処
理する。
【0327】しかし、もしステップ1830において、
「ネーム空間リスト」内に、現パスネーム要素に対して
点検評価すべき前のエントリがもはやないと判断された
場合には、ステップ1840において、「ネーム空間リ
スト」内に点検評価すべきパスネーム要素がまだあるか
どうかを判断するための点検が行われる。
【0328】もしステップ1840において、「ネーム
空間リスト」内に点検評価すべきパスネーム要素がまだ
あると判断された場合、ステップ1845において、次
の要素が「ネーム空間リスト」から取り出される。その
後、プロセスはステップ1815に戻って、この、次の
パスネーム要素を、上に述べた仕方で処理する。
【0329】しかし、もしステップ1840において、
「ネーム空間リスト」内に点検評価すべきパスネーム要
素がもはやないと判断された場合には、プロセスはステ
ップ1850において、修正された「ネーム空間リス
ト」を呼び出し側のプロセス実行エクスポータ1600
に返す。
【0330】前に述べたように、プロセス実行エクスポ
ータ1600は、ステップ1630(図18)におい
て、ネーム空間パッケージ化サブルーチン1900を実
行して、「ネーム空間リスト」内のエントリを取り出
し、遠隔のcpuサーバに送信するために、これらのエ
ントリを「連結」コマンド及び「マウント」コマンドの
リストとしてパッケージ化する処理を行う。
【0331】図22に示すように、ネーム空間パッケー
ジ化サブルーチン1900は、ステップ1904におい
てプロセスに入る。ネーム空間パッケージ化サブルーチ
ン1900は、ステップ1908において、変数「ネー
ム空間パッケージリスト」を初期化する。この「ネーム
空間パッケージリスト」は、cpuサーバ120に送信
されることになる「連結」及び「マウント」コマンドの
リストを格納する。
【0332】ステップ1912において、望ましくは、
「ネーム空間リスト」内のエントリが取り出される。ス
テップ1916において、「他からマウントを受けた」
ファイルに対応する「from」パスネーム要素が点検
されて、「ネーム空間リスト内の現エントリの、「連
結」コマンド又は「マウント」コマンドとの連関の有無
が判断される。なお、「連結」コマンドは、この「fr
om」パスネームがマウントされたパイプ又はネットワ
ーク接続ではないことを検証することによって特定され
る。
【0333】なお又、マウントされたパイプ又はネット
ワーク接続に連関する「from」パスネームは、パイ
プ又はネットワーク接続を可能にするデバイスを有す
る。もしステップ1916において、「ネーム空間リス
ト」の現エントリが「連結」コマンドに対応すると判断
された場合、ステップ1920において「ネーム空間リ
スト」の現エントリから取り出された「from」及び
「to」パスネームからなる「連結」コマンドが「ネー
ム空間パッケージリスト」に付加される。その後、プロ
セスは下で述べるステップ1990に進む。
【0334】しかし、もしステップ1916において、
「ネーム空間リスト」の現エントリが「連結」コマンド
に対応しないと判断された場合、このエントリは「マウ
ント」コマンドに対応するに違いない。そして、「fr
om」パスネームは非核ファイルシステムへのパイプ又
はネットワーク接続を表す。それで、ステップ1924
において、この「from」パスネームが、マウントさ
れたパイプに現エントリが対応すると表示しているかど
うかを判断する点検が行われる。
【0335】なお、もしこの「from」パスネーム
が、マウントされたパイプを表示している場合、このパ
スネームは一般に、パイプを与える非核デバイスを有す
る。更に又、パイプは、下で述べるような、「/sr
v」ディレクトリに表示される、名前付きパイプの場
合、又名前付きでないパイプの場合が有り得る。
【0336】そして、もしステップ1924において、
この「from」パスネームが、マウントされたパイプ
に現エントリが対応すると表示していると判断された場
合、ステップ1928において、「qid」及び「種
類」の値が、この「他からマウントされた」「fro
m」パスネームに対応するチャネルから取り出される。
【0337】その後、ステップ1932において、「/
srv」ディレクトリ内のファイルが、同じ「qid」
及び「種類」の値を有するチャネルを指すかどうかを判
断するための点検が行われる。
【0338】もしステップ1932において、「/sr
v」ディレクトリ内のファイルが、同じ「qid」及び
「種類」の値を有するチャネルを指すと判断された場
合、パイプはネーム付きのパイプである。そして、ステ
ップ1936において、「マウント」コマンドが「ネー
ム空間パッケージリスト」に付加される。この「マウン
ト」コマンドは、「to」パスネームによって表示され
るファイルに、ファイル「/mnt/term/srv
/filename」が、マウントされるべきことを表
示するコマンドである。
【0339】又、「filename」は、ファイル
が、ステップ1932において特定された「/srv」
ディレクトリ内のファイルを示す。この仕方で、cpu
サーバ120が、表示された「マウント」コマンドを実
行するとき、ユーザ端末105上の同じパイプを利用し
て、このパイプを介してマウントされた非核ファイルシ
ステムがアクセスされる。
【0340】しかし、もしステップ1932において、
「/srv」ディレクトリ内のファイルが、同じ「qi
d」及び「種類」の値を有するチャネルを指さないと判
断された場合には、このパイプは名前付きではない。し
たがて、パイプを表すチャネルを指すポインタを格納す
るために、ステップ1940(図23(A))におい
て、ファイルが、或る特定のファイルネームを付けて形
成される。この方法により、パイプを有効に名前付きパ
イプにすることができる。
【0341】なお、推奨する「プラン9」形オペレーテ
ィングしにおいては、ファイル#Mnについて「開設」
コマンドを実行することにより(#Mはマウントデバイ
ス470(図5)を示し、nは現「qid」値に等し
い)、結果としてチャネル自体がパイプを表す。これ
は、「/rsv」ディレクトリ内の形成されたファイル
に掲示される。
【0342】その後、望ましくはステップ1948にお
いて、「マウント」コマンドが「ネーム空間パッケージ
リスト」に付加される。この「マウント」コマンドは、
「to」パスネームによって表示されるファイルに、フ
ァイル「/mnt/term/srv/filenam
e」が、マウントされるべきことを表示するコマンドで
ある。ここに、「filename」は、ステップ19
40において形成されたファイルを示す。
【0343】この仕方で、cpuサーバ120が、表示
された「マウント」コマンドを実行するとき、ユーザ端
末105上の同じパイプを利用して、このパイプを介し
てマウントされた非核ファイルシステムがアクセスされ
る。
【0344】しかし、ここで注記したいのは、ステップ
1940においてファイルを形成しようとする試みが核
400によっていつも許されるとは限らないことであ
る。例えばアクセス許可が変更される場合がある。その
ため、望ましくはステップ1952において、ステップ
1940におけるファイル形成の試みが核エラーに遭遇
しそのためファイル形成が不成功だったかどうかを判断
するための点検が行われる。
【0345】もしステップ1952において、ステップ
1940におけるファイル形成の試みが核エラーに遭遇
しなかったと判断された場合、ファイル形成は成功で、
プロセスは下で述べるステップ1990(図22)に進
む。
【0346】しかし、もしステップ1952において、
ステップ1940におけるファイル形成の試みが核エラ
ーに遭遇したと判断された場合には、ファイル形成は不
成功だった。したがって、望ましくはステップ1956
において、「/mnt/term」が、「ネーム空間リ
スト」の現エントリ内の「from」パスネームに付随
される。
【0347】その後、望ましくは「連結」コマンドがス
テップ1960において「ネーム空間パッケージリス
ト」に付加される。この「連結」コマンドは、付随の
「from」パスネームが、「to」パスネームによっ
て表示されるファイルに連結されるべきことを表示する
コマンドである。
【0348】加えて、図19に関連して下で述べるよう
にプロセス実行インポータ1650がステップ1680
において、cpuサーバ120のネーム空間内の「/m
nt/term」に、端末のルートディレクトリを表す
チャネルをマウントする。
【0349】そして、cpuサーバ120が、付随しな
い「from」パスネームによって表示されるファイル
へのアクセスを試みる場合、これが、付随する「fro
m」パスネームによって表されるファイルへのアクセス
に翻訳変換され、「/mnt/term」に連関するマ
ウントポイントを介してユーザ端末105へ行くことに
なる。その後、プロセスは下で述べるステップ1990
(図22)に進む。
【0350】前に述べたように、ステップ1924(図
22)において、「from」パスネームが、マウント
されたパイプに現エントリが対応することを表示してい
るかどうかを判断するための点検が行われる。もしステ
ップ1924において、「from」パスネームが、マ
ウントされたパイプに対応せず、ネットワーク接続に対
応すると判断された場合、プロセスはステップ1964
(図23(B))に進む。
【0351】なお、もし「from」パスネームがネッ
トワーク接続を表す場合には、それは、図10(B)に
関連して上で述べたように、「/net/il/2/d
ata」の形式となろう。更に又注記したいのは、同じ
ディレクトリ内の遠隔のファイルがコマンドのネットワ
ーク接続に対応するネットワーク宛先アドレスを格納し
ていることである。
【0352】そして、ステップ1964において、「f
rom」パスネームが、「データ」ファイルから「遠
隔」ファイルへ翻訳変換される。なお、「データ」ファ
イルパスネームが与えられると、「遠隔」ファイルへの
変更は単に辞書的である。いい替えれば、「/net/
il/2/data」のようなパスネームで始め、最後
の斜線文字「/」において語「データ」の「遠隔」への
置換を開始する。
【0353】その後、ステップ1968において、「遠
隔」ファイルの内容が取り出される。「遠隔」ファイル
から取り出されたネットワーク宛先アドレスが、それか
らステップ1972において、図10(A)に関連して
上で述べたように、ネットワークデータベース900を
用いて、対応する「マシンネーム及びサービス」に変換
される。
【0354】その後、ステップ1976において、「マ
ウント」コマンドが「ネーム空間パッケージリスト」に
付加される。この「マウント」コマンドは、表示された
「マシンネーム及びサービス」(machine!se
rvice)を「to」パスネームによって指定された
ファイルにマウントするように、cpuサーバ120に
命令するコマンドである。その後、プロセスは、下で述
べるステップ1990(図22)に進む。
【0355】「ネーム空間リスト」からの現エントリ
が、いま述べた仕方で「ネーム空間パッケージリスト」
にパッケージ化されると、ステップ1990において、
「ネーム空間リスト」内にパッケージ化すべきエントリ
がまだあるかどうかを判断するための点検が行われる。
もしステップ1990において、「ネーム空間リスト」
内にパッケージ化すべきエントリがまだあると判断され
た場合、プロセスはステップ1912に戻って、上に述
べた仕方で残りのエントリを処理する。
【0356】しかし、もしステップ1990において、
「ネーム空間リスト」内にパッケージ化すべきエントリ
がもはやないと判断された場合、プロセスはステップ1
995において、呼び出し側のプロセス実行エクスポー
タ1600にもどる。
【0357】前に述べたように、図12に関連して上で
述べた、各チャネルに連関するパスデータ構造1140
が、与えられたチャネルのパスネームの生成を可能にす
るパス情報を供給する。
【0358】上で述べたように、ネーム空間読み出しサ
ブルーチン1700がステップ1760(図20)にお
いて、「チャネル/パスネーム」コンバータ2000を
実行して、与えられたチャネルを、対応するファイルを
提供するサーバのネーム空間内のチャネルに対応するパ
スネームに置換する。図24に示すように、「チャネル
/パスネーム」コンバータ2000は、ステップ200
5において、分析すべきチャネルを指すポインタを受信
してプロセスに入り、処理を開始する。
【0359】その後、ステップ2010において、「チ
ャネル/パスネーム」コンバータ2000が、この受信
されたポインタによって特定されたチャネルにアクセス
する。そして、ステップ2015において、パス構造1
140を指すポインタ640(図7)が、チャネル60
0のようなチャネルデータ構造から取り出される。この
ポインタ640に従って行くと、連関するパス構造11
40に到達する。
【0360】ステップ2020において、変数「パスネ
ーム」が最初に、パスデータの要素1142から取り出
されたファイルネームにセットされる。その後、ステッ
プ2025において、親のファイルに対応するパスデー
タ構造を指すポインタ1144(図12(C))が取り
出される。ポインタ1144に従うことによって、表示
されたパスデータ構造1140に到達する。
【0361】ステップ2025において取り出された親
のパス構造を指すポインタ1144が、サーバ樹木パス
テ−ブル1100(図12(A))の要素に表示される
ルートディレクトリに連関するパスデータ構造を指すポ
インタに等しいかどうか、いい替えれば、ルートディレ
クトリに到達したかどうか、を判断するための点検がス
テップ2030において行われる。
【0362】もしステップ2030において、ステップ
2025において取り出された親のパス構造を指すポイ
ンタが、ルートディレクトリに連関するパスデータ構造
を指すポインタに等しくないと判断された場合、現パス
ネームには取得すべき要素がまだあることになる。
【0363】したがって、ステップ2025においてア
クセスされたパス構造に表示されるファイルネームが、
ステップ2035において、変数「パスネーム」の先頭
に、斜線文字で区分けして付随される。その後、プロセ
スはステップ2025に戻って、パスネーム内の残りの
要素を上に述べた仕方で処理する。
【0364】もしステップ2030において、ステップ
2025において取り出された親のパス構造を指すポイ
ンタが、ルートディレクトリに連関するパスデータ構造
を指すポインタに等しいと判断された場合には、それぞ
れのファイルサーバのルートディレクトリまでパスの全
行程をさかのぼってルートディレクトリに到達したこと
になる。そしてステップ2040において、斜線文字
「/」が変数「パスネーム」の先頭に付随される。要素
が全て処理されたので、プロセスはステップ2050に
おいて呼び出し側のネーム空間読み出しサブルーチン1
700に戻る。
【0365】以上の説明は、本発明の実施例及びその改
変例に関するもので本発明の原理を例示したものに過ぎ
ず、この技術分野の当業者であれば、本発明の種々の変
形例を考え得るが、それらはいずれも本発明の技術的範
囲に包含される。
【0366】
【発明の効果】以上述べたごとく、本発明によれば、複
数のコンピュータ及びネットワークにかけて分散された
分散形計算環境において、或る場所に所在する第1のプ
ロセッサが、中央処理装置のような遠隔のプロセッサを
呼び出して処理タスクを実行させることができる。
【0367】その際に、本発明によれば、従来技術で難
点のあった、個々のユーザ又はプロセスによってカスタ
マイズ化されたネーム空間、に対する対応が容易となる
ので、遠隔のプロセッサが、第1のプロセッサから受信
したネーム空間表現に基づいて修正されたネーム空間上
でこの処理タスクを実行することが可能となる。したが
って、分散形計算環境におけるタスク処理の効率を増大
できる。
【図面の簡単な説明】
【図1】本発明の機能を実現するのに適した分散形計算
環境を示す説明図である。
【図2】図1の分散形計算環境においてユーザ端末とし
て作動する汎用計算システムに関する説明図である。図
2(A)に、同汎用計算システムの等角図を示し、図2
(B)に、図2(A)の汎用計算システムに関連して利
用されるマイクロプロセッサ処理システムのブロック図
を示す。
【図3】ネーム空間を示す説明図である。図3(A)
に、1個のユーザ端末と2個のファイルサーバとの個別
ネーム空間を示し、図3(B)に、これら2個のファイ
ルサーバのファイル樹木からなる、図3(A)のユーザ
のカスタム化されたネーム空間を示す。
【図4】本発明の機能を組み込んだオペレーティングシ
ステムに関する説明図である。図4(A)に、本発明の
機能を組み込んだオペレーティングシステムの核を示
し、図4(B)に、デバイスに特定の手順コールを指す
ポインタのアレイを格納するために図4(A)の核が用
いるのに適したデバイステ−ブルを示す。
【図5】図1の分散計算環境における、核によって実現
されないデバイス(非核デバイス)へのインタフェ−ス
として図4(A)の核が用いるのに適した核マウントデ
バイスを示す説明図である。
【図6】特定のプロセスについてのファイルアクセス情
報を格納するのに適した、プロセスデータ構造及びファ
イル記述子アレイの部分図である。
【図7】特定のファイルを表現するため及びそのファイ
ルに関連する情報を格納するために図4(A)の核によ
って利用される、チャネルデータ構造を示す説明図であ
る。
【図8】データ構造に関連する説明図である。図8
(A)に、特定の非核ファイルシステムに対する図5の
マウントポイントを共に形成する複数の関連データ構造
を示す。図8(B)に、ユーザまたはプロセスのネーム
空間を形成する「bind」(バインド)(連結)コマ
ンド及び「mount」(マウント)(搭載)コマンド
のシーケンスを格納するのに適した、マウントテ−ブル
及び連関するデータ構造を示す。
【図9】図8(B)のマウントテ−ブル内のエントリを
共に形成するマウント「from」データ構造と少なく
とも1個のマウント「to」データ構造とを示す説明図
である。
【図10】ネットワークデータベースに関連する説明図
である。図10(A)に、図1の分散形計算環境におけ
る複数のマシンについてのネットワーク宛先アドレス情
報を格納するのに適した、ネットワークデータベースを
示す。図10(B)に、ネットワークに関連するユーザ
またはプロセスのネーム空間の一部分を示す。
【図11】図5に示す非核ファイルシステムへの各通信
リンクについてのファイルを格納するのに適した、ユー
ザまたはプロセスのネーム空間内のディレクトリを示す
説明図である。
【図12】サーバ樹木パスに関連する説明図である。図
12(A)に、図5に示す非核ファイルシステムの樹木
内のファイルの各々についてのパス情報を格納するのに
適した、サーバ樹木パステ−ブルを示す。図12(B)
に、図5に示す非核ファイルシステムの樹木内のファイ
ルの各々についてのパスデータ構造を指すポインタを格
納するのに適した、サーバ樹木パスリストを示す。図1
2(C)に、特定のファイルについてのパス情報を格納
するのに適した、パスデータ構造を示す。
【図13】与えられたパスネームを、チャネルとして表
現される、運用すべき適切なファイル類似の対象物に翻
訳するのに利用されるパスネームからチャネルへの変換
用のソフトウエアである「パスネーム/チャネル」コン
バータについて説明する流れ図の一部である。図14と
共に本流れ図の完体を構成する。
【図14】与えられたパスネームを、チャネルとして表
現される、運用すべき適切なファイル類似の対象物に翻
訳するのに利用される「パスネーム/チャネル」コンバ
ータについて説明する流れ図の一部である。図13と共
に本流れ図の完体を構成する。
【図15】ファイル樹木の1つのレベルから別のレベル
へ移動するために利用される「walk」(ウオーク)
機能について説明する流れ図である。
【図16】特定のファイルについての与えられたデバイ
スのディレクトリをサーチするために図15の「ウオー
ク」機能によって利用されるデバイスウオーク・サブル
ーチンについて説明する流れ図である。
【図17】或る特定のチャネルが「他からマウントを受
けて」いるかどうかを判断するために、そしてもしそう
なら、必要なチャネル置換を行うために、図8Bのマウ
ントテ−ブルにアクセスするのに利用される「domo
unt」(ドゥーマウント)機能について説明する流れ
図である。
【図18】処理タスクをエクスポートする際に、処理タ
スクを、エクスポートする側のユーザ又はプロセスのネ
ーム空間の正確な表現と共に遠隔のプロセッサへエクス
ポートするのに利用されるプロセス実行エクスポータに
ついて説明する流れ図である。
【図19】図18においてエクスポートされる処理タス
クを移入(インポート)するため及びエクスポートする
側のユーザまたはプロセスのネーム空間を再生成するた
めに図18のプロセス実行エクスポータに協力するプロ
セス実行インポータについて説明する流れ図である。
【図20】エクスポートする側のユーザまたはプロセス
のネーム空間を形成する「連結」コマンド及び「マウン
ト」コマンドのリストを生成するために図18のプロセ
ス実行エクスポータが図8(B)のマウントテ−ブルに
アクセスするのに利用されるネーム空間読み出しサブル
ーチンについて説明する流れ図である。
【図21】図20のネーム空間読み出しサブルーチンに
よって生成された「連結」コマンド及び「マウント」コ
マンドのリストを分析するため、及びファイルを供給す
るサーバのネーム空間内のパスネームを図18のプロセ
ス実行エクスポータのネーム空間全体の中の完全なパス
ネームに置換するために図18のプロセス実行エクスポ
ータによって利用される、パスネーム置換サブルーチン
について説明する流れ図である。
【図22】遠隔のプロセッサへ送信するために図21の
パスネーム置換サブルーチンによって修正変更される
「連結」コマンド及び「マウント」コマンドのリストを
パッケージ化するために図18のプロセス実行エクスポ
ータによって利用される、ネーム空間パッケージサブル
ーチンについて説明する流れ図の一部である。図23
(A)及び図23(B)と共に本流れ図の完体を構成す
る。
【図23】遠隔のプロセッサへ送信するために図21の
パスネーム置換サブルーチンによって修正変更される
「連結」コマンド及び「マウント」コマンドのリストを
パッケージ化するために図18のプロセス実行エクスポ
ータによって利用される、ネーム空間パッケージサブル
ーチンについて説明する流れ図の一部で、図23(A)
及び図23(B)からなる。図22と共に本流れ図の完
体を構成する。
【図24】ファイルを表すチャネルをそのファイルの、
対応するパスネームに置換するために図20のネーム空
間読み出しサブルーチンによって利用される「チャネル
/パスネーム」コンバータについて説明する流れ図であ
る。
【符号の説明】
100 分散形計算環境 105〜110、305 ユーザ端末 120〜121 中央処理装置(CPU)サーバ 130、131、310、315 ファイルサーバ 150 通信ネットワーク 200 汎用計算システム 202 外部ディスクドライブ 203 ハードディスクドライブ 204 表示モニタ 205 キーボード 206 処理装置 207 メモリ装置 208 マウス 209 ネットワークインタフェ−ス 224、270 バス 250 制御装置 255 算術論理装置 260 ローカルメモリ装置 275 オペレーティングシステムプログラムコード 320 最小デフォルトネーム空間 325、330 ネーム空間 340 ネットワーク 400 核 410 プロセスマネージャ 420 ネーム空間マネージャ 450 デバイステ−ブル 470 核マウントデバイス 472〜474 マウントポイント 476〜478 通信リンク 480〜482 非核ファイルシステム 500 ファイル記述子アレイ 502、504 縦列 520〜522 チャネル(チャネルデータ構造) 550 プロセスデータ構造 555、560、565、605、610、615、6
20、625、630、635、640 要素(エント
リ) 600 チャネルデータ構造(チャネル) 645 基準カウンタ 705、730 チャネルデータ構造(又はチャネル) 710 マウントポイントデータ構造(又は、マウント
ポイント) 712 チャネルデータ構造ポインタ(又はポインタ) 714 待ち行列 716 ポインタ 740 通信リンク 750 非核ファイルシステム 800 マウントテ−ブル 805、810 縦列 815、820、825 横列 826、880 リンクされたデータ構造リスト 828、829 ポインタ 830 マウント「from」リンクリストデータ構造 832、837 マウント「from」データ構造 840、845、848 エントリ 850 マウント「to」リンクリストデータ構造 855、860、865、870、875 要素 900 ネットワークデータベース 950 ネーム空間 1000 ディレクトリ 1100 サーバ樹木パステ−ブル 1102 ポインタ 1126 リンクされたリスト 1140 パスデータ構造 1142、1144 エントリ 1146 基準カウンタ 1148 ポインタ 1200 「パスネーム/チャネル」コンバータ 1245 「パスネーム/チャネル」コンバータの第3
の部分 1300 「walk」(ウオーク)機能 1400 デバイスウオークサブルーチン 1500 「domount」(ドゥーマウント)機能 1600 プロセス実行エクスポータ 1650 プロセス実行インポータ 1700 ネーム空間読み出しサブルーチン 1800 パスネーム置換サブルーチン 1900 ネーム空間パッケージ化サブルーチン 2000 「チャネル/パスネーム」コンバータ

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 分散形計算システム内の第1のプロセッ
    サによって行われる、遠隔のプロセッサ上での処理タス
    クの実行を呼び出すための方法であって、該処理タスク
    が、該第1のプロセッサに連関する第1のネーム空間に
    おいて動作し、該第1のネーム空間が、複数のネーム空
    間修正コマンドによって形成される、ようにした処理タ
    スク実行呼び出し方法において、 該方法が、 前記第1のプロセッサと前記遠隔のプロセッサとの間に
    通信リンクを設立するステップと、 前記第1のネーム空間を形成する前記複数のネーム空間
    修正コマンドを特定するステップであって、特定された
    該複数のネーム空間修正コマンドが少なくとも1個の動
    的ネーム空間修正コマンドからなるようにした、前記複
    数のネーム空間修正コマンドを特定するステップと、 前記複数のネーム空間修正コマンドに基づいて修正され
    たネーム空間上で前記遠隔のプロセッサによって前記処
    理タスクを実行するために、前記複数のネーム空間修正
    コマンドを前記遠隔のプロセッサへ送信するステップ
    と、からなることを特徴とする、処理タスク実行呼び出
    し方法。
  2. 【請求項2】 前記方法において、 もし、前記複数のネーム空間修正コマンドのうちの1個
    のネーム空間修正コマンドに、リソースのファイルシス
    テムを前記第1のネーム空間内の指示された部分へマウ
    ントする動作が含まれる場合に、該1個のネーム空間修
    正コマンドに、該マウントされたリソースにアクセスす
    るために前記遠隔のプロセッサが利用する通信リンクを
    特定する動作が含まれるようにしたことを特徴とする請
    求項1の方法。
  3. 【請求項3】 前記方法において、 前記特定された通信リンクが、もし前記マウントされた
    ファイルシステムが前記第1のプロセッサと同じネット
    ワークノード上のリソースによって供給される場合に前
    記リソースと通信するために前記第1のプロセッサが利
    用するプロセス間通信パイプである、ようにしたことを
    特徴とする請求項2の方法。
  4. 【請求項4】 前記方法において、 前記特定された通信リンクが、もし前記マウントされた
    ファイルシステムが前記第1のプロセッサと異なるネッ
    トワークノード上のリソースによって供給される場合に
    前記遠隔のプロセッサが前記リソースへのネットワーク
    接続を設立すべきことを表示する、ようにしたことを特
    徴とする請求項2の方法。
  5. 【請求項5】 前記方法において、 前記複数のネーム空間修正コマンドの各々が、マウント
    テ−ブルのエントリに格納され、該マウントテ−ブル内
    の該エントリの各々が、該エントリが形成された順序を
    表示する値を有し、 前記第1のネーム空間を形成する前記複数のネーム空間
    修正コマンドを特定する前記ステップが、前記マウント
    テ−ブルエントリから前記ネーム空間修正コマンドを、
    それらのコマンドが実行された順に取り出す、ようにし
    たことを特徴とする請求項1の方法。
  6. 【請求項6】 前記方法が更に、 前記第1のプロセッサと同じネットワークノード上に常
    駐するファイルについて、前記遠隔のプロセッサから前
    記第1のプロセッサによって受信されたファイル動作要
    求を前記遠隔のプロセッサに協力して処理するステップ
    からなるようにしたことを特徴とする請求項1の方法。
  7. 【請求項7】 分散形計算システム内の遠隔のプロセッ
    サによって行われる、第1のプロセッサから受信され呼
    び出された処理タスクを実行するための方法であって、
    該処理タスクが、該第1のプロセッサに連関する第1の
    ネーム空間において動作し、該第1のネーム空間が、複
    数のネーム空間修正コマンドによって形成され、該遠隔
    のプロセッサが第2のネーム空間を有する、ようにした
    処理タスク実行方法において、 該方法が、 前記第1のプロセッサからの接続要求を処理するステッ
    プと、 前記呼び出された処理タスクを実行するためのプロセス
    を前記遠隔のプロセッサ上に割り当てるステップと、 前記第1のネーム空間を形成する前記複数のネーム空間
    修正コマンドを前記第1のプロセッサから受信するステ
    ップであって、受信された該複数のネーム空間修正コマ
    ンドが少なくとも1個の動的ネーム空間修正コマンドか
    らなる、ようにした受信するステップと、 前記第1のプロセッサへの通信リンクを設立するステッ
    プと、 前記第2のネーム空間内の予め定められた場所に前記第
    1のプロセッサへの前記通信リンクをマウントするステ
    ップと、 前記第2のネーム空間を修正するために、受信された前
    記複数のネーム空間修正コマンドを実行するステップ
    と、 前記呼び出された処理タスクを、前記修正された第2の
    ネーム空間上で実行するステップと、からなることを特
    徴とする、処理タスク実行方法。
  8. 【請求項8】 前記方法において、 もし、前記複数のネーム空間修正コマンドのうちの1個
    のネーム空間修正コマンドに、リソースのファイルシス
    テムを前記ネーム空間内の指示された部分へマウントす
    る動作が含まれる場合に、該1個のネーム空間修正コマ
    ンドに、該マウントされた特定のリソースにアクセスす
    るために前記遠隔のプロセッサが利用する通信リンクを
    特定する動作が含まれるようにしたことを特徴とする請
    求項7の方法。
  9. 【請求項9】 前記方法において、 前記特定された通信リンクが、もし前記マウントされた
    ファイルシステムが前記第1のプロセッサと同じネット
    ワークノード上のリソースによって供給される場合に前
    記リソースと通信するために前記第1のプロセッサが利
    用するプロセス間通信パイプである、ようにしたことを
    特徴とする請求項8の方法。
  10. 【請求項10】 前記方法において、 前記特定された通信リンクが、もし前記マウントされた
    ファイルシステムが前記第1のプロセッサと異なるネッ
    トワークノード上のリソースによって供給される場合
    に、前記遠隔のプロセッサが前記マウントされたリソー
    スへのネットワーク接続を設立すべきことを表示する、
    ようにしたことを特徴とする請求項8の方法。
  11. 【請求項11】 前記方法が更に、 前記第1のプロセッサと同じネットワークノード上に常
    駐するファイルについて、ファイル動作要求を前記第1
    のプロセッサへ送信するステップからなるようにしたこ
    とを特徴とする請求項7の方法。
  12. 【請求項12】 複数のリソースからなる分散形計算シ
    ステムのノード内にネーム空間情報を格納するための装
    置であって、該リソースの各々が階層形ファイルシステ
    ムとして表現され、該ネーム空間が、該ネーム空間に1
    個以上のネーム空間修正コマンドによって加えられた少
    なくとも1個の該リソース階層形ファイルシステムから
    なり、該ネーム空間がプロセス毎に修正可能であるよう
    にした、ネーム空間情報格納装置において、 該装置が、 前記ネーム空間修正コマンドによって前記ネーム空間内
    の指示された部分に加えられた前記リソース階層形ファ
    イルシステムの各々についての表示を格納するためのマ
    ウントテ−ブルと、 前記ネーム空間に加えられた前記リソース階層形ファイ
    ルシステムの各々に連関するサーバ樹木パステ−ブルで
    あって、該サーバ樹木パステ−ブルが、前記連関するリ
    ソース階層形ファイルシステム内の前記ファイルの各々
    についてのパス情報を供給し、該パス情報が、前記リソ
    ース階層形ファイルシステムの階層の再形成を可能に
    し、前記ファイルの各々についてのパス情報が、前記連
    関するファイルのネームと、前記連関するファイルの前
    記階層内の親のファイルの表示とからなるようにした、
    サーバ樹木パステ−ブルと、からなることを特徴とす
    る、ネーム空間情報格納装置。
  13. 【請求項13】 前記装置において、 前記マウントテ−ブルが、前記ネーム空間修正コマンド
    の各々についてのエントリからなり、前記マウントテ−
    ブル内の各エントリが、該エントリが形成された順序を
    表示する値からなる、ようにしたことを特徴とする請求
    項12の装置。
  14. 【請求項14】 前記装置において、 前記マウントテ−ブルが、前記ネーム空間修正コマンド
    の各々についてのエントリからなり、前記マウントテ−
    ブル内の各エントリが、前記ネーム空間内の第1のファ
    イルの解釈が第2のファイルに翻訳されるべきことを表
    示する、ようにしたことを特徴とする請求項12の装
    置。
  15. 【請求項15】 前記装置において、 前記サーバ樹木パステ−ブルが、複数のパスデータ構造
    にアクセスするための少なくとも1個のポインタを有
    し、該複数のパスデータ構造の各々が、前記連関するリ
    ソース階層形ファイルシステム内の1個のファイルに連
    関し且つ前記ファイルネームと前記親情報とを格納す
    る、ようにしたことを特徴とする請求項12の装置。
  16. 【請求項16】 分散形計算システムにおける与えられ
    たチャネルに連関するパスネームを特定するための方法
    であって、該分散形計算システムが、複数の分散形リソ
    ースを有し、該複数の分散形リソースの各々が、1個以
    上のファイルからなる階層形ファイルシステムとして表
    され、1個以上の該階層形ファイルシステムの集合がネ
    ーム空間を形成し、該階層形ファイルシステムの各々
    が、ルートディレクトリを有し、該チャネルの各々が、
    該ネーム空間内の与えられたファイルを表し、該ファイ
    ルの各々が、英数字ラベルからなるファイルネームを表
    し、該パスネームが、該階層形ファイルシステムを通る
    該ルートディレクトリから該ファイルへのパスを指定す
    ることによって該ファイルを特定するようにした、分散
    形計算システムにおけるパスネームを特定するための方
    法において、 該方法が、 前記チャネルの各々に1個のパスデータ構造を連関させ
    るステップであって、該パスデータ構造が、該連関する
    ファイルのファイルネームと前記ネーム空間階層内の親
    のファイルに連関する前記パスデータ構造を指すポイン
    タとを格納するようにした、連関させるステップと、 パスネームを特定されるべきチャネルの表示を受信する
    ステップと、 前記表示されたチャネルに連関するパスデータ構造を特
    定するステップと、 前記特定されたパスデータ構造から、前記ファイルネー
    ムと前記親のファイルに連関する前記パスデータ構造を
    指すポインタとを取り出すステップと、 前記親のファイルに連関する前記パスデータ構造を指す
    前記取り出されたポインタに従うとともに、前記階層形
    ファイルシステムの前記ルートディレクトリに到達する
    まで前記の、本ステップの前のステップを反復するステ
    ップであって、前記パスデータ構造から取り出された前
    記ファイルネームの各々が、前記表示されたチャネルに
    連関する前記生成されたパスネームの先頭部に付けられ
    るようにした、ポインタに従うとともに反復するステッ
    プと、からなることを特徴とする、パスネームを特定す
    るための方法。
JP8094250A 1995-04-17 1996-04-16 分散形システムでの処理タスク実行呼び出し方法及び装置 Pending JPH08339355A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US424137 1982-09-27
US08/424,137 US5724512A (en) 1995-04-17 1995-04-17 Methods and apparatus for storage and retrieval of name space information in a distributed computing system

Publications (1)

Publication Number Publication Date
JPH08339355A true JPH08339355A (ja) 1996-12-24

Family

ID=23681603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8094250A Pending JPH08339355A (ja) 1995-04-17 1996-04-16 分散形システムでの処理タスク実行呼び出し方法及び装置

Country Status (6)

Country Link
US (1) US5724512A (ja)
EP (2) EP0738970A1 (ja)
JP (1) JPH08339355A (ja)
CA (1) CA2172644C (ja)
DE (1) DE69625724D1 (ja)
MX (1) MX9601398A (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001517836A (ja) * 1997-09-19 2001-10-09 マイクロソフト コーポレイション 1つの記憶媒体の名称空間を別の記憶媒体の名称空間に移植する場合に既定のアクションを実行するシステムおよび方法
JP2005502096A (ja) * 2001-01-11 2005-01-20 ゼット−フォース コミュニケイションズ インコーポレイテッド ファイルスイッチ及び交換ファイルシステム
US7383288B2 (en) 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US7512673B2 (en) 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
USRE47019E1 (en) 2010-07-14 2018-08-28 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996023317A1 (en) * 1995-01-23 1996-08-01 Tandem Computers Incorporated A method for accessing a file in a multi-processor computer system using pipes and fifos
SE504523C2 (sv) * 1995-06-19 1997-02-24 Ericsson Telefon Ab L M Anordning och metod för att länka kunder till servrar under körtid i ett distribuerat telekommunikationsnätverk
US5953514A (en) * 1995-10-23 1999-09-14 Apple Computer, Inc. Method and apparatus for transparent remote execution of commands
US6424988B2 (en) * 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US6151686A (en) * 1997-06-06 2000-11-21 Fmr Corp. Managing an information retrieval problem
US6046747A (en) * 1997-08-04 2000-04-04 Hewlett-Packard Company Graphics application programming interface avoiding repetitive transfer of texture mapping data
US5991777A (en) 1997-09-19 1999-11-23 Microsoft Corporation System and method for performing defined actions when grafting the name space of one storage medium into the name space of another storage medium
US6032191A (en) * 1997-10-28 2000-02-29 International Business Machines Corporation Direct coupling for data transfers
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6377937B1 (en) 1998-05-28 2002-04-23 Paskowitz Associates Method and system for more effective communication of characteristics data for products and services
US6654881B2 (en) * 1998-06-12 2003-11-25 Microsoft Corporation Logical volume mount manager
US6496839B2 (en) 1998-06-12 2002-12-17 Microsoft Corporation Persistent names for logical volumes
US6119131A (en) * 1998-06-12 2000-09-12 Microsoft Corporation Persistent volume mount points
US20040019560A1 (en) * 1999-03-12 2004-01-29 Evans Scott L. System and method for debt presentment and resolution
US6546415B1 (en) * 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
US6535867B1 (en) * 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
US6684231B1 (en) * 1999-11-29 2004-01-27 Microsoft Corporation Migration of friendly volumes
US6553387B1 (en) * 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US6633879B1 (en) * 2000-01-04 2003-10-14 International Business Machines Corporation Method and system for optimizing direct tables and trees
US6195650B1 (en) * 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
US6721880B1 (en) 2000-05-31 2004-04-13 Lucent Technologies Inc. Method and apparatus for maintaining configuration information in a computing environment
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US20020059377A1 (en) * 2000-11-14 2002-05-16 Jagadish Bandhole Collaborative computing systems using dynamic computing environments
US20020069238A1 (en) * 2000-12-05 2002-06-06 Eard Douglas F. Technique to transfer data over a network
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US6766314B2 (en) * 2001-04-05 2004-07-20 International Business Machines Corporation Method for attachment and recognition of external authorization policy on file system resources
US7185013B2 (en) * 2001-04-12 2007-02-27 International Business Machines Corporation Method for constructing and caching a chain of file identifiers and enabling inheritance of resource properties in file systems
SG103289A1 (en) * 2001-05-25 2004-04-29 Meng Soon Cheo System for indexing textual and non-textual files
US6745192B1 (en) * 2001-08-03 2004-06-01 Networks Associates Technology Inc. System and method for providing a multi-tiered hierarchical transient message store accessed using multiply hashed unique filenames
US7117533B1 (en) 2001-08-03 2006-10-03 Mcafee, Inc. System and method for providing dynamic screening of transient messages in a distributed computing environment
JP2003099341A (ja) * 2001-09-20 2003-04-04 Canon Inc ネットワークデバイス管理装置、管理システム及び管理方法、並びにネットワークデバイス
US8621077B2 (en) * 2001-09-21 2013-12-31 Mcafee, Inc. Distribution of security policies for small to medium-sized organizations
JP3798709B2 (ja) * 2002-02-22 2006-07-19 トヨタ自動車株式会社 サーバ、情報提供方法およびプログラム
US7890554B2 (en) * 2002-03-14 2011-02-15 International Business Machines Corporation Apparatus and method of exporting file systems without first mounting the file systems
US20030182424A1 (en) * 2002-03-22 2003-09-25 Steve Odendahl Scriptable proxy server
US20040003084A1 (en) * 2002-05-21 2004-01-01 Malik Dale W. Network resource management system
US7136858B2 (en) * 2002-05-21 2006-11-14 Bellsouth Intellectual Property Corporation Network update manager
US7263535B2 (en) * 2002-05-21 2007-08-28 Bellsouth Intellectual Property Corporation Resource list management system
US7877511B1 (en) 2003-01-13 2011-01-25 F5 Networks, Inc. Method and apparatus for adaptive services networking
US7716187B2 (en) * 2003-05-21 2010-05-11 Microsoft Corporation System and method for transparent storage reorganization
JP4349871B2 (ja) * 2003-09-09 2009-10-21 株式会社日立製作所 ファイル共有装置及びファイル共有装置間のデータ移行方法
US7984184B2 (en) * 2003-10-22 2011-07-19 Leica Geosystems Ag Method and apparatus for managing information exchanges between apparatus on a worksite
US8108483B2 (en) * 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7882147B2 (en) * 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7584220B2 (en) * 2004-10-01 2009-09-01 Microsoft Corporation System and method for determining target failback and target priority for a distributed file system
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US7885970B2 (en) * 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US20060167838A1 (en) * 2005-01-21 2006-07-27 Z-Force Communications, Inc. File-based hybrid file storage scheme supporting multiple file switches
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) * 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US20070078910A1 (en) * 2005-09-30 2007-04-05 Rajendra Bopardikar Back-up storage for home network
US7603359B2 (en) 2006-01-17 2009-10-13 International Business Machines Corporation Method and apparatus for maintaining federated name context bindings in a name space
US8417746B1 (en) 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US8660941B2 (en) * 2006-09-26 2014-02-25 Collections Marketing Center, Inc. Method and system for providing a multi-channel virtual collections center
WO2008130983A1 (en) * 2007-04-16 2008-10-30 Attune Systems, Inc. File aggregation in a switched file system
US7930327B2 (en) * 2007-05-21 2011-04-19 International Business Machines Corporation Method and apparatus for obtaining the absolute path name of an open file system object from its file descriptor
US7950019B2 (en) * 2007-05-21 2011-05-24 International Business Machines Corporation Method and apparatus for checkpoint and restarting a stream in a software partition
US8527650B2 (en) * 2007-05-21 2013-09-03 International Business Machines Corporation Creating a checkpoint for modules on a communications stream
WO2008147973A2 (en) * 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US7886301B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger
US7792983B2 (en) * 2007-07-31 2010-09-07 International Business Machines Corporation Method and apparatus for checkpoint and restart of pseudo terminals
US8117244B2 (en) 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US20090204705A1 (en) * 2007-11-12 2009-08-13 Attune Systems, Inc. On Demand File Virtualization for Server Configuration Management with Limited Interruption
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US20090204650A1 (en) * 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
US20100010861A1 (en) * 2008-07-11 2010-01-14 Collections Marketing Center, Llc Method and system for providing a virtual collections call center system
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US8000267B2 (en) * 2009-02-24 2011-08-16 Palo Alto Research Center Incorporated Network routing with path identifiers
US8200723B1 (en) * 2009-04-21 2012-06-12 Network Appliance, Inc. Metadata file system backed by database
CN101621405B (zh) 2009-07-07 2012-02-29 中兴通讯股份有限公司 分布式管理监控系统及其监控方法、创建方法
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
JP6040937B2 (ja) * 2011-05-19 2016-12-07 日本電気株式会社 並列処理装置、並列処理方法、最適化装置、最適化方法、および、コンピュータ・プログラム
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US8805880B2 (en) 2012-08-01 2014-08-12 International Business Machines Corporation Establishment, optimization, and routing of remote transitive name space access
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US10242058B2 (en) * 2015-07-14 2019-03-26 International Business Machines Corporation Access path optimization through system statistics
WO2017151602A1 (en) 2016-02-29 2017-09-08 Craxel, Inc. Efficient encrypted data management system and method
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
CN111274197B (zh) * 2018-12-05 2023-05-16 锐迪科(重庆)微电子科技有限公司 数据处理装置及方法
US11740788B2 (en) 2022-01-18 2023-08-29 Craxel, Inc. Composite operations using multiple hierarchical data spaces
WO2023140966A1 (en) * 2022-01-18 2023-07-27 Craxel, Inc. Organizing information using hierarchical data spaces

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233654A (ja) * 1990-07-11 1992-08-21 American Teleph & Telegr Co <Att> コンピュータシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718005A (en) * 1984-05-03 1988-01-05 International Business Machines Corporation Distributed control of alias name usage in networks
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
AU631276B2 (en) * 1989-12-22 1992-11-19 Bull Hn Information Systems Inc. Name resolution in a directory database
JPH0468562A (ja) * 1990-07-10 1992-03-04 Nec Corp コード設定回路
US5377323A (en) * 1991-09-13 1994-12-27 Sun Microsytems, Inc. Apparatus and method for a federated naming system which can resolve a composite name composed of names from any number of disparate naming systems
US5357630A (en) * 1991-10-21 1994-10-18 Motorola, Inc. Name resolution method for a distributed data base management system
US5434974A (en) * 1992-03-30 1995-07-18 International Business Machines Corporation Name resolution for a multisystem network
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5454101A (en) * 1992-09-15 1995-09-26 Universal Firmware Industries, Ltd. Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets
CA2110243C (en) * 1992-12-31 1998-08-11 Philip Steven Winterbottom Apparatus and methods for making a portion of a first name space available as a portion of a second name space
EP0629960B1 (en) * 1993-06-17 2000-05-24 Sun Microsystems, Inc. Extendible file system
US5463774A (en) * 1993-06-28 1995-10-31 Digital Equipment Corporation Object oriented computer architecture using directory objects
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233654A (ja) * 1990-07-11 1992-08-21 American Teleph & Telegr Co <Att> コンピュータシステム

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001517836A (ja) * 1997-09-19 2001-10-09 マイクロソフト コーポレイション 1つの記憶媒体の名称空間を別の記憶媒体の名称空間に移植する場合に既定のアクションを実行するシステムおよび方法
USRE43346E1 (en) 2001-01-11 2012-05-01 F5 Networks, Inc. Transaction aggregation in a switched file system
US7383288B2 (en) 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US7512673B2 (en) 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US7562110B2 (en) 2001-01-11 2009-07-14 F5 Networks, Inc. File switch and switched file system
JP2005502096A (ja) * 2001-01-11 2005-01-20 ゼット−フォース コミュニケイションズ インコーポレイテッド ファイルスイッチ及び交換ファイルシステム
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US11108815B1 (en) 2009-11-06 2021-08-31 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
USRE47019E1 (en) 2010-07-14 2018-08-28 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
USRE48725E1 (en) 2012-02-20 2021-09-07 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof

Also Published As

Publication number Publication date
EP0738970A1 (en) 1996-10-23
CA2172644C (en) 2001-05-15
DE69625724D1 (de) 2003-02-13
CA2172644A1 (en) 1996-10-18
EP1046990A2 (en) 2000-10-25
EP1046990B1 (en) 2003-01-08
MX9601398A (es) 1997-04-30
US5724512A (en) 1998-03-03
EP1046990A3 (en) 2000-11-02

Similar Documents

Publication Publication Date Title
JPH08339355A (ja) 分散形システムでの処理タスク実行呼び出し方法及び装置
US6941560B1 (en) XML-based integrated services event system
US5689701A (en) System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US7546606B2 (en) System and method using a connector architecture for application integration
US7007275B1 (en) Method and apparatus for automatic execution of concatenated methods across multiple heterogeneous data sources
US6115710A (en) Portable and dynamic distributed transaction management method
US7269664B2 (en) Network portal system and methods
AU677555B2 (en) Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US8650320B1 (en) Integration server supporting multiple receiving channels
JP3968242B2 (ja) 共有データにアクセスするための方法と装置
EP0466486B1 (en) Distributed computing system
EP0605959B1 (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US5617568A (en) System and method for supporting file attributes on a distributed file system without native support therefor
US5265250A (en) Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US7320023B2 (en) Mechanism for caching dynamically generated content
JP3179513B2 (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
US5815710A (en) Method and apparatus for managing relationships among objects in a distributed object environment
US5724503A (en) Method and apparatus for interpreting exceptions in a distributed object system
US6490585B1 (en) Cellular multiprocessor data warehouse
US8056091B2 (en) Systems and methods for using application services
US20040268306A1 (en) Methods, systems and computer program products for language independent data communication and display
EP1126681A2 (en) A network portal system and methods
WO2000010083A2 (en) Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
JP2001502823A (ja) インターフェイス定義言語によって定義されたデータ構造体を異種システム間で移送するための方法および装置