OpenVMS
ユーザーズ・マニュアル


前へ 次へ 目次 索引


13.7.4 複数の検索リストの検索順序

ファイル指定には,複数の検索リストが含まれることがあります。その場合,ファイル名検索リスト内の各項目が使用されますが,最初の装置名は一定のまま保持されます。ファイル名検索リスト内のすべての項目が最初の装置名と組み合わされると,今度は第2の装置名と組み合わされます。このプロセスは,それぞれの装置が検索されるまで継続します。

検索リスト内の1つの名前が別の検索リストに変換される場合には,反復 (ネストした) 検索リストを持つこともあります。この場合には,システムはサブリスト内のそれぞれの名前を使用してから,次の上位レベル名へと継続していきます。

次の例では,ファイル名と装置名に検索リストを持つファイル指定を示します。


$ DEFINE FILE CHAP1.RNO, CHAP2.RNO
$ DEFINE DISK WORK1:[ROSE], WORK2:[THORN]
$ SET DEFAULT DISK
$ DIRECTORY FILE
 
Directory WORK1:[ROSE] 
 
CHAP1.RNO;2          CHAP2.RNO;1 
 
Total of 2 files. 
 
Directory WORK2:[THORN] 
 
CHAP1.RNO;1          CHAP2.RNO;1 
 
Total of 2 files. 
 
Grand total of 2 directories, 4 files.

各ファイル名を一覧するディレクトリ・コマンドは,最初に WORK1:[ROSE] おを表示し,次に WORK2:[THORN] を表示しています。

次の例では,反復検索リストを示しています。


$ DEFINE NESTED FRED.DAT, NEW_LIST, RICKY.DAT
$ DEFINE NEW_LIST ETHEL.DAT, LUCY.DAT

検索リストNESTEDの検索順序は次のとおりです。

FRED.DAT
ETHEL.DAT
LUCY.DAT
RICKY.DAT

13.8 論理名テーブルの特徴

論理名テーブルには,次の属性があります。

システムの初期化中に,共用可能論理名テーブルがいくつか作成されます。新しいプロセスが作成されると,システムはそのプロセスに対して共用可能でプロセス固有のテーブルを他にいくつか作成します。これらのテーブルはすべて, 表 13-1 に示します。

論理名テーブルのアクセス・モードは,その作成時に指定できます。これが指定されないとモードは,テーブル作成が要求されたアクセス・モードに省略時設定されますが,通常これはスーパバイザ・モードまたはユーザ・モードです。論理名テーブルには,それ自身のアクセス・モードとより低い特権アクセス・モードの論理名が含まれることがあります。論理名テーブルは,同じまたはそれ次の特権アクセス・モードの別のテーブルに対する親テーブルである場合もあります。

論理名テーブルは,その名前で識別されますが,名前自体が論理名です。論理名として各名前テーブル名が論理名テーブル内に含まれている必要があります。

13.8.1 論理名テーブルのディレクトリ

ディレクトリという2つの特殊な論理名テーブルが,論理名テーブル名のコンテナとして存在します。

これらのディレクトリには,テーブル名に反復的に変換する名前が含まれます。すべての論理名テーブル名と,テーブルに変換する論理名は,これらのディレクトリに保持されます。

論理名テーブルの親テーブルは,必ずしもディレクトリ・テーブルである必要はありません。つまり,この階層構造は論理名テーブル名の位置から明白です。

13.8.2 ディレクトリ・テーブルの構造の表示

論理名テーブルに対する論理名ディレクトリ・テーブルの関係を表示するには,次の例に示すように, SHOW LOGICAL/STRUCTURE コマンドを入力します。


$ SHOW LOGICAL/STRUCTURE
(LNM$PROCESS_DIRECTORY) 
    (LNM$PROCESS_TABLE) 
(LNM$SYSTEM_DIRECTORY) 
    (LNM$SYSTEM_TABLE)    
    (LMF$LICENSE_TABLE) 
    (LNM$CLUSTER_TABLE) 
        (LNM$SYSCLUSTER_TABLE) 
    (LNM$GROUP_000123) 
    (LNM$JOB_824E98E0)
            . 
            . 
            . 
 

この例では,各論理名テーブル・ディレクトリ内に常駐する論理名テーブル名を示します。またこれは, LNM$CLUSTER_TABLE と LNM$SYSCLUSTER_TABLE との関係も示します。

13.9 省略時設定の論理名テーブル

システム・ディレクトリとプロセス・ディレクトリ・テーブルを含む,エグゼクティブによって作成された省略時設定のテーブルを 表 13-1 に示します。

表 13-1 省略時設定の論理名テーブル
テーブル名 完全なテーブル名 論理名 説明
プロセス論理名テーブル
プロセス・ディレクトリ LNM$PROCESS_DIRECTORY (他の論理名なし) プロセス固有論理名テーブル名とテーブル名に反復的に変換する名前の定義を含む。
プロセス・テーブル LNM$PROCESS_TABLE LNM$PROCESS SYS$DISK および SYS$INPUT などのプロセス固有論理名を含む。
共用論理名テーブル
システム・ディレクトリ LNM$SYSTEM_DIRECTORY (他の論理名なし) 共用可能論理名テーブルとテーブル名に反復的に変換する名前の定義を含む。
システム・テーブル LNM$SYSTEM_TABLE LNM$SYSTEM システム内のすべてのプロセスに共用される名前を含む。 SYS$LIBRARY および SYS$SYSTEM など。
クラスタ単位システム・テーブル LNM$SYSCLUSTER_TABLE LNM$SYSCLUSTER OpenVMS Clusterシステムのすべてのプロセスが共用する名前を含む。
クラスタ単位親テーブル LNM$CLUSTER_TABLE LNM$CLUSTER LNM$SYSCLUSTER_TABLE を含む,すべてのクラスタ単位の論理名テーブルの親テーブル。
グループ・テーブル LNM$GROUP_ gggggg 1 LNM$GROUP UICグループのすべてのプロセスが共用する名前を含む。
ジョブ・テーブル LNM$JOB_ xxxxxxxx 2 LNM$JOB ジョブ・ツリーのすべてのプロセスが共用する名前を含む。 SYS$LOGIN および SYS$SCRATCH など。


1文字列 gggggg は,プロセスの UICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は,ジョブ情報ブロックのアドレスである8桁の16進数を表す。

13.9.1 プロセス論理名ディレクトリ

ログイン時にプロセス論理名ディレクトリ・テーブル LNM$PROCESS_DIRECTORY で作成されるプロセス固有論理名を 表 13-2 に示します。

表 13-2 プロセス論理名ディレクトリの省略時設定の論理名
名前 説明
LNM$GROUP LNM$GROUP_ gggggg として定義されるグループ論理名。ここで ggggggはグループ番号を表す。 LNM$GROUP_ gggggg 1 は UICグループが使用する論理名テーブル。テーブル LNM$GROUP_ gggggg は,システム・ディレクトリ・テーブル内でカタログ化される。したがって,LNM$GROUP はグループの論理名テーブルの名前に反復的に変換する論理名である。
LNM$JOB LNM$JOB_ xxxxxxxx として定義されるジョブ論理名。ここで xxxxxxxx 2 はそれぞれのジョブ・ツリーに固有の数値を表す。 LNM$JOB_ xxxxxxxx は,ジョブで使用する論理名テーブル。テーブル LNM$JOB_ xxxxxxxx は,システム・ディレクトリ・テーブル内でカタログ化される。したがって, LNM$JOB はジョブ論理名テーブルの名前に反復的に変換する論理名である。
LNM$PROCESS プロセス論理名テーブルの名前である LNM$PROCESS_TABLEに反復的に変換するプロセス論理名。
LNM$PROCESS_DIRECTORY プロセス・ディレクトリ論理名テーブルの名前。


1文字列 gggggg は,プロセスのUICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は,ジョブ情報ブロックのアドレスである8桁の16進数を表す。

13.9.2 プロセス論理名テーブル

システム上のすべてのプロセスには, LNM$PROCESS_TABLE という名前のプロセス論理名テーブルがあります。プロセス・テーブルにある名前を使用できるのは,そのプロセスとそれに従属するサブプロセスだけです。ログイン時に,システムはプロセスに対する論理名を作成し,それをそのプロセス・テーブルに配置します。

名前 LNM$PROCESS を通じて間接的に LNM$PROCESS_TABLE を参照することができます。この間接参照により, LNM$PROCESS を複数の等価名として再定義して,次の例で示すようにその中に各自のテーブルを 1つ以上含めることができるようになります。


$CREATE/NAME_TABLE APPLICATION_NAMES 
$DEFINE/TAB=LNM$PROCESS_DIRECTORY LNM$PROCESS APPLICATION_NAMES, LNM$PROCESS_TABLE 

省略時設定により,プロセス・テーブルには 表 13_3 に示す論理名が含まれます。これらの論理名 SYS$INPUT, SYS$OUTPUT,SYS$ERROR,SYS$COMMAND は,プロセスパーマネント・ファイル (プロセスの処理中にオープンしたままのファイル) を参照します。プロセスパーマネント・ファイルについての詳細は, 第 13.13 節 を参照してください。

表 13-3 プロセス論理名テーブルの省略時設定の論理名
名前 説明
SYS$COMMAND DCLが入力を読み込む初期ファイル (通常は使用するターミナル)。 DCLが入力を読み込むファイルは,入力ストリームと呼ぶ。コマンド・インタプリタは SYS$COMMAND を使用して元の入力ストリームを "記憶" しておく。
SYS$DISK ログイン時に設定された,または SET DEFAULT コマンドによって変更された省略時設定の装置。
SYS$ERROR DCLが,警告,エラー,および重大なエラーによって生成されたエラー・メッセージを書き込む省略時設定の装置またはファイル。
SYS$INPUT DCLが入力を読み込む省略時設定のファイル。
SYS$NET DECnet for OpenVMS タスク間通信のターゲット・プロセスを起動するソース・プロセス。ターゲット・プロセスによってオープンされると,SYS$NET はプロセスがその相手とデータを交換できる論理リンクを表す。 SYS$NET が定義されるのは,タスク間通信の期間中に限られる。
SYS$OUTPUT DCLが出力を書き込む省略時設定のファイル (通常は使用するターミナル)。 DCLが出力を書き込むファイルは,出力ストリームと呼ぶ。
TT ターミナルに対する省略時設定の装置名。

13.9.3 システム論理名ディレクトリ

システム・ディレクトリ・テーブル LNM$SYSTEM_DIRECTORYに含まれる省略時設定のシステム論理名を 表 13-4 に示します。

表 13-4 システム論理名ディレクトリの省略時設定の論理名
名前 説明
LNM$CLUSTER LNM$CLUSTER_TABLE に反復的に変換するクラスタ単位の親テーブルの論理名。
LNM$DCL_LOGICAL LNM$FILE_DEV として定義されるDCL論理名。 LNM$DCL_LOGICALは, SHOW LOGICAL コマンド,SHOW TRANSLATIONコマンド,F$TRNLNM レキシカル関数によって検索され表示される論理名テーブルのリストに反復的に変換する。省略時設定により,これらのコマンドは,プロセス,ジョブ,グループ,システム,およびクラスタ単位のシステム論理名テーブルをこの順に検索して表示する。
LNM$DIRECTORIES LNM$PROCESS_DIRECTORY および LNM$SYSTEM_DIRECTORY として定義されるディレクトリ論理名。
LNM$FILE_DEV ファイル指定を処理する場合にシステムが検索する論理名テーブルのリストとして定義される検索リストの論理名。 LNM$PROCESS,LNM$JOB,LNM$GROUP, LNM$SYSTEMとして定義され,システムは,プロセス,ジョブ,グループ,システム,およびクラスタ単位のシステム論理名テーブルをこの順に検索する。
LNM$JOB LNM$JOB_ xxxxxxxx 1 として定義されるジョブ論理名。
LNM$GROUP グループ・テーブル LNM$GROUP_ gggggg 2 に定義されるグループ論理名。
LNM$PERMANENT_MAILBOX LNM$SYSTEM として定義されるパーマネント・メールボックス論理名。パーマネント・メールボックスに関連付けられた論理名は,論理名 LNM$PERMANENT_MAILBOX が反復して変換する論理名テーブルに入力される。
LNM$SYSCLUSTER LNM$SYSCLUSTER_TABLE に反復的に変換するクラスタ単位のシステム論理名テーブルの論理名。
LNM$SYSTEM LNM$SYSTEM_TABLE,LNM$SYSCLUSTER に反復して変換するシステム論理名テーブル名。
LNM$TEMPORARY_MAILBOX LNM$JOB として定義される一時メールボックス論理名。一時メールボックスに関連付けられた論理名は,論理名 LNM$TEMPORARY_MAILBOX が反復して変換する論理名テーブルに入力される。


1文字列 gggggg は,プロセスのUICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は,ジョブ情報ブロックのアドレスである8桁の16進数を表す。

13.9.4 共用論理名テーブル

ここでは,次の省略時設定の共用論理名テーブルについて説明します。

クラスタ単位のシステム・テーブル LNM$SYSCLUSTER_TABLE

LNM$SYSCLUSTER_TABLE は,クラスタ単位のシステム論理名テーブルの名前です。このテーブルには,クラスタのすべてのユーザが使用できる論理名が含まれています。

名前 LNM$SYSCLUSTER を通じて間接的に LNM$SYSCLUSTER_TABLEを参照することができます。間接参照により, LNM$SYSCLUSTER を複数の等価名として再定義して,その中に各自のテーブルを含めることができます。

クラスタ単位の親テーブル LNM$CLUSTER_TABLE

LNM$CLUSTER_TABLE は, LNM$SYSCLUSTER_TABLE を含む,すべてのクラスタ単位の論理名テーブルの親テーブルです。論理名 LNM$CLUSTER を使用してこれを参照します。

グループ・テーブル LNM$GROUP_gggggg

それぞれのグループ・テーブルの名前は LNM$GROUP_gggggg です (gggggg はユーザIDコード [UIC] グループ番号を表します)。このテーブルにある名前は,同じUICグループ番号を持つすべてのユーザが使用できます。システム上のすべてのグループには,対応するグループ論理名テーブルがあります。

名前 LNM$GROUP を通じて間接的に LNM$GROUP_gggggg を参照することができます。間接参照により, LNM$GROUP_gggggg を複数の等価名として再定義して,その中に各自のテーブルを含めることができます。またこれは,自分のUICグループ番号を記憶しておく必要を省き,最も新しく定義されたテーブルを必ず使用できるようにします。

ジョブ・テーブル LNM$JOB_xxxxxxxx

それぞれのジョブ・テーブルの名前は LNM$JOB_xxxxxxxx です (xxxxxxxx はジョブ・ツリーに対してシステムが定義したジョブ情報ブロック [JIB] アドレスを表します)。

ジョブ・テーブルには,ジョブ・ツリー,つまりプロセスとそのサブプロセスにあるすべてのプロセスで使用できる論理名が含まれます。システムには各ジョブ・ツリーに対して1つのジョブ・テーブルがあります。ジョブ・テーブルは共用可能なので,ジョブ・ツリー内のすべてのプロセスがアクセスできます。

名前 LNM$JOB を通じて間接的に LNM$JOB_xxxxxxxx を参照することができます。この間接参照により, LNM$JOB を複数の等価名として再定義して,その中に各自のテーブルを含めることができます。さらに, LNM$JOB を使用すると,JIBアドレスを見つける必要がなく,最も新しく定義されたテーブルを必ず使用できるようになります。

システムは,マウントされたディスク,マウントされたテープ,一時メールボックスに対して作成された論理名をジョブ論理名テーブルに配置します。さらに,システムは次の論理名を作成します。

システム・テーブル LNM$SYSTEM_TABLE

システム・テーブルの名前は LNM$SYSTEM_TABLE です。システム・テーブルには,システム・レベルでシステムのすべてのユーザが使用できる論理名が含まれます。

システム・テーブルは通常,LNM$SYSTEM を通じて間接的に参照することができ,これは検索リスト LNM$SYSTEM_TABLE, LNM$SYSCLUSTERとして定義されます。 LNM$SYSTEM を使用して,このノードにローカルなシステム名と,クラスタ上のすべてのノードに共通なシステム名を含めることができます。

システムの起動時にシステム・テーブルで自動的に定義される論理名を 表 13-5 に示します。

表 13-5 システム論理名テーブルの省略時設定の論理名
名前 説明 省略時アドレス
DBG$INPUT プロセス・レベルで SYS$INPUT に等しいと定義される, OpenVMS Debuggerの省略時入力ストリーム。 適用せず
DBG$OUTPUT プロセス・レベルでSYS$OUTPUTに等しいと定義される, OpenVMS Debuggerの省略時出力ストリーム。 適用せず
SYS$COMMON SYS$SYSDEVICE: [SYS n.SYSCOMMON.]の共通部分に対する装置およびディレクトリ名。 ここで nはプロセッサのルート・ディレクトリ番号。
SYS$ERRORLOG エラー・ログ・データ・ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSERR]
SYS$EXAMPLES システム例の装置およびディレクトリ名。 SYS$SYSROOT:[SYSHLP.EXAMPLES]
SYS$HELP システム・ヘルプ・ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSHLP]
SYS$INSTRUCTION システム命令データ・ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSCBI]
SYS$LIBRARY システム・ライブラリの装置およびディレクトリ名。 SYS$SYSROOT:[SYSLIB]
SYS$LOADABLE_IMAGES オペレーティング・システムのエグゼクティブでロード可能なイメージ,デバイス・ドライバ,その他エグゼクティブでロードされたコードの装置およびディレクトリ。 SYS$SYSROOT:[SYS$LDR]
SYS$MAINTENANCE システム保守ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSMAINT]
SYS$MANAGER システム・マネージャ・ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSMGR]
SYS$MESSAGE システム・メッセージ・ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSMSG]
SYS$NODE DECnet for OpenVMS がシステム上でアクティブであり,ネットワークに接続中の場合,ローカル・システムに対するネットワーク・ノード名。 適用せず
SYS$PROCDMP イメージ・ダンプが書き込まれるディレクトリ (ユーザが設定)。 省略時の設定なし
SYS$SHARE システム共用イメージのの装置およびディレクトリ名。 SYS$SYSROOT:[SYSLIB]
SYS$SPECIFIC SYS$SYSDEVICE のノード固有部分に対する装置およびディレクトリ名。 SYS$SYSDEVICE:[SYS n.],ここで nはプロセッサのルート・ディレクトリ番号。
SYS$STARTUP システム起動ファイルの装置およびディレクトリ名。 まず SYS$SYSROOT:[SYS$STARTUP] ,次に SYS$MANAGER を指す検索リスト。
SYS$SYSDEVICE システム・ディレクトリを含むシステム・ディスク。 通常は SYS$DISK
SYS$SYSROOT システム・ディレクトリに対する装置およびディレクトリ名。 まず SYS$SYSDEVICE:[SYS n.]( n はプロセッサのルート・ディレクトリ番号),次に SYS$COMMON を指す検索リスト。
SYS$SYSTEM オペレーティング・システムのプログラムとプロシージャの装置およびディレクトリ。 SYS$SYSROOT:[SYSEXE]
SYS$TEST 環境設定テスト・パッケージ (UETP) ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSTEST]
SYS$UPDATE システム更新ファイルの装置およびディレクトリ名。 SYS$SYSROOT:[SYSUPD]


前へ 次へ 目次 索引