JPH05502528A - 仮想ネットワークアーキテクチャ及びローダ - Google Patents
仮想ネットワークアーキテクチャ及びローダInfo
- Publication number
- JPH05502528A JPH05502528A JP2514026A JP51402690A JPH05502528A JP H05502528 A JPH05502528 A JP H05502528A JP 2514026 A JP2514026 A JP 2514026A JP 51402690 A JP51402690 A JP 51402690A JP H05502528 A JPH05502528 A JP H05502528A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- function
- message
- rom
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Electrodes Of Semiconductors (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
仮想ヱノトワークアーキテクチャ及びローダ主班■背景
致土立國
この発明は、コンピュータシステムに関するも″ので、特に、仮想ネットワーク
によって接続され、単独の仮想コンピュータ、及び、仮想ネットワークを通じて
情報の送受信を行う二つの相互結合されたコンピュータのいずれとしても機能す
る少なくとも二つのコンピュータを含むコンピュータシステムに関するものであ
る。
l米肢止少脱■
今日においては、多数の異なるコンピュータシステムが入手可能である。しかし
ながら、これらのシステムの多くは、例えば第1図に示すように、基本的構成装
置を中心に構築されている。一般的に、コンピュータの基本構成装置は、入力装
置12に入力ハス11を介して接続され、出力装置14に出力ハス13を介して
接続される中央処理装置10(CPtJ)を含んでいる。CPtJloは、デー
タバス15.16を介してメモリ装置17に接続されている。
CPUl0は、制御及び演算機能を行う。入力及び出力装置12.14は、コン
ピュータのユーザーとCPUl0の交信に用いられる。入力装置12は、CPU
l0に情報を供給する。一般的な入力装置は、キーボード及びマウスである。
出力装置14、中央処理装置10からの情報を表示する。一般的な出力装置は、
ビデオディスプレイモニタ、プリンタ、例えばプロッタ等の仮想ディスプレイ手
段を含んでいる。入力装置12及び出力装置14は、しばしば入出力(Ilo)
ユニットと呼ばれる。
メモリ装置17は、通常二つの一般的な情報、指令及びデータを有している。コ
ンピュータプログラムは、コンピュータが所定の機能を実行するための連続した
指令である。メモリ装置17に格納されたデータは、CPU10で実行されるコ
ンピュータプログラムからの指令に応じてCPUl0によって処理される。
メモリ装置17は、一般に、二次記憶装置とも呼ばれる大容量メモリ17Aとメ
インメモリ17Bを含んでいる。メインメモリ17Bは、比較的な高速のメモリ
、即ち、一般に約20乃至400ナノ秒のアクセス時間を持つメモリである。
アクセス時間は、cpuioがメモリからのデータを要求してから要求されたデ
ータがCPUl0に与えられるまでの時間である。
メインメモリ17Bは、通常CPUl0によって現在実行中のプログラムの少な
くとも一部及び、このプログラムで必要とされるデータを格納する。例えばディ
スク、テープ等の大容量メモリ17Aは、プログラム、データまたは、CPLl
loがすくに必要としないプログラム及びデータ、若しくはメインメモリ17B
の容量的な制約によってメインメモリに格納できないプログラムやデータを格納
する。プログラム及び/またはデータは、CPUl0の管理のもとて大容量メモ
リ17Aに読み書きされるので、大容量メモリは、−i的に、一般的な条件の「
I10ユニット」を有している。大容量メモリのアクセス時間は、一般的に数十
ミリ秒のオーダーである。
コンピュータのオペレーティングシステムは、CPUl0(第1図)、メインメ
モリ17B、I10ユニット12.14.17Aの動作を制御するために使用さ
れる。さらに、オペレーティングシステムは、コンピュータのユーザーのアプリ
ケーションとハードウェアをインターフェイスする。本明細書において、ハード
ウェアは、コンピュータシステムの物理的な構成装置を示すものとして用いられ
る。コンピュータのオペレーティングシステムは、−触にカーネルを持っており
、このカーネルは(i)以下に述べるように、ユーザープロセスを生成し、(i
i)ユーザープロセスの実行をスケジューリングし、(i i i)ユーザー
プロセスにシステムサービスを与え、(iv)ハードウェアの割込み処理、例外
処理を行う。コンピュータのオペレーティングシステムは、通常コンピュータの
ブートにメインメモリ17Bにロードされる。
ここで、「ブート」は、コンピュータの電源投入時またはコンピュータのりセン
ト時に行われる一連の動作を意味する。
「ユーザプロセス」の定義は、ユーザーのソースコード、即ちコンピュータプロ
グラムをCPtJlo−\の一連の指令に変換する連続したステップの理解を必
要とする。所定のオペレーティングシステムを用いてコンピュータ上で走るアプ
リケーションプログラムのためのユーザーソースコード、一般に実行可能なイメ
ージとしてしられるバイナリファイルのコンパイルされ、かつリンクされる。「
ユーザプロセス」は、オペレーティングシステムのカーネルによるこの実行可能
なイメージの実行である。
例えば、マイクロソフト コーポレイションのMS−DOSオペレーティングシ
ステム(MS−DO3)を使用するコンピュータにおいては、オペレーティング
システムとハードウェアをインターフェイスするために、基本人出カシステム(
BIOS)を含んでおり、このBIOSは、通常コンピュータのり一ドオンリメ
モリ (ROM)に格納されている。
(MS−DO3は、マイクロソフト コーポレイションの登録商標である。)B
IOSは、コマンドと呼ばれるオペレーティングシステムからの指令に基づいて
ハードウェアを駆動する。
特に、MS−DOSオペレーティングシステムは、割込みと呼ばれる一連のコマ
ンドによってBIOSにインターフェイスする。劃込みは、通常CPUl0で実
行されているソフトウェアによって起動される。割込みに応答して、CPU 1
0は、メインメモリ17Bに格納された劃込みベクトルテーブル割込みサービス
ルーチンのアドレスを獲得する。一般に、割込みサービスルーチンは、ROM
BIOSを格納したメインメモリ17Bのアドレス及び割込みサービスルーチン
が格納されたオペレーティングシステムを指示する。したがって、メインメモリ
17Bは、通常、ユーザープロセスと、オペレーティングシステムと、CPUl
0に結合されたハードウェアとオペレーティングシステムをインターフェイスす
るための情報を持つ。
第1図のコンピュータ20と同様のコンピュータを二台またはそれ以上使用する
場合、これらのコンピュータ情報を分配しなければならない。独立したコンビュ
ニタ装置間で、情報の電圧を行う方法がいくつか開発されている。第一番目の方
法は、第2A図に示すように、コンピュータ20−1の情報を、例えばディスク
またはテープ(ディスク/テープ)25にコピーして、ディスク/テープ25を
コンピュータ2〇−2に移し、情報をディスク/テープ25からコンピュータ2
0−2にコピーする方法である。しかしながら、コンピュータ20−1と20−
2が近接して設置されていない場合には、ディスク/テープをコンピュータ20
−1からコンピュータ20−2に物理的に移動させなければならず、好ましい方
法とはいえない。さらに、より重要な問題点は、コンピュータ20−1用のディ
スク/テープ25が、コンピュータ20−2と互換性を持たないことがあること
である。例えば、コンピュータ20−1が、5・1/4インチのフロッピーディ
スクを使用し、コンピュータ20−2が3・1/2インチのフロッピーディスク
を使用するような場合である。
このため、コンピュータ20−1.20−2は、しばしば、モデム26.27を
使用して電話回線を用いてリンクされる(第2B図)。コンピュータ26は、コ
ンピュータ20−1のシリアルポートを介してモデムに接続される。コンピュー
タ20−2は、同様にモデムに結合される。モデム26.27は、一般的には電
話回線を介して接続される。
モデムはコンピュータのシリアルポートによって供給されるディジタル信号を、
アナログ信号に変換して、このアナログ信号が電話回線を介して他方のモデムに
転送される。第二のモデムは、電話回線を介して受信したアナログ信号をディジ
タル信号に変換し、シリアルポートを介してコンピュータに供給する。モデムは
、9600ボーまたはそれ以下のボーレートでデータを転送する。伝達速度は、
モデムを接続する導線の品質によって制限される。一般に、モデム間のデータの
転送速度は、接続時点の伝送状態に応じて決定され、その後は変更されない。従
って、データが最初に高い転送速度で転送され、次いでラインに接続された場合
、データの転送にエラーを生じるが、転送は、転送データの良否とは無関係に高
速で係属される。同様に、初期のライン品質が悪(、低い転送速度に決定される
と、この転送速度は、後で変更されることはない。
転送情報のエラーチェックは、送出された情報が、受信された情報と同一である
かどうかで行われる。−船に、転送されたデータの各ブロックごとに、送信側コ
ンピュータによってエラーコードが計算され、データブロックの一部として送信
される。受信側のコンピュータは、データのブロックに関してエラーコードを算
出して、算出したエラーコードと受信したエラーコードを比較する。エラーコー
ドが一致しない場合、受信側コンピュータは、エラーメツセージを送信側コンピ
ュータに送信し、データのブロックが再送信される。
さらに他の転送形態としては、コンピュータ20−1をケーブル29によってコ
ンピュータ20−2に接続しく第2C図)、コンピュータ20−1で実行される
ソフトウェアプログラムと、コンピュータ20−2によって実行される同じソフ
トウェアプログラムによってケーブル29を介してデータがリンクされる。一般
に、これらの動作において、連結されたシステム、即ちコンピュータ2o−1,
20−2、ケーブル29及び二つの実行されるソフトウェアプログラムは、二人
のユーザーのために設置されたものである。即ち、キーボード等の入出力装置は
、コンピュータのビデオディスプレイと同様にいずれも動作可能である。しかし
ながら、はとんどの場合、直接的に接続されたコンピュータ20−1.2〇−2
の間のデータの転送は、−人のユーザーによって行われる。
従って、一方のキーボード及びビデオディスプレイの動作は、重複となり、不必
要となる。いずれにしても、現在の二つのコンピュータを接続する技術は、こう
した可能性を有している。さらに、コンピュータ2o−1,20−2の形式によ
って、コンピュータ20−1.20−2間をリンクする特定のソフトウェアプロ
グラムの実行動作が制限される。コンピュータ間のリンクは、他のユーザーのア
プリケーションによってはアクセスすることが出来ない。
こうしたコンピュータ間の情報転送を行うための上記の方法における欠点に鑑み
て、コンピュータのネットワークが開発された。コンピュータのネットワークが
、第3図に示すように数台のコンピュータ20−1乃至20−nによって形成さ
れる。通常、このネットワークには、第1図のコンピュータ20と同様のコンピ
ュータが使用され、サーバーと呼ばれる共通のコンピュータ2工に結合される。
サーバー21は、ネットワークを介してアクセスされる。ネットワーク22は、
データファイルやサーバー21に接続されたI10装置の共有を可能とする。
ネットワークのためのオペレーティングシステムは、上記した単独のコンピュー
タのオペレーティングシステムのみではなく、コンピュータ20−1乃至20−
n及びサーバーの共有の資源に関する動作を調整するための付加的なソフトウェ
アをも含んでいる。
伝統的に、MS−DO3によって実行可能なプログラムは、ユーザーの実行可能
なプログラムのファイル名の入力に応じて、オペレーティングシステムによって
ディスクから読み出され、メモリにロードされる。MS−DOSオペレーティン
グシステムにおいては、実行可能なプログラムファイルは、”、EXE”の拡張
子を持っている。この種のファイルはr、EXEファイル」と呼ばれる。実行フ
ァイルの他の実行可能なファイルは、”、COM”の拡張子を持つ実行可能なプ
ログラムファイルである。、EXEファイルと1.C0Mファイルの違いは、当
業者にとって明白である。
、EXEとして記憶された実行可能なプログラムのロード過程は、データ及びR
AMの領域をプログラムに割当、プログラムの接頭語、接尾語(PSP)のセン
トアップ、ディスクからのプログラムの読み出しを含んでいる。しばしば1、E
XEとして記憶される実行可能なプログラムは、実行可能なプログラムのロード
時及び実行時に行われる「再配置J処理を含んでいる。再配置処理において、M
S−DO3の、EXEC機能は、実行可能なファイルの開始時に再配置テーブル
使用して種々の値を調整し、予めアドレスを分割し、値の補正を行う。
例えば、Intel 8088マイクロプロセツサのためにアセンブリー言語で
記述された後述のコードにおいて、一つの再配置がある。
、1Iodel small
mov ax、 Data ;データのロードセグメントmov ds、 ax
;dsへ
mov ah、 4ch ;005終了;4ch機能
int 21h
n+ain endp
end n+ain
再配置は、MS−DO3のオペレーティングシステム機能E X E C,によ
りプログラムが実行されている時に、 Da ta(デフォルトのデータセグメ
ントのセグメント値を示すアセンブラの符号語)がレジスタAXにロードされる
時点で行われる。実行可能なファイルの生成において、アセンブラ及びリンカに
は、実行時点ではプログラムのアドレスは与えられない。EXEC機能は、プロ
グラムに適当な値を、PSPに関連して与えて、RAMの実行可能なプログラム
を開始する。
従って、アプリケーションの実際のプログラムコードは、実行時点で変更される
。
EXEC機能は、RAMとともに機能することを意図されており、RAMにロー
ドされる実行可能なプログラムが変化する。しかしながら、実行可能なプログラ
ムがROMから直接ランされる場合は、EXEC機能または他の再配置を行う機
能は、ROMの実行可能なプログラムを変更することが出来ないため、適切に動
作することが出来ない。従って、ROMから実行される実行可能なプログラムに
関しては、再配置を行うことが出来ない。従って、実行可能なプログラムを変更
するいかなるオペレーティングシステムもROMのプログラムを直接実行するこ
とは出来ない。この欠点は、例えばフロッピーディスクに換わってROMカード
を使用する携帯用コンピュータの動作を制限する。
主尻立皿丞
本発明の仮想ネットワーク管理機能は、コンピュータの連結における従来技術の
欠点を解消して、データのリンクによる新しいコンピュータ間のコミュニケーシ
ョンを可能とする。
さらに、仮想ネットワーク管理機能は、コマンドの組により、例えば一つの実施
例における割込みをアクセスして、これらのコマンドにより、仮想ネットワーク
管理機能によって制御される仮想ネットワークを、いかなるユーザーアプリケー
ションからもアクセス、使用出来るようにする。仮想ネ・ノドワーク管理機能は
、ユーザアプリケーションによるアクセスばかりではなく、仮想ネットワーク管
理機能によりいかなるユーザーアプリケーションも、二つの異なる組の能力が与
えられる。
コンピュータ間で情報を交換するために電子手段によって連結された少なくとも
二つのコンピュータを含むコンピュータシステムにおいて、本発明の原理による
仮想ネ・ノドワーク管理機能は、各コンピュータにインストールされる。仮想ネ
ットワーク管理機能は、第一のモードにおいて、システム内のコンピュータ間の
情報の授受に用いられる。第一のコンピュータのユーザーアプリケーションは、
仮想ネ・ノドワーク管理機能を介して、第二のコンピュータにメツセージを送出
することが出来、第二のコンピュータのユーザーアプリケーションは、仮想ネッ
トワーク管理機能を介してメツセージを受信し、返信メソセージを第一のコンピ
ュータに送出することが出来る。
第二のモードにおける動作において、システム内の一つを除く全てのコンピュー
タの仮想ネットワーク管理機能は、当該一つのコンピュータからの要求にサービ
スする。従って、一つのコンピュータのユーザーアプリケーションは、全てのサ
ーバーコンピュータの、例えば、情報及び周辺機器等の資源を、仮想ネットワー
ク管理機能を介してアクセスすることが出来る。このコンピュータシステムにお
ける一つのコンピュータの他のコンピュータを制御し、使用する形態は、仮想コ
ンピュータと呼ばれる。仮想コンピュータは、サーバーコンピュータが、これに
接続されたコンピュータからの要求にネットワークを介してサービスする一般的
な方式とは根本的に異なるものである。さらに、仮想ネットワーク管理機能の多
機能によりコンピュータシステムにおいて実行されるユーザーアプリケーション
において、従来実現できなかった、融通性及び交信手段を提供することが出来る
。
ユーザーアプリケーションに新しい能力を与えること加えて、仮想ネットワーク
管理機能は、コンピュータ間の通信リンクを介して情報の授受を行うための新規
な手段を提供する。
仮想ネットワーク管理機能は、メツセージの送信、受信及び発生のための第一の
手段としての、アプリケーション層を有している。アプリケーション層は、ユー
ザーアプリケーションからのコマンドを受け、転送層としての第二の手段に送ら
れる第一のメツセージ構造を発生する。転送層は、メンセージを受信し、送信し
、発生する。アプリケーション層からのメツセージを受信すると、転送層は、パ
ケットと呼ばれる第二のメンセージ構造を発生する。転送層は、アプリケーショ
ン層からの各メンセージに対して−または複数のパケットを形成する。各パケッ
トを形成した後、転送層は、パケットを情報の送受信のためのデータリンク層と
しての第三の手段に送出する。データリンク層は、通信リンクを介して、ノぐケ
・ノドを遠隔コンピュータの他のデータリンク層に、所定の伝送パラメータを使
用して送出する。
データリンク層は情報に送受信のみを行い、遠隔コンピュータのデータリンク層
がパケットを受信すると、)iヶ・ノドは当該コンピュータの転送層に送られる
。二らのコンピュータの転送層は、例えば転送速度及び転送ラインを介して送ら
れるパケットに大きさを制御する。
発信側の転送層は、パケット内の情報のエラーコードを発生し、パケットにこの
エラーコードを付随せる。受信側転送層は、受信したパケットのエラーコードを
発生し、発生したエラーコードとパケットとともに受信したエラーコードと比較
する。エラーコードが相違する場合には、受信側転送層は、発信側転送層にエラ
ーメツセージを送出して、パケ・ントが再送信される。送信パケットに所定分す
るの転送エラーが生じた場合には、発信側転送層はパケットの大きさまたは転送
速度若しくはその双方を調整する。
従って、従来のシステムとは異なり、仮想ネ・ノドワーク管理機能は、接続時点
のみではなく、所定回数の転送エラーが生じた場合には、いつでも転送パラメー
タ、ノぐケ・ントの大きさ、転送速度を調整することが出来る。本発明の原理に
よれば、発信側及び受信側コンピュータはユーザーによって1旨定される。仮想
ネットワーク管理機能は、各コンピュータにインストールされたいずれの機能を
も行うことが出来る。
アプリケーション層で発生される第一のメツセージ構造は、ヘッダ及びコンピュ
ータ間において転送される情報を記憶したデータ領域を含んでいる。一つの実施
例において、ヘッダは、(i)メツセージを発生する仮想ネットワークを指定す
るフィールドと、(i i)メツセージを受信したコンピュータによって行われ
る動作を指定するフィールド、即ち、ユーザーアプリケーションからのコマンド
に対応するフィールドと、(i i i)メツセージの方向、即ちメツセージが
動作要求メンセージであるか返信メンセージであるか、を指定するフィールド、
(iv)メツセージを受信する遠隔コンピュータを指定するフィールド、及びメ
ツセージ自体を含んでいる、アプリケーション層は、アプリケーション層がサポ
ートする遠隔動作毎に独特なメツセージ構造を構築する。
転送層で発生される第二のメツセージ構造は、アプリケーション層のヘッダとは
異なるヘッダと、第一の構造のメツセージの情報の少なくとも一部及びエラーコ
ードを含んでいる。
コンピュータ間の情報の転送を容易とするために、アプリケーション層は、転送
リンクを介して交換される情報を圧縮、復元する。
本発明による、データリンクを介して連結された少なくとも二つのコンピュータ
間の情報転送方法は、所定の転送速度、所定のブロックサイズ等の所定のパラメ
ータを用いて、情報の送受信が行われ、情報が送受信される。一つの実施例にお
いて、所定のパラメータは、最高速度で最大のプロ・ンクサイズの送受信を可能
とするように選択される。所定の転送)iうメータを設定するために相互作用に
よる処理が用いられる。
初期接続の後、データリンクを介しての情報のパケットの送信において所定数の
エラーが検出されるまで、情報は所定の転送速度及びブロックサイズで行われる
。所定数のエラーが検出されると、ブロックサイズが減少され、再び転送が行わ
れる。転送に成功した場合には、新しいブロックサイズ及び同一の転送速度が使
用される。転送が成功しなかった場合には、ブロックサイズが再び縮小される。
この手順は、転送に成功するか、またはブロックサイズが最小と成るまで反復さ
れる。ブロックサイズが最小となり、転送が未だに成功しない場合には、転送速
度が低減され、ブロックサイズは最大とされる。再び、転送に成功するまでブロ
ックサイズが連続的に縮小される。転送速度及びブロックサイズの双方が最小で
、転送が成功しない場合には、転送は中止される。転送速度が何らかの理由で固
定されている場合には、所定数のエラーが検出されると、ブロックサイズのみが
変化される。
本発明の原理によれば、リードオンリメモリ(ROM)から直接実行可能なプロ
グラム、特に仮想ネットワークのための実行可能なプログラムを実行するコンピ
ュータを構成するための新規なローダ及び方法が提供される。方法及びローダは
、再配置に関する従来技術における制限を解消する。
本発明のローダは、コンピュータシステムによってランダムアクセスメモリ(R
AM)にロードされる。ローダがRAMにロードされると、ローダが、ROMの
実行可能なプログラムをROMから直接実行するために必要な環境設定を行う。
特に、一つの実施例においては、初期化手段が、ROMの実行可能なプログラム
のROMからの直接の実行するためのコンピュータの初期化を行う。初期化は、
ROMの実行可能なプログラムの為のRAMのデータエリアの形成を含んでいる
。
ROMの実行可能なプログラムの実行の為の必要な環境設定が行われると、ロー
ダは好ましくはRAMからRAMのリリース手段により待避される。ROMの実
行可能なプログラムは、ローダによってRAMに形成されたデータエリアを用い
て直接ROMから実行可能となる。
従って、一つの実施例におけるローダは、(i)ROMの実行可能なプログラム
をROMから直接実行する為のコンピュータシステムの初期化を行う手段と、(
ii)RAMをリリースする手段を有している。勿論、この実施例においては、
ローダにローダ自体によりランダムアクセスメモリをリリースする手段を設けて
いるが、ローダによって使用されるRAMのリリース手段無しでも、ローダは適
切に動作可能である。
しかしながら、こうした実施例では、ローダが不要となった後も、RAMの一部
がローダによって占有されるので、RAMの使用効率を悪化させるものとなる。
他の実施例においてデータエリアの初期化手段と、アプリケーションの存在確認
手段と、セットアツプ手段を含んでいる。データエリアの初期化手段は、(i)
ROMの実行可能なプログラムのためのRAMの作業データエリアを形成する手
段と、(i i)ROMの実行可能なプログラムをROMから直接実行するため
に必要なデータエリアの変数を初期化する手段とを有している。オペレーティン
グシステムが、適切な作業データエリアを形成する場合には、作業データエリア
の形成手段は不要となる。
アプリケーションの存在確認手段は、コンピュータシステムのROM内にROM
の実行可能なプログラムが物理的に存在していることを確認する。アプリケーシ
ョンの存在確認手段が、ROMの実行可能なプログラムを検出す゛ると、ローダ
は、セットアツプ手段による動作を継続する。しかしながら、コンピュータシス
テムのROMにROMの実行可能なプログラムがない場合には、エラーメツセー
ジ手段により、エラーメツセージがユーザーに与えられ、ローダが終了手段によ
って動作を停止する。アプリケーションの存在i認手段は、さらに、ROMの実
行可能なプログラムが既にコンピュータシステムにロードされているか否かをチ
ェックする手段を含んでいる。
セットアツプ手段は、ROMの実行可能なプログラムが必要とするデータセグメ
ントレジスタ及び他のレジスタ並びにベクトルをセットする。セントアップ手段
の動作は、後述するようにROMの実行可能なプログラムの性質に応じたものと
なる。一般に、セットアツプ手段は、ローダ自体によって要求されてRAMをリ
リースし、コンピュータの制御をROMの実行可能なプログラム引き継ぐ。セッ
トアツプ手段は、ROMの実行可能なプログラムを常駐プログラム(TSR)と
する手段を有している。
ローダによる初期化が終了すると、ROMの実行可能なプログラムは、その性質
に応じて実行される。一般に、実行可能なプログラムは(i)TSRアプリケー
ションと、(i i)非TSRアプリケーションに分けられる。非TSRアプリ
ケーションにおいては、制御は、初期化後にROMの実行可能なプログラムに引
き継がれ、ROMの実行可能なプログラムが実行される。実行が終了すると、R
OMの実行可能なプログラムが終了され、通常はMS−DOSオペレーティング
システムに戻る。
TSRアプリケーションの場合、セットアツプ手段は、上述したように、ROM
の実行可能なプログラムをTSRプログラムとする。また、ROMの実行可能な
プログラムが、(i)必要な割込みベクトルをセットアツプし、(i i)アプ
リケーションをTSRプログラムとして形成するROMのコードを実行し、(i
ii)不要なコード/データをリリースしながら常駐するようにすることも可能
である。この実施例において、ROMの実行可能なプログラムは、TSRプログ
ラムとして機能するので、初期化後はROMから直接は実行されない。本発明に
よる重要な特徴は、ローダがROMの実行可能なプログラムをROMから直接実
行する為に必要な構造を有していることである。
本発明の原理によれば、ROMの実行可能なプログラムをROMから直接実行す
る方法が提供される。この方法は、実行可能なプログラムの為の作業データエリ
アをRAMに形成するステップと、ROMの実行可能なプログラムを実行するた
めのRAMのデータエリア内の変数を初期化するステップを含んでいる。好まし
くは、初期化ステップ後に、初期化に使用されたRAMがリリースされる。
回!乳哩
第1図は、従来技術によるコンピュータシステムを示す図である。
第2A図は、第1図の従来技術による二つの連結されていないコンピュータシス
テムの情報転送を示す図である。
第2B図は、モデムによって連結された第1図の従来技術による二つのコンピュ
ータ間の情報転送を示す図である。
第2C図は、直接リンクによって連結された第1図の従来技術による二つのコン
ピュータ間における情報転送を示す図である。
第3図は、第1図の従来技術のコンピュータシステムのネットワークを示す図で
ある。 第4図は、本発明の仮想ネットワーク構成の一般化したブロック図であ
る。
第5図は、本発明の仮想ネットワーク構成のより詳細なブロック図である。
第6図は、本発明の原理によるヘッダとデータ領域を含むメツセージ構造の一般
的な形式を示す図である。
第7A図は、OAh C0NNECTサービスの機能のためのメソセージ構造を
示す図である。
第7B図は、OAh LISTENサービスの機能のためのメンセージ構造を示
す図である。
第8図は、OAh DISCONNECTサービスの機能のためのメンセージ構
造を示す図である。
第9A図は、OAh 5ENDサービスの機能のためのメツセージ構造を示す図
である。
第9B図は、OAh RECEIVEサービスの機能のためのメツセージ構造を
示す図である。
第10A図は、OAh MAPサービスの機能のためのメツセージ構造を示す図
である。
第10B図は、OAh MAPサービスの機能のための返信メツセージ構造を示
す図である。
第11A図は、09h 5ELECT DTSKサービスOEhの機能のための
メツセージ構造を示す図である。
第11B図は、09h 5ELECT DISKサービスOEhの機能のための
返信メツセージ構造を示す図である。
第12A図は、09h GET FREE DISK 5PACEサービス 3
6hの機能のためのメツセージ構造を示す図である。
第12B図は、09h GET FREE DISK 5PACEサービス 3
6hの機能のための返信メツセージ構造を示す図である。
第13A図は、09h MAKE DIRECTORYサービス 36hの機能
のためのメツセージ構造を示す図である。
第13B図は、09h MAKE DIRECTORYサービス 36hの機能
のための返信メツセージ構造を示す図である。
第14A図は、09h REMOVE DIRECTORYサービス 3Ahの
機能のためのメンセージ構造を示す図である。
第14B図は、09h REMOVE DIRECTORYサービス 3Ahの
機能のための返信メツセージ構造を示す図である。
第15A図は、09h CHANGE D′IRECTORYサービス 3Bh
の機能のためのメツセージ構造を示す回である。
第15B図は、09h CHANGE DiRECTORYサービス 3Bhの
機能のための返信メツセージ構造を示す図である。
第16A図は、09h DELETE FILEサービス41hの機能のための
メツセージ構造を示す図である。
第16B図は、09h DELETE FILEサービス41hの機能のための
返信メツセージ構造を示す図である。
第17A図は、09h CREATE FILEサービス3Chの機能のための
メツセージ構造を示す図である。
第17B図は、09h CREATE FILEサービス3Chの機能のための
返信メツセージ構造を示す図である。
第18A図は、09h 0PEN FILEサービス 3Dhの機能のためのメ
ツセージ構造を示す図である。
第18B図は、09h 0PEN FILEサービス 3Dhの機能のための返
信メツセージ構造を示す図である。
第19A図は、09h CLOSE FILEサービス3Ehの機能のためのメ
ツセージ構造を示す図である。
第19B図は、09h CLOSE FILEサービス3Ehの機能のための返
信メツセージ構造を示す図である。
第20A図は、09h WRITE FILEサービス40hの機能のためのメ
ツセージ構造を示す図である。
第20B図は、09h WRITE FILEサービス40hの機能のための返
信メツセージ構造を示す図である。
第21A図は、09h READ FILEサービス 3Fh READ FI
LEの機能のためのメソセージ構造を示す図である。
第21B図は、09h READ DISKサービス 3Fhの機能のための返
信メツセージ構造を示す図である。
第22A図は、09h LSEEKサービス 42hの機能のためのメツセージ
構造を示す図である。
第22B図は、09h LSEEKサービス 42hの機能のための返信メツセ
ージ構造を示す図である。
第23A図は、09h CHMODサービス 43hの機能のためのメツセージ
構造を示す図である。
第23B図は、09h CHMODサービス 43hの機能のための返信メツセ
ージ構造を示す図である。
第24A図は、09h GET DIRECTORYサービス 47hの機能の
ためのメツセージ構造を示す図である。
第24B図は、09h GET DIRECTORYサービス 47hの機能の
ための返信メツセージ構造を示す図である。
第25A図は、09h FIND FIR3Tサービス4Ehの機能のためのメ
ツセージ構造を示す図である。
第25B図は、09h FIND FIR3Tサービス4Ehの機能のための返
信メツセージ構造を示す図である。
第26A図は、09h FIND NEXTサービス 4Fhの機能のためのメ
ツセージ構造を示す図である。。
第26B図は、09h FIND NEXTサービス 4Fhの機能のための返
信メツセージ構造を示す図である。
第27A図は、09h RENAMEサービス 56hの機能のためのメツセー
ジ構造を示す図である。
第27B図は、09h RENAMEサービス 56hの機能のための返信メツ
セージ構造を示す図である。
第28A図は、09h GET/SET TIME/DATEサービス 57h
の機能のためのメツセージ構造を示す図である。
第28B図は、09h GET/SET TIME/DATEサービス 57h
の機能のための返信メンセージ構造を示す図である。
第29図は、本発明の原理によるステータス構造を示す図である。
第30図は、本発明のサービス機能の呼出し構造を示す図である。
第31図は、第30図のステータスアドレスによって指定されたステータスイベ
ントハンドラの構成を示す図である。
第32図は、転送層機能TSENDのブロック図である。
第33図は、転送層機能TSENDによって発生された本発明の原理によるパケ
ット構造を示す図である。
第34図は、第32図のパケソ)170S12の送信動作のブロック図である。
第35図は、転送層機能TRECEIVEのフローチャートである。
第36図は、第35図のバケツ)I70R6の受信動作のフローチャートである
。
第37図は、第35図の返信170R13の送信動作のフローチャートである。
第38図は、リンク機能DRESETのフローチャートである。
第39A図及び第39B図は、本発明の原理による5ETCONNECTION
5PEED機能のフローチャートである。
第40図は、本発明の原理によるRECEIVE CHARACTER5TAT
US機能のフローチャートである。
第41図は、本発明の原理によるRECEIVE CHARACTER機能のフ
ローチャートである。
第42図は、本発明の原理による5PEED RESYNCHRON I ZA
T I ON機能のフローチャートである。
第43図は、本発明の原理によるSET LISTENSPEED機能のフロー
チャートである。
第44図は、本発明の原理によるデータリンク機能DSENDのフローチャート
である。
第45図は、本発明の原理による5END PACKETSIZE機能のフロー
チャートである。
第46図は、本発明の原理によるGET PACKETSIZE機能のフローチ
ャートである。
第47図は、本発明の原理によるデータリンク機能DRECEIVEのフローチ
ャートである。
第48図は、本発明の原理による割込みサー″ビスルーチン180−INTのフ
ローチャートである。
第49図は、本発明の原理による割込みサブルーチン180−RECVのフロー
チャートである。
第50図は、本発明の原理によるデータリンク機能DCONNECTのフローチ
ャートである。
第51図は、本発明の原理によるMAIN INITIALIZATION機能
のフローチャートである。
第52図は、本発明の原理によるC0NNECT/L T 5TEN INIT
IALIATION機能のフローチャートである。
第53図は、本発明の原理によるCHECK LINESPEED機能のフロー
チャートである。
第54図は、本発明の原理によるデータリンク機能DLISTENからのフロー
チャートである。
第55A図は、本発明によるROMの実行可能なプログラムのローダを含むコン
ピュータシステムのブロック図である。
第55B図は、本発明のローダの実施例のブロック図である。
第56A図及び第56B図は、本発明のローダの一実施例のフローチャートであ
る。
第57A図乃至第57C図は、本発明のローダに関連したRAMのメモリ割当の
他の例のブロック図である。
第58A図乃至第58C図は、ROMに格納された機能のライブラリのための、
本発明の原理によるローダの一実施例のフローチャートである。
第59A図乃至第59D図は、第58A図乃至第58C図のローダによってロー
ドされた機能、及び常駐プログラムによって動作するROM(75アプリケーシ
ヨンのための本発明によるローダの一実施例を示すフローチャートである。
註!星R里
本発明の原理によれば、少なくとも二つのコンピュータを単独の仮想コンピュー
タシステムとして構成する新規なコンピュータの構成が提供される。特に、仮想
ネットワークの構成は、システム内の各コンピュータに付加される。新規な仮想
ネットワークは、第一のコンピュータが、通常の動作を行い、第二及び他のコン
ピュータ機能が第一のコンピュータからの要求にのみサービスし、従ってサーバ
ーコンピュータと呼ばれる機能を行うことが出来る。このコンピュータの構成は
仮想コンピュータと呼ばれる。従って、本発明の原理によれば、第一のコンピュ
ータは、そのコンピュータが持つメインメモリ及び二次記憶装置のほかに、仮想
ネットワークと呼ばれる仮想ネットワーク構成を介して、他のコンピュータのメ
インメモリ、二次記憶装置、周辺機器を直接アクセスすることも出来る。事実上
、第一のコンピュータは、サーバーコンピュータの全ての資源をアクセスする。
サーバーコンピュータの二次記憶装置は、第一のコンピュータの低速二次記憶装
置となる。ここにおいて、低速は、サーバーコンピュータの情報の、第一のコン
ピュータと同様の情報のアクセス時間に対する相対的なアクセス時間を意味する
。サーバーコンピュータの情報のアクセス時間は、通常のアクセス時間に加えて
、情報要求を受ける時間及び第一のコンピュータに情報を送出する時間となる。
従って、サーバーコンピュータのアクセス時間は、第一のコンピュータの通常の
アクセス時間よりも長くなり、サーバーコンピュータの資源は、第一のコンピュ
ータの資源に比べて低速となる。情報のアクセス時間は、第一のコンピュータの
アクセス時間に対して遅くなるが、以下により詳細に説明するように、情報の転
送の融通性は、従来の転送方法に比べて大きくなり、さらに、より重要なことは
、仮想ネットワーク構成が、コンピュータアプリケーションを可能とする新規な
仮想コンピュータシステムを提供することである。
本発明による仮想ネットワーク構成は、ユーザーアプリケーションとコンピュー
タのオペレーティングシステムの間に介装される。一つの実施例において、仮想
ネットワークは、コンピュータにリードオンリメモリを有し、以下の詳述するよ
うにROM BiO2の一部としてロードされる。他の実施例においては、仮想
ネットワークは、終端及び常駐プログラムとしてロードされる。
仮想ネットワーク構成は、ユーザーアプリケーションに二つの機能を与える。第
一の機能は、第一の実施例において、ユーザーアプリケーションが二つの仮想ネ
ットワーク間において、第一のコンピュータと他方のサーバーとしてのコンピュ
ータとによって、仮想ネットワークを形成することを可能とする。第一の機能は
、他のコンピュータとの連結を可能とするのみではな(、仮想ネットワークシス
テムのステータスを得るため、及び仮想ネットワークを初期化するために、メツ
セージの送受信を可能とする。仮想ネットワークによってユーザーアプリケーシ
ョンに与えられる第二の機能は、ユーザーアプリケーションが、第一のコンピュ
ータによって実行されているときに、サーバーコンピュータの資源を用いてオペ
レーティングシステムのコマンドを実行することが出来ることである。
本発明の一実施例は、第4図に示されている。第一のコンピュータ100、第一
のユーザーアプリケーション101、仮想ネノトネットワーク管理機能102、
オペレーティングシステム103は、メインメモリ117に含まれている。第二
のコンピュータ200のメモリ217には、ユーザーアプリケーション201、
仮想ネットワーク管理機能202及びオペレーティングシステム203が与えら
れる。本実施例において、ユーザーアプリケーション101.201は、機能的
に同一であり、仮想ネットワーク管理機能102.202が、機能的に同一であ
り、オペレーティングシステム103.203は機能的に同一である。
下記の説明の基づいて、当業者が、異なるオペレーティングシステムを持つコン
ピュータおける仮想■ネットワーク管理機能を実施するために本発明の原理を使
用することが出来る。こうした実施例は、異なる実施例の仮想ネットワーク管理
機能及び各オペレーティングシステムのユーザーアプリケーションを必要とする
。しかしながら、ユーザーアプリケーションの機能及び一般的な動作は、以下に
仮想ネットワークの構成ととともに説明する。
コンピュータ100.200(第4図)は、二次記憶装置118.218及びC
PU110.120及びビデオディスプレイ、入出力装置、他の構成部品、マイ
クロ及びミニコンピユータに見られる一般的な部品を含んでいる。これらの要素
は、当業者において周知のものであり、第4図では明瞭にするために、含まれて
いない。(ピー、ツートン(P、 Norton)及びアール、ウィルトン(R
,Wilton) 、” I BM P C及びPS/2のための新しいベータ
ー ツートンプログラムガイド”マイクロ プレス(1988)参照)第4図に
示すように、CPUll01210はシリアルライン150に接続される。シリ
アルライン150は、各コンピュータ100.200のシリアルボート(図示せ
ず)に接続されている。各シリアボートは、当業者に知られている原理に従い、
カップリング、即ち、シリアルボートとCPUのコンピュータインターフェース
におけるハードウェア構成部品によって、コンピュータのCPUに接続されてい
る。これらの要素は、本発明の部分を構成しない。本発明は、シリアル接続また
は他のデータリンクによって、ユーザーに新しい通信の可能性を与える。本実施
例においてはシリアル接続が使用されているが、以下の説明に基づいて、当業者
が、コンピュータ100.200を連結するために、いかなる数の物理的または
電子的接続を使用することも可能である。ユーザーアプリケーション101.2
01及びオペレーティングシステム103.203は当業者にとって標準的に知
られている技術を用いて、コンピュータ100.200にロードされる。以下に
さらに詳述するユーザーアプリケーション101.201は、仮想ネットワーク
管理機能102.202と相互作用する一連のコマンドを含んでおり、(i)
コンピュータ100.200への仮想ネットワーク管理機能102.202のイ
ンストールを決定し、(ii) 仮想ネットワーク管理機能102.202を動
作させ、
(i i i) コンピュータ100.200を仮想コンピュータ300として
構成し、
(i v) ユーザーが特定する動作を仮想コンピュータ上で実行し、
(v) ユーザーアプリケーション101.201間の情報の送受信を行う。
−gに、ユーザーは、ユーザーアプリケーション101.102と相互動作して
、コンピュータ100またはコンピュータ200が第一のコンピュータとして選
択されるので、仮想コンピュータ300として構成される。第一のコンピュータ
が選択されると、他方のコンピュータは、定義により仮想コンピュータ300の
サーバーとなる。従来技術におけるコンピュータ間の情報の交換を行うためのい
ずれの連結されているコンピュータからもユーザーが入力が可能なシステムと異
なり、仮想コンピュータ300が形成されると、サーバーコンピュータは、第一
のコンピュータで制御され、サーバーコンピュータからのユーザー人力をサポー
トしないものとなる。
コンピュータ100を第一のコンピュータとし、コンピュータ200をサーバー
として仮想コンピュータ300が形成されると、ユーザーアプリケーション20
1はコンピュータ100との情報の交換のみをサポートし、ユーザーアプリケー
ション101は、仮想コンピュータ300を制御する。従って、ユーザーは、コ
ンピュータ101のユーザーアプリケーションにより仮想コンピュータ300を
操作する。この結果、アプリケーション101は、双方のコンピュータ100.
200の資源を使用可能とする。
ユーザーアプリケーション101が仮想ネットワーク管理機能102にコマンド
を送ると、仮想ネットワーク管理機能102は、コマンドの処理を行う。以下に
さらに詳述するように、仮想7ツトワ一ク管理機能102、ときとしては指令と
呼ばれる一組のコマンドを持ち、仮想ネットワーク管理機tm 102の動作を
制御する。さらに、いずれのユーザーアプリケーションも、仮想ネットワーク管
理機能102をアクセスするために組のコマンドを使用することが出来る。従っ
て、従来のシステムとは異なり、いずれのユーザーアプリケーションも、本発明
の仮想ネットワーク構成の特徴を使用することが出来る。
ユーザーアプリケーション101からのコマンドが、動作とともにサーバー20
0の情報を特定した場合、以下にさらに詳述する仮想ネットワーク管理機能10
2は、仮想ネットワーク管理機能202にコマンドを送り、この仮想ネットワー
ク管理機能202は、コンピュータ200の資源を使用してオペレーティングシ
ステム203(及び時としてユーザーアプリケーション201)とともに要求さ
れた動作を実行する。要求された動作が完了すると、仮想ネットワーク202は
、要求された情報及び/または要求された動作が完了したことを示すメツセージ
を仮想ネットワーク管理機能102に送出し、これらの情報及び/またはメツセ
ージはユーザーアプリケーション101に与えられる。
ユーザーアプリケーション101からのコマンドが、サーバーコンピュータ20
0の動作及び情報を特定していない場合には、コマンドは遠隔情報ではなく、局
部情報に関するものであるので、仮想ネットワーク管理機能102が、要すれば
オペレーティングシステム103とともに、コマンドを処理する。いずれの場合
においても、ユーザーアプリケーション101は、コマンドが仮想ネットワーク
管理機能102.202のいずれによって処理されたかに関知しない。
ユーザーアプリケーション101は、シリアルボート150によりコンピュータ
200に直接転送するのに適した情報を提供しない。従って、ユーザーアプリケ
ーション101は、特定の動作を行うために、仮想ネットワーク管理機能102
に向けてコマンドを発生する。一般に、コマンドは動作とある種の情報を特定し
、ユーザーアプリケーション101は、情報として使用されるバッファのポイン
タを与える。
仮想ネットワーク管理機能102は、コマンド゛及び、必要に応じて、ユーザー
アプリケーション101によって特定されたバッファの情報をメツセージに変換
し、このメツセージをシリアルライン150を経てコンピュータ100によって
転送されるパケットに変換される。同様に、パケットの情報がコンピュータ20
0によって受信されると、仮想ネットワーク管理機能202は、パケット情報を
メツセージに変換し、次いでメツセージをバッファとコマンドに変換する。
転送されたパケットからの情報のバッファを構築した後に、仮想ネットワーク管
理機能202は、要求されたバッファの情報を使用して特定されたコマンドを実
行する。動作が完了すると、仮想ネットワーク管理機能202は、バッファを返
信メツセージに変換し、返信メツセージを仮想ネットワーク管理機能102に転
送されたパケットに変換する。仮想ネットワーク102は、受信したパケットを
返信メツセージに変換し、返信メツセージをバッファに変換して、バッファをユ
ーザーアプリケーション101に与える。
上記の説明においては、ユーザーアプリケーション101がコンピュータ200
をアクセスし、または使用するものと仮定した。しかしながら、以下にさらに詳
述するように、仮想ネットワーク102もコンピュータ100の情報のためにコ
マンドの処理を行う。
一つの実施例において、仮想ネットワーク管理機能102.202は、異なる機
能120.130をサポートする(第5図)。第一の機能120.220は、コ
ンピュータ100.200から仮想コンピュータ300を形成する手段と、コン
ピュータ100と200間において情報を伝達する手段を提供する。
従って、仮想ネットワーク管理機能102.202は二つのモードで動作する。
第一のモードにおける動作は、ユーザーアプリケーション101.201が仮想
ネットワーク管理機能102.202の第一の機能を使用して、コンピュータ1
00.200の間の情報の送受信を行う。第二のモードの動作においては、コン
ピュータ100.200は仮想コンピュータとして構成され、一方のコンピュー
タがサーバーモードとされ、第一の機能120.220及び第二の機能130が
他のコンピュータのユーザーアプリケーションにより両コンピュータの資源をア
クセスするため使用される。
仮想ネットワークを使用した仮想コンピュータ300の動作は、第5図に示すシ
リアルラインを介して形成される。仮想ネットワーク管理機能102.202は
、第一の機能120.220及び第二の機能130.230、転送層170.1
80及びデータリンク層180.280を含んでいる。
(ここで使用されるように、二つの参照番号が対象の名称の後に含まれる場合、
図示の対象の機能は同一である。)各機能は、−船釣にい(つかのサービスを含
んでいる。
各仮想ネットワーク管理機能102.202の層は、隣接する層のみと交信する
。例えば、アプリケーション層160.260はユーザーアプリケーション10
1,201及び転送層170.270と接続される。第5図に示すように、シリ
アルライン150は、データリンク結合されたコンピュータ100.200も単
なる一例である。本発明の原理は、いかなるデータリンクによっても実施する異
が出来る。仮想ネットワーク管理機能のデータリンク180.280電子データ
リンク及び転送層170.270との接続を可能とするように選択されなければ
ならない。
一つの実施例において、ユーザーは、最初にユーザーアプリケーション101に
仮想ネットワーク管理機能102の起動を指令する。ユーザーの指令に応じて、
ユーザーアプリケーション101は第一の機能120にコマンドを送出して、仮
想ネットワーク管理機能102をリセットする。このコマンドは、局部動作の為
のコマンドであるので、機能120はコンピュータ100の仮想ネットワーク管
理機能102を起動する。ユーザーは、この処理を仮P、= Qノドワーク管理
機能202を起動するためにコンピュータ200において反復する。
仮想ネットワーク管理機能102.202が起動されると、ユーザーはユーザー
アプリケーション101.201を介して仮想ネットワークを形成し、コンピュ
ータ100.200を仮想コンピュータ300として機能させる。従って、この
実施例において、ユーザーは、ユーザーアプリケーション201にコンピュータ
200をサーバーとして構成するように指令する。機能220は、ユーザーアプ
リケーション201からのコマンドに応じて、仮想ネットワーク管理機能202
をサーバーとし、仮想ネットワーク202がシリアルライン150の接続コマン
ドを受信する。仮想ネットワーク管理機能202が接続コマンドを受信すると、
以下に述べるように、時としてノードと呼ばれるコンピュータ200は、ユーザ
ーアプリケーション101によって仮想ネットワーク150を介して指令された
コマンドにサービスする。
次いで、ユーザーは、ユーザーアプリケーション101にコンピュータ101.
200の接続を指令する。ユーザーアプリケーション101は、ユーザーの指令
に応じて、接続コマンドをアプリケーション層160の機能120に送出する。
接続は、機能120によってサポートされたサービスの一つである。アプリケー
ション層160は、接続メツセージ発生して、転送層170をコールする。以下
に詳述するように、アプリケーション層は機能によってサポートされる各サービ
スの独特のメツセージを発生する。しかしながら、アプリケーション層のメツセ
ージの組は、全て、メツセージヘッダ及びヘッダに続くデータ領域を含む構造と
なる。メツセージ構造は、第−及び第二の機能120.130も各サービスにつ
いて以下に詳述する。また、以下に述べるように、メツセージのデータ領域は遠
隔ノードに転送しなければならない情報を最小とするために、時々圧縮される。
サーバーコンピュータに正確に情報を伝達するための転送層170は、アプリケ
ーション層160で発生された接続メツセージをパケットに分解する。転送層1
70は、各パケットを連続的に処理する。特に、転送層170が、ヘッダ及びエ
ラーコード、即ちCRC−16チエツクサム、を各パケットに加えて、パケット
をコンピュータ200′に転送するために、データリンク層180をコールする
。
転送層170は、転送層270からのパンケトを受領したことの返信を待つ。デ
ータリンク280は、パケット280を受信し、受信したパケットを転送層27
0に送る。転送層270は送信されたパケットのエラーを検出する為にチェック
を行い、データリンク280を介してデータリンク180に返信を送出する。こ
の返信は、転送層170に送られる。
パケットがエラーを生じることなく転送された場合、次のパケットが転送層17
0に転送される。しかしながら、もし転送にエラーを生じた場合には、転送層1
70はパケットを再送信する。これは、転送層170がパケットの転送に成功す
るかまたは転送層が、現在の転送速度及びブロックサイズでは転送が行えないと
判断するまで継続される。ここで、ブロックサイズはパケットのバイト数を意味
する。
この実施例において、以下に詳細に説明するように、最大転送速度は、毎秒11
5,200ビツトであり、最大ブロックサイズは4キロビツトである。−触に、
I BM−PCまたはIBM−PC相当のコンピュータにおいて、UARTはコ
ンピュータにおけるソフトウェアとハードウェア間のインターフェイスである。
UARTは、最大転送速度を規定する。
一般的なUARTの使用は、最小のボーレートの除数は6に特定されるので毎秒
19.2キロビツトである。しかしながら、UARTのボーレート除数を1に設
定することにより、毎秒115,200ビツトを得ることが出来る。
転送層170が、情報が大きなブロックとしてエラーを生じることなく転送でき
ないと判断した場合、転送層はパケット列のパケットを、前回のパケットのブロ
ックサイズの半分のブロックサイズに分割する。より小さなブロックサイズによ
っても転送に成功しない場合には、転送層170は、パケットのブロックサイズ
をさらに半分にすることによってエラーを減少させるように試みる。転送される
パケットのサイズは、転送に成功するか、またはブロックサイズが最小の256
バイトに到達するまで、半分ずつに分割される。
ブロックサイズの減少によってエラー率が減少しない場合、転送層170は、デ
ータリンク層180に転送速度を低下させ、パケットのブロックサイズを最大に
して、エラーの減少動作を反復するよう指令する。接続時点で転送速度が決定さ
れる従来技術によるシステムと異なり、本発明の原理によれば、転送パラメータ
、即ちパケットのブロックサイズ及び/または転送速度は、パンケトの送信中に
所定数のエラーが発生した場合にいつでも調整することが出来る。従って、本発
明の仮想ネットワーク管理機能は、転送状態の変化に対応することが出来る。
パケットがデータリンク280、転送層270に正常に受信されると、転送層2
70はメツセージをアプリケーション層260に送り、アプリケーション層26
0は、転送層270から与えられたメツセージを処理して接続コマンドを受信し
たことを判定する。従って、アプリケーション層260は、仮想ネットワーク管
理機能をサーバーモードとし、仮想ネットワーク管理機能102からの情報を受
信する。
アプリケーション層270が受信されたメツセージにおいて特定された動作を完
了すると、アプリケーション層260は、返信メツセージを形成し、この返信メ
ツセージを転送層270に送る。転送層270は、転送層170に関して説明し
たようにいくつかの動作を行い、返信メンセージを転送層170に送る。転送層
170は転送層270から各パケットを受信すると、返信メツセージを形成して
、受信が完了するとこれをアプリケーション層160に転送する。アプリケーシ
ョン160は、返信メツセージを分解して、返された情報をユーザーアプリケー
ション101に与える。
仮想ネットワーク管理機能102.202に供給された完全な組のコマンド及び
仮想7ソトワークの管理機能102.202の機能は、以下により詳細に説明す
る。
仮想コンピュータ300が上述のように形成されると、ユーザーはユーザーアプ
リケーション101が使用可能な遠隔ドライブを指定する。一つの実施例におい
て、以下により詳細に説明するように、遠隔ドライブ、即ちコンピュータ2゜O
のドライブはコンピュータ100のドライブとしてアリアスされる。一般に、コ
ンピュータ100は、文字A乃至Eで特定されたドライブを有している。従って
、遠隔ドライブは局部ドライブF、 G、 8.とじてアリアスされる。従って
、ユーザーアプリケーションがドライブF、G、、、の一つの動作を指定すると
、仮想ネットワーク管理機能102は、以下により詳細に説明するように、仮想
ネットワークを介して要求を送出する。
仮想コンピュータ300が、これによってコンピュータ100において実行され
るユーザーアプリケーション101がらの要求にサービスする構成となる。以下
により詳細に説明するように、サーバーコンピュータ200は、第一の機能12
0と第二の機能130の双方に関連してサービスを行う。
他の動作モードにおいて、ユーザーアプリケーション2゜1は、コンピュータ2
00を第一の機能のサーバーサービスを使用するサーバーモードとしない。この
場合、ユーザーアプリケーション201は、第一の機能220を介してメツセー
ジを送受信する。このモードの動作において、ユーザーアプリケーション201
は、第一の機能220のサーバーサービスではなく、ユーザーアプリケーション
101がらのコマンドを処理する。従って、仮想ネットワーク管理機能202は
、ユーザーに処理コマンドを第一の機能220のサーバーサービスに与えるか、
仮想ネットワーク管理機能202の第一の機能220を介して処理を行い、メツ
セージを送信するユーザーアプリケーションを与えることによりユーザー独自の
特定のサービスを提供するかの、いずれの動作をも可能とする。
一つの実施例において、仮想ネットワーク管理機能102.202のサービスは
、割込み66hを使用して呼び出される。
第一の機能120は、ユーザーアプリケーション101.201によって呼び出
され、割込み66h、機能OAhを実行し、第二の機能130はユーザーアプリ
ケーション101.201によって呼び出されて、割込み66h、機能09hを
実行する。特定の割込み及び特定の機能の選択は、説明的なものであり、本発明
を以下に説明する特定の実施例に限定することを意図するものではない。この開
示に基づいて、当業者は、他のオペレーティングを用いて、本発明の機能のエン
トリポイントを指定し、またはこれらのサービスを既存のオペレーティングシス
テムで実行することによって、本発明を実施することが出来る。
従って、この実施例において、ユーザーアプリケーション101.201は、仮
想ネットワーク管理機能102.202を、機能09hまたは機能OAh及び指
定された機能のサービスを特定する割込み66hを実行することによって呼び出
す。機能09h及び機能OAhによってサポートされるサービスの詳細は以下に
詳述する。
ここで、例えば、AX(時として二つのレジスタAH及びALと呼ばれる)、B
X(時として二つのレジスタBH及びBLと呼ばれる)、CX(時として二つの
レジスタCH及びCLと呼ばれる)、DX(時として二つのレジスタDH及びD
Lと呼ばれる)、SP、BP、31.DI、C3,DS、SS及びESのレジス
タ名は、カリフォルニア州すンタ クララのインテル コーポレイションの1A
PX86.88及び1APX186.188.286.386.486のファミ
リーのマイクロプロセッサシステムに関連したものである。
しかしながら、これらの例は、説明のためのみのものであり、本発明の範囲を特
定の実施例に限定することを意図するものではない。この説明に基づいて、当業
者は、本発明の仮想ネットワーク管理機能を他のマイクロプロセンサ及びオペレ
ーティングシステムとともに使用することが出来る。
アプリケーション層160.260の機能120.220のサービスは、上述し
たように、割込み66h、機能OAh及びサービスを行うことで呼び出される。
表1は、本実施例による機能OAhの9つのアプリケーション層のサービスをリ
ストしている。即ち、割込み66hのサービス、機能OAhは、アプリケーショ
ン層160をアクセスするためにユーザーアプリケーションによって与えられな
ければならない。
ユーザーアプリケーション101.210によって初期化される必要のあるレジ
スタ及びユーザーアプリケーション102.201に返されるレジスタの情報も
表1に示されている。
ここで説明するサービスは、本発明の詳細な説明するためのみのものであり、本
発明を特定の実施例に限定することを意図するものではない。例えば、機能OA
hは、表1の組のサービスのみを与えることも出来、また、ユーザーの特別な必
要に応じて付加的なサービスをサポートすることも可能である。
表1
アプリケーション機能OAhのサービスLISTEN、 5ERVICE OO
hエントリ時
AL: 0OH
CX: ラインボーレート/100(0=デフオルト)Dx: ポートセレクタ
(0= COML L = com2. 、、、)SI: タイムアウト
C0NNECT、 5ERVICE O1hエントリ時
AL: 0IH
Bx: 遠隔コンピュータのノード指定CX: ラインボーレー)/100 (
0=デフオルト)Dx: ボートセレクタ(0= C0M1.1 = C0M2
. 、、、)AX:SIDまたは負のエラーコード
BX二 使用可能な遠隔ドライブの合計数DISCONNECT、5ERVIC
E 02h工ントリ時
AL: 02H
BX:SIDのセツションクローズ
5END、 5ERVICE 03h
工ントリ時
^L: 03H
BX:5ID
CX: 送信メツセージの長さ
DS : DX : 送信すべきメツセージのポインタRECEIVE、 5E
RVICE 04h工ントリ時
AI、: 04H
BX:5ID
CX: バッファの長さ
DS:Dx: 受信バッファのポインタSI: タイムアウト
リターン時
AX: メツセージの長さまたはエラーコード5TATIJS、5ERVICE
05h工ントリ時
AL: 05H
BX:SIDまたは全チー1
CX: バッファの長さ
DS : DX : ステータスパンファのポインタRESET、 5ERVI
CE 06h工ントリ時
^L: 06H
CX二 作業バッファの長さ
DS:BX: ユーザーによって供給された作業バッファのAX: エラーコー
ド
MAP、5ERVICE 07h
BX:5ID
CL: 局部アリアスドライブのドライブ番号(0= A、 1 = B et
c、)CH: 遠隔ドライブのドライブ番号(0= A、 1 = B etc
)DX: O・アリアス解除、ドアリアス生成、2・マツプデープルに戻る
DXが2の場合、
DS:CX: ドライブマツプテーブル受信のためのバッファ5EPVE、 5
ERVICE 08h工ントリ時
AL: 08H
CX: ラインボーレート/100(0−デフォルト)DX: ポインタセレク
タ(0’= C0M1.1 = C0M2. 、、、)SI: タイムアウト
BX:DI: コールアウト構造のアドレスまたはハンドらが無い場合はNuL
L(0:0)
リターン時
Ax= エラーコード
機能OAhのエラーは、ユーザーアプリケーションに負の値として返される。機
能が正常終了した場合には、正(一般にゼロ)の返信値で示される。発生する可
能性のある機能OAhからの返信値を表2に示す。
表2
機能OAhの結果
信値
〇 −機能正常終了
−1−接続不良
−2−知られていないノードID
−3−不正なライン速度
−4= 送受信エラー
−5−タイムアウトエラー
−6−特定ノードと接続不能
−7−不正なバッファアドレス
=8 − バッファが小さすぎる
−9 − 不正なセツションID
−10−使用可能なセツション無
−11−CRCエラー
−12−予期しないメツセージ
−13= 不正な遠隔ドライブ
−14−ドライブが局部ドライブでなく遠隔ドライブにアリアスされていない
=15 − 再エントリ機能要求拒否
−16−機能10のサービスがRESεTのコール以前にコールされてリターン
された
=17 − ユーザーの要求によりサービスが終了された
第二の機能130は、ユーザーアプリケーション101を介して特別のサービス
を含む割り込み66h、機能09hをコールすることにより開始される。前述し
たように、本実施例において、MS−DO3のオペレーティングサービスの選は
ぼ直交セットのサービスと考えることが出来る。直交の意味はこれらのサービス
が割込み21のサービスの完全な範囲を達成するために使用することが出来るこ
とを意味している。
せんたくされたサービスのセットは表3に示す。
表3
レジスタ
ALの値 実行されるサービス
OEh ディスク選択
理)
36h ディスクの空きスペース獲得
39h ディレクトリ作成
3Ah ディレクトリ削除
3Bh ディレクトリ変更
3Ch ファイル生成
3Dh ファイルオーブン
3Eh ファイルクローズ
41h リンク解除
42h Lseek
43h Cb+1+od
47h カレントディレクト獲得
4Ch 処理終了(局部的に処理)
4Eh 先頭検出
4Fh 次項検出
56b ファイルクローズ
57h ファイルのデータ及び時間のゲット/セット
本発明の仮想ネットワーク構成の使用を容易とするために、割込み66h、機能
09hのサービスは、MS−DO3の割込み21hのサービス番号と同一のサー
ビス番号を持っている。さらに、割込み66hがコールされたときに供給される
必要のあるレジスタ値は、レジスタAH及びパラメータALのMS−DO3の機
能コードが割込み66hの前にユーザーアプリケーションによってスタックされ
る以外は、MS−DO8の対応する割込み21hのサービスと同一になっている
。
一つの実施例によれば、グローバル割込み66hハンドラは、コールされている
プログラムに戻る前に、押し込まれたAXのパラメータを解除し手、ユーザープ
ログラムが、割込み66h機能09hの呼出し後にスタックを調整することを要
しないようにしている。
MS−DO3の割込み21hの様相の使用は、アプリケーションプログラムによ
る仮想ネットワークの使用を容易にするとともに、割込み66hと割込み21h
の連結がレジスタの再配置や様相の変更を要しないので、仮想ネットワーク構成
の実現を容易とする。実際上、以下により詳細に説明するように、割込み66h
機能09hは、通常、要求されたサービスを効率的に行うために割込み21hを
使用する。
仮想ネットワーク管理機能の動作が概括的に第5図に示されている。他の実施例
においては、グローバル割込み66hハンドラは、ユーザーアプリケーションが
割込み66hを行うと動作を開始する。ユーザーアプリケーションが割込み66
hを発生する前に、ユーザーアプリケーションは、コールされる割込み機能66
hによって必要とされるパラメータをセットする。この実施例において、全ての
割込み66hの機能09h以外の機能において、レジスタAHは、機能番号がセ
ットされ、レジスタALにはサービス番号がセットされる。
割込み66h機能09hの場合には、ユーザーアプリケーションはレジスタAX
にサービスのための適当な値をセントシ、その値をスタックに押し込める。ユー
ザーアプリケーションは、次いで、レジスタAHを9にセットし、割込み66h
を発生する。
割込み66hを受けると、グローバル割込み66hハンドラは、最初に再エンド
リレベルを実行し、このエントリ点が再エントリ点でない場合には、スタックを
切り換える。CPUレジスタのカレント値はセーブされ、例えばスクリーンセグ
メントや関連されたカラー等の種々のパラメータが決定される。グローバル割込
み66hハンドラは、次いでメインディスパッチャ−に制御を引継ぐ。このメイ
ンディスパンチャーは割込み66h機能がサポートされているか否かを判定する
。この実施例において、メインディスパッチャ−は、機能番号がOAh以下から
30h迄であることを判定する。機能がサポートされていない場合には、グロー
バル割込み66hハンドラ及び仮想ネントヮーク管理機能がロードされたコンピ
ュータシステムの応して次の動作が行われる。
出願係属中のジョン ビイ、フェアバンクス等(John P。
Fairbanks et al、)によって出願人に譲渡された、発明の名称
1低電圧携帯コンピユータ(Portable Low Power Comp
uter) Jに係るアメリカ特許出願第07/375,721号、この出願の
開示内容は、本明細書の開示の一部として援用する、に示されたような低電力の
携帯用コンピュータにおいては、機能がサポートされていない場合には、仮想ネ
ットワーク管理機能がロードされたときに動作可能となる、割込み66Hハンド
ラがコールされる。ハンドリングしているルーチンからリターンする時に、制御
は、メインディスパッチヤーからグローバル絵割込み66hハンドラに引き渡さ
れる。再エンドリレベルが決定され、スタックがエントリ時点の状態に再現され
、ハンドリングしているルーチンがレジスタAXのエラーコードを返した場合に
はキャリーフラグがセットされ、制御が呼出し側アプリケーションに戻される。
従って、仮想ネットワーク管理機能は、呼出し側アプリケーションに対して透明
となる。
他の実施例において、低電力携帯コンピュータ以外のコンピュータで、グローバ
ル割込み66hハンドラに渡された機能がサポートされていない場合には、メイ
ンディスパッチャ−は、パラメータ不良を示すエラーメツセージをグローバル割
込み66hハンドラに返し、グローバル割込み66hハンドラは再エンドリレベ
ルを低下させ、キャリーフラグをセントし、スタックを最初の状態に復元し、エ
ラーコードをユーザーアプリケーションに返す。
割込み66hコールに渡された機能がサポートされている場合には、メインディ
スパッチャ−は、その機能の最大サービス番号とサービスを比較して要求されて
いるサービスが正当か否かを判定する。サービスが正当な場合には、メインディ
スパッチャ−は、ハンドリングする機能のアドレスをロードし、制御をハンドリ
ング機能に渡す。機能からリターンする場合、メインディスパッチャ−は制御を
グローバル割込み66hハンドラに渡し、グローバル割込み66hハンド・うは
、上述したように、再エントリ点を引き下げ、返されたコードに応じてキャリー
フラグをセットし、スタックをリセフトして、ユーザーアプリケーションに戻る
。これにより、仮想ネットワーク管理機能の一連の動作が処理される。
しかしながら、割込み66h機能09hのサービスは、幾分異なった要領で処理
される。機能09hの最大サービス番号は1である。従って、機能09hが、サ
ービスOによってコールされた場合、メインディスパッチャ−は、以下により詳
細に説明するVNAディスパッチャ−をロードする。機能09hがO以外でコー
ルされると、サービスはサポートされていないが、a能は09hであるので、制
御はVNAディスパッチャ−に渡される。機能09hのサービスが終了すると、
VNAディスパッチャ−は、セーブされたレジスタをスタックから外し、スタッ
クをエントリ時点の状態に再現し、制御はグローバル割込み66hハンドラから
ユーザーアプリケーションに戻される。サービスがサポートされておらず、機能
が09hでない場合には、上述した特定の機能がサポートされていない場合の処
理と同様の処理が行われる。
機能09h及びOAhに対するアプリケーション層のサービスの動作を以下にさ
らに詳述する。グローバル割込み66hハンドラが他の処理を行っている間の、
機能09h及びOAh以外の正当な機能は、本発明の部分を構成しないので、詳
細は割愛する。
本発明の一つの実施例において、アプリケーション層の機能は、主としてC言語
で記述され、割込みハンドラ及びディスパッチャ−がアセンブリ言語で記述され
、VNAディスパッチャ−と機能09hのサービス及びメインディスパッチャ−
とアプリケーション層の機能OAhの間にはアセンブリ言語で記述されたインタ
ーフェースするためのルーチンのセットは必要である。これらのインターフェー
スルーチンは、レジスタに基づくアセンブリ環境からスタックに基づく”C”環
境にパラメータを当業者にとって周知の要領で調整するためのものである。
上述したように、VNAディスパッチャ−は、メインディスパッチャ−が割込み
66hが要求された機能番号09hとともに発行されたと判定した時に、制御を
受け取る。VNAディスパッチャ−は、最初に、仮想ネットワーク管理機能が動
作中であるか否かを判定する。仮想ネットワーク管理機能が動作していない場合
には、VNAディスパッチャ−は局部的な機能を実行する。特に、要求されたサ
ービスがMS−DO3の終了機能である場合には、仮想ネントヮーク管理機能の
再エントリ点がOにリセットされ、VNAが動作中が否かを示すフラグがセット
され、VNAが動作中ではないことを示す。レジスタは、割込み66hの開始前
の状態にリセットされ、レジスタAXの値はスタックに排出され、この時点で、
割込み21hが実行される。割込み21hからリターンする場合、処理がVNA
ディスパッチャ−に戻され、次いでメインディスパッチャ−に戻される。
仮想ネットワーク管理機能が動作中の場合は、VNAディスパンチャーは要求サ
ービス番号を調べ、機能09hにおいて仮想ネットワーク管理機能が直接サポー
トするサービス番号のテーブルに要求サービス番号がリストされているか否かを
判定する。サービスがテーブルに無い場合には、サービスは、仮想ネットワーク
管理@能が動作状態でない場合と同様に局部的に行われる。一方、サービスがテ
ーブルにある場合には、インターフェース機能が、ルックアップテーブルにより
コールされる。インターフェース機能は、パラメータを分解し、制御を実際にハ
ンドリングする機能に渡す。
各ハンドリング機能は、ユーザーアプリケーションによって与えられたパラメー
タを分解して所望の動作の−を特定するバス、ハンドルまたは他の識別子を判定
する。この情報に基づいて、ハンドリング機能は、機能が局部的に実行されるべ
きものか否かを示すフラグをセットして、VNAディスパンチャーに戻し、また
はVNAの再エントリ点を増加させ特定の機能を、以下により詳細に説明するよ
うに、実行して、機能が局部的に実行されるべきものか否かを示すフラグをクリ
アして、VNAディスパッチャ−に戻る。
ハンドリング機能からVNAディスパ・ンチャーにリターンされると、VNAデ
ィスパンチャーが機能を局部的に実行することが要求されているかを判定するた
めにフラグが調べられる。フラグがセントされている場合には、機能は、VNA
が動作していない状態で実行される。フラグがセットされていない場合には、V
NAディスパッチャ−は、再エントリ点を減少させ、上述したようにメインディ
スパッチャ−にリターンする。
以下おいて、機能09h及びOAhのための各ユーザーアプリケーション層のサ
ービスが説明される。い″くつかのサービスは局部的に実行され、他は遠隔処理
で実行される。ここで、局部は特定の動作を実行するコンピュータを意味し、遠
隔は、局部動作の結果アクセスされる他のコンピュータを意味する。仮想ネット
ワークを介して行われる各遠隔動作において、アプリケーション層機能は、転送
機能コールによって転送層に供給されるメツセージを形成する。転送層機能への
各コールには、アプリケーション層は、表4に示す情報を提供し、転送層機能か
ら表4に示された情報を受け取る。コールされた転送層機能は、アプリケーショ
ン層の説明の後に、より詳細に説明する。転送層機能は、データリンク機能をコ
ールする。このデータリンク機能は、転送層機能のあとで説明する。
アプリケーション層のメツセージ構造(第6図)は、機能OAh及び機能09h
のサービスにおいて同一である。第6図乃至第28B図において、メツセージの
各列の最初のバイトは、列の左側に示される。また、値または複数の値の記述子
が、これらの図面の各バイトに与えられる。各メンセージ160−Mは、8バイ
トのヘッダ160−MHとデータ領域160−MDで構成される。メツセージの
ヘッダの後の部分は、データ領域であるが、はとんどの場合、データ領域は数バ
イトのデータを特徴づける情報と実際のデータを含んでいる。従って、データ領
域は、メツセージ中の、仮想ネットワークを介して転送される情報の格納エリア
である。メッセー・ジには、8バイトのヘッダを含んで64キロバイトまでの情
報を含むことが出来る。
アプリケーション層160.2609によって形成されるメツセージの8バイト
のヘッダは、固定した構造を有している。この実施例において、アプリケーショ
ン層のヘッダの00hから02hまでの最初の3バイト、メツセージの発生源を
識別するために使用される。従って、第6図において、”VNA”はメツセージ
が仮想ネットワーク管理機能102のアプリケーション層160(第5図)によ
って発生されたことを示している。第四番目のバイトはスペースであり、このス
ペースもメツセージ発生源の識別子の一部と考えられる。
第7A図乃至!28B図において、スペースは、スペースのASCIIコード”
20h″で示される。第五番目のバイトは、メツセージパケットが動作メツセー
ジパケットであるか、返信メツセージ構造・ントであるかを示すために用いられ
、従って、転送方向を示す。第五番目のハイドが00hの場合、メソセージパケ
ットは、動作メツセージパケットである。第5番目のバイトがOlhの場合、メ
ツセージパケットは、返信メソセージパケットである。第六番目のハイドはメツ
セージを発生したサービスを識別するために使用される。第六番目のバイトは、
ユーザーアプリケーションによって指定されたコマンドを示す。例えば、機能0
9hのサービスの為には、第六番目のバイトは表3に与えられた10進数に対応
したものとなる。メツセージパケットの第七及び第八番目のバイトは、セツショ
ンの識別(S I D)であり、以下により詳細に説明する。
メツセージの残りの部分は、処理される機能における特定の情報を提供する。一
般に、動作パケットにおいて、情報の残りの部分はユーザーアプリケーションに
よって与えられたデータを持っている。返信パケットにおいては、メツセージの
残りの部分は、送信メツセージに指定された情報及び/または動作に対応してお
り、通常は、ユーザーアプリケーションのアプリケーション層によって与えられ
る。
機能OAhのサービスC0NNECTは、レジスタBXに指定された遠隔ノード
とのセンジョンの形成を計るものである。(ここで、ノードは、仮想ネットワー
クに接続された単独のコンピュータを意味する。)本発明の一つの実施例におい
て、アプリケーション160.260及び転送層170.270は複数のサーバ
ーコンピュータをサポートし、仮想コンピュータ300が第一のコンピュータ1
00と複数のサーバーコンピュータを持つものとする。以下に述べるように、C
0NNECTに応答するL I 5TENはセツションの識別(SID)を返す
。アプリケーション160.260によって転送層170.270に供給された
C0NNECTメソセージ160−Cは、第7A図に示されている。
二の実施例において、ノードの識別及びセツションの識別は同一である。しかし
ながら、一般に、ノードの識別は、単一の仮想コンピュータにおける各コンピュ
ータを特定するために使用される。SIDは、タスク間の干渉や混同を防止す、
るために仮想ネットワークを介して実行されるタスクを識別する。例えば、ユー
ザーアプリケーションはサーバーコンピュータ情報を要求することが出来、この
要求は1のSIDを持っている。続いて、ユーザーアプリケーションは5TDI
に関連づけられた情報がサーバーコンピュータによって提供される前に他の情報
を要求することがある。従って、第二番目の情報要求は、5ID2である。ユー
ザーアプリケーションはサーバーコンピュータから提供される情報をSTDによ
り識別する。同様に、マルチタスク環境においては、SIDは、各タスクに関連
づけられる。複数のSIDを使用する為には、以下に説明するデータリンク層の
開発が必要となる。
CON N E CT メツセージ160−C(第7A図)は、本発明の原理に
よる一般的なメツセージの構造を示している。
第五番目のバイトは”FFh”である。SIDは、C0NNECTに応答してL
I 5TEHによって発生されているので、C0NNECTメツセージ160
−Cの第七及び第八番目のへイトは、SIDが発生されていないことを示すため
oohである。この実施例において、C0NNECTメツセージ160−Cは、
16バイトの長さである。九番目及び十番目のハイドは、データを転送するため
の最大作業バッファのサイズを示している。第十一番目及び第十三番目のバイト
は、第一の識別フィールドとして使用され、第十三番目及び第十四番目のバイト
は第二の識別フィールドとして使用される。
一つの実施例において、前述したように、仮想ネットワーク構成は低電圧携帯コ
ンピュータを含んでおり、この携帯コンピュータは、全ての割込み66hコール
を処理し、続いて割込み66hを、例えば仮想ネットワーク管理機能l○2(第
5図)等の適当なハンドラに渡すグローバル割込タ66hハンドラを有している
。従って、第一の識別フィールドは、グローバル割込み66hハンドラのバージ
ョンを識別するために用いられ、第二の識別フィールドは仮想ネットワーク管理
機能102のバージョンを識別するために用いられる。グローバル割込み66h
ハンドラ及び/または仮想ネットワーク管理機能102が変更されると、異なる
バージョンのグローバル割込み66hハンドラ及び/または仮想ネットワーク管
理機能は互換性を持たない可能性がある。
C0NNECTメツセージ160−Cの第十三番目及び第十六番目のバイトはメ
ンセージ派生言語を持っている。メツセージ派生言語は、アプリケーション層の
メンセージに用いられるメツセージ構造のバージョン番号である。例えば、第7
A図乃至第28B図に示されたメツセージ構造のセントは、メツセージ派生言語
0であると考えられる。続いて、−乃至複数のメンセージ構造が変更された場合
、新しいメツセージ構造のセットのメツセージ派生言語は、例えば1となる。
以下により詳細に説明するように、仮想ネットワーク管理機能の操作はメツセー
ジ構造に関連し、異なるメツセージ派生言語は双方のメソセージ派生言語の解読
能力を持たない仮想ネットワーク管理機能において機能しない。表1に示したよ
うに、ユーザーアプリケーション101(第5図)はアプリケーション層のC0
NNECTサービスに(i)接続するコンピュータのノードID、(i i)転
送速度、(i i i)遠隔ノードからの返信を待つ、一般的に1秒の時間のタ
イムアウト値、及び(iv)接続するシリアルボートを与える。
サービスC0NNECTのハンドリング機能は、アプリケーション層の機能VC
ONNECTをコールして、この情報を機能VCONNECTに渡す。エントリ
時点において、機能VCONNECTは、最初に仮想ネットワーク管理機能が動
作状態か否かを判定する。仮想ネットワーク管理機能が動作状態でない場合には
、エラーがユーザーアプリケーションに返される。
仮想ネットワーク管理機能が動作状態である場合には、機能VCONNECTは
、以下により詳細に説明する、転送層の機能TCONNECTをコールする。機
能VCONNECTは、ユーザーアプリケーションから与えられたノードID、
転送速度、タイムアウト値及びポート情報を機能TCONNECTに与える。機
能TCONNECTが正常に動作すると、機能VCONNECTは、返信値とし
てSIDを受け取る。
この実施例において、SIDが正当であるためには、SIDは、ゼロよりも大き
く所定の最大値よりも小さくなければならない。実際に使用される返信値は任意
である。重要な特徴は、正常な場合の返信値がエラーした場合の返信値と異なる
ことである。
機能TCONNECTが正常に動作し、正当なSIDが返されると、機能VCO
NNECTは、上述したようにメツセージのヘッダを局部メツセージバッファに
形成し、機能VRESETに与える。機能VRESTは、以下により詳細に説明
する。ここでM機能がメツセージのヘッダを形成する場合、機能は局部バッファ
内のメツセージのデータ頭載を初期化する。メツセージのバ・ンファサイズ(第
7A図のバイト08h及び09h)が、局部メンセージバッファサイズにセット
され、以下により詳細に説明するように、機能VRESTを規定する。識別バイ
トは、局部バージョン識別子にセットされる。この場合の、局部は、C0NNE
CTを開始したコンピュータにおいて使用されているバージョンを意味する。メ
ツセージの形成後、機能VCONNECTは転送層の機能TSENDをコールし
てメツセージを送出する。機能TSENDは、第32図に関して後述する。
機能TSENDからエラーが返された場合、機能VCONNECTは、転送層の
機能TD I 5CCONNECTをコールし、局部コンピュータを遠隔コンピ
ュータから切り放す。
機能V CON N E CTは、2機能TSENDからの返信値をユーザーア
プリケーション101に返す。
一方、機能TSENDが正常に動作を終了した場合、機能VCONNECTは、
転送層の機能TRECE I VEをカレントのSID、受信バッファの長さ、
受信バッファのポインタ、及びタイムアウト値によってコールする。機能TRE
CE I VEがエラーを返すと、機能VCONNECTは機能TD l5CO
NNECTをコールして、エラーをユーザーアプリケーション101に返す。
機能TRECE I VEが正常に受信すると、機能VCONNECTは局部バ
ッファサイズと遠隔バッファサイズの小さい方を選択し、作業バッファサイズを
選択した値にセ・ノドする。以下の説明において、局部メンセージバッファは、
アプリケーション層のメツセージの形成に使用される作業バッファの領域を意味
する。機能VCONNECTは、以下により詳細に説明するように、メツセージ
160−Lを分解し、返信メツセージの残りの部分をセーブする。機能VCON
NECは、SIDと遠隔ドライブの合計数をユーザーアプリケーション101に
返す。
機能OAhのサービスL I 5TENがユーザーアプリケーションによってコ
ールされると、LISTENは、C0NNECT要求が仮想コンピュータのセツ
ションの開始の信号を発生するまで待機する。サービスLISTENが正常に終
了すると、5ID(第7B図の06h及び07h)及びディスクドライブカウン
ト(ハイドOAh及び0Bh)が、LISTENによって、C0NNECTに応
答したノードに返される。特に、ディスクドライブカウントは、オペレーティン
グシステムのディスクドライブサービスを使用してアクセスする事が出来る情報
記憶ドライブの数を識別する。又、LISTENが正常終了すると、ノードが、
以下により詳細に説明するように、RECE I VEにおかれる。SIDは、
セツションを特定するために全ての連続した動作において使用される。
C0NNECTに応答してLISTENによって発生されるメツセージ160−
Lは、第7B図に示されている。最初 、の8バイトは、第7A図のC0NNE
CTメツセージと、第五番目のハイドがメツセージが返信メツセージであること
を示すためにOlhに変更されている以外は同一″である。OAh及び09hの
バイトは局部メツセージバッファサイズである、OCh及びODhは局部グロー
バル割込み66hハンドラと仮想ネットワーク管理機能の二つの識別子である。
10h及びllhはサーバーのタイプである。最初のサーバータイプはLIST
ENに関連づけられており、二番目のサーバータイプは、以下により詳細に説明
する5ERVEに関連づけられている。サーバータイプは、前述した二つの動作
モードに対応している。12h及び13hのバイトは、局部仮想ネットワーク管
理機能のメツセージ派生言語を示している。
ユーザーアプリケーションがサービスL I 5TENをコールすると、L I
5TENのためのハンドリング機能は、機能VL I 5TENをコールする
。転送速度、タイムアウト値及びポートはVL I 5TENに渡される。エン
トリ点において、機能VLISTENは、まず仮想ネットワーク管理機能が動作
状態か否かを判定する。仮想ネットワーク管理機能が動作状態ではない場合には
、ユーザーアプリケーションにエラーが返される。
仮想ネットワーク管理機能が動作状態の場合には、機能VLISTENが、以下
により詳細に説明する転送層の機能TLISTENをコールして、接続要求を待
つ。機能TLISTENがエラーを返すと、エラーはユーザーアプリケーション
に返される。
しかしながら、機能TL I 5TENが正常に動作を完了した場合には、SI
Dが遠隔ノードから返されたSID値にセットされる。受信メツセージバッファ
は、局部メツセージバッファの点にセットされ、転送機能TRECE IVEは
、到来する接続メツセージを受信するためにコールされる。受信メツセージの長
さがゼロまたはメツセージの第六番目のバイトが−1にセットされていない場合
には、機能TDISCONNECTがコールされ、受信メツセージの長さが、コ
ール元のユーザーアプリケーションの返される。
受信メツセージの長さがゼロでなく、第六番目のバイトが−1の場合、及び局部
バッファサイズは受信メツセージバッファのバッファサイズよりも大きい場合、
作業バッファサイズは、受信メツセージのバッファサイズにセットされる。さも
なくば、作業バッファサイズは、局部バッファサイズにセットされる。選択され
たバッファサイズは、返信メツセージに含められる。グローバル割込み66hハ
ンドラ及び仮想ネットワーク管理機能の識別子は、局部メツセージに使用され、
C0NNECTメツセージの識別子はセーブされる。同様に、返信メツセージ1
60−Lの他の情報は、局部メツセージバッファに与えられる。転送層の機能T
SENDが、返信メツセージを送出するためにコールされる。
機能TSENDがエラーを返した場合には、機能TDISCONNECTがコー
ルされ、TD I 5CONNECTの結果がユーザーアプリケーションに返さ
れる。機能TSENDが正常終了すると、SIDが、コール元のユーザーアプリ
ケーションに返される。
サービスD I 5CONNECTのハンドリング機能は、ユーザーアプリケー
ションからのコールに応じてVDISCONNECTをコールする。機能VD
l5CONNECTは他のアプリケーション層のサービスをコールして、遠隔ノ
ードのセツションをクローズする。セツションまたは機能の異常を示すエラーコ
ードが返信される。以下に示すサービスマツプによって規定された全てのアリア
スドライブは、不正となり、前にアリアスされたドライブを参照したサービスは
不正ドライブエラーを返す。D I 5CONNECTメ・、セージ160−D
Cは、第8図に示されている。最初の8バイトは、上述した一般的な構造とされ
ており、第六番目のバイトはDISCONNECTIONを示すために”FFh
”とされる。
08h及び09hのハイドは、このとき使用されない任意をパラメータを有して
いる。
機能VD I 5CONNECTは、接続解除されるSIDに渡される。機能V
D I 5CONNECTは、最初に仮想ネットワーク管理機能が動作状態か否
かを判定する。仮想ネットワーク管理機能が動作状態ではない場合には、エラー
がユーザーアプリケーションに返される。
仮想7ツトワ一ク管理機能が動作状態である場合には、遠隔ノードは、以下に説
明するようにサーバーモードとなっており、サーバーが持っている全てのアクテ
ィブファイルがオープン及びクローズされる。DISCONNECTメツセージ
は局部バッファで形成され、転送層の機能TSENDがメツセージをサーバーに
送出するためにコールされる。サーバーのステータスは、非動作状態とされ、ク
ローズされるSIDと関連づけられ各ドライブは、本実施例においては−1のマ
ークを付すことによってドライブマツプテーブルから削除される。ドライブマツ
プテーブルは、以下に、サービスマツプに関してより詳細に説明する。SIDは
ゼロにリセットされ、転送機能TD l5CONNECTがコールされる。機能
TD I 5CONNECTの結果は、コール元のユーザーアプリケーションま
たはコール元の機能に返される。
機能OAhのサービス5ENDは、ユーザーアプリケーションの特定のメンセー
ジを受信中の遠隔ノードに送出するために使用される。5ENDは、ユーザーア
プリケーションにメツセージが正常に送信されたことを示すゼロを返す。メツセ
ージが送信されなかった場合には、負のエラーを返す。5ENDは、以下により
詳細に説明するメツセージ構造160−3(第9A図)を発生する。
RECE I VEは、受信するメンセージを待つ時に使用される。メソセージ
RECE I VEの受信時に、コール元のサービスにメンセージの実際の長さ
を返す。
5ENDは、第9A図に示すように、一般的なメツセージ160−5を生成し、
RECEIVEは、第9B図に示すように一般的な返信メツセージ160−Rを
生成する。両メツセージは、上述した最初の8ハイドに関して一般的な構造を持
ち、第六番目のハイドは一般的なメンセージであることを示すために”FCh″
にセントされる。08h及び09hのバイトはOAhのバイトから始まるメンセ
ージのデータ領域の長さを示す。
ユーザーアプリケーション101はサービス5ENDをコールし、5ENDのハ
ンドリング機能は機能VSENDをSID、メツセージの長さ、メツセージバッ
ファのポインタによってコールする。エントリ時に、機能VSENDは、まず仮
想ネットワーク管理機能が動作状態か否かを判定する。仮想ネットワーク管理機
能が動作状態ではない場合には、エラーがユーザーアプリケーションに返される
。
仮想ネットワーク管理機能が動作状態の場合には、機能■SENが、第9A図に
示す一般的なメツセージ160−5を形成する。最大メツセージサイズは、局部
メソセージバッファのサイズからメツセージのデータの長さに使用される2バイ
ト及び最初の8ハイを差し引いた長さとなる。ユーザーアプリケーション101
によって5ENDに与えられたメッセージ長
合にはメンセージの長さは、局部メツセージバッファの長さにセットされ、08
h及び09hのハイドの長さも局部メツセージバッファの長さにセットされる。
次に、ユーザーアプリケーション101から供給された一般的なメツセージは、
局部メツセージバッファにコピーされ、転送層の機能TSENDがコールされる
。機能TSENDに与えられる情報は及び機能TSENDの動作は、以下により
詳細に説明する。機能VSENDは、機能TSENDによって供給された完了コ
ードをコール元のユーザーアプリケーションに返す。
一般に、ユーザーアプリケーションは、サービスRECEIVEを:+−ルし、
RECE IVEのハンドリング機能はSID、メッセージ長、タイムアウト値
及びメツセージバッファのポインタによって機能VRECEIVEをコールする
。
エントリ点において、機能VRECEIVEは、仮想ネットワーク管理機能が動
作状態か否かを判定する。仮想ネ7)ワーク管理機能が動作状態ではない時には
、エラーがユーザーアプリケーションに返される。
仮想ネットワーク管理機能が動作状態の場合には、機能■5ENDが、転送機能
RECE I VEをコールして局部メツセージバッファの一般的なメツセージ
を受ける。TRECEIVEが、08h及び09hのバイトにゼロより大きい長
さを持つメソセージを受けると、これらのバイトの長さがセーブされる。セーブ
された長さが局部メツセージバッファのサイズよりも大きい場合には、セーブさ
れた長さは局部メツセージバッファの長さにセットされる。局部メツセージバッ
ファよりメンセージバッファにコピーされたメツセージは、機能VRECEIV
Eのコール時に渡される。機能VRECEIVEは、受信したメツセージの長さ
をコール元のユーザーアプリケーションに返す。
5TATUSは、仮想ネットワークの情報を得るために用いられる。ステータス
情報は、ユーザーアプリケーションによって提供されたバ・ンファに与えられる
。バッファの構造160−3TATUSは、第29図に示されテイル。5ID(
7)カウントフィールド(第29図のバイト02h及び03h)は現在動作状態
で供給されたバッファに示されたのセツションの数示す。SIDカウントフィー
ルドの後には、18hバイトのSIDのカウント時間の間反復されるセツション
ステータス表示子が与えられる。一つの実施例において、STDのカウントは常
に1である。
第29図に示すように、セツションステータス表示子は、しD(ハイド04h及
び05h)、遠隔ノードID(バイト06h及び07h)、送信ハイド(ハイ)
08h乃至0Bh)、受信ハイド(ハイ+−och乃至0Fh)、受信エラー(
ハイド12h及び13h)、転送速度(バイト14h及び15h)、及び上記C
0NNECTに関して説明した識別情報(バイト16h乃至19h)を含んでい
る。5TATUSはフック、即ち5EPVEのコールにおけるポインタによって
5ERVEに与えられるソフトウェアの部分、からコールすることが出来る。
ユーザーアプリケーション101は5TATUSをSID、ステータスバッファ
長、ステータスバッファのポインタによってコールする。次いで、5TATUS
ハンドリング機能は、機能VSTATUSをコールし、この機能VSTATUS
は、以下に表4に規定されたパラメータとともにより詳細に説明する転送層の機
能TSTATUSをコールする。機能TSTATUSは仮想ネットワークの状態
を獲得する。TSTATUSがエラーを返した場合、エラーコードはユーザーア
プリケーションに返される。しかしながら、エラーコードが検出されない場合に
は、グローバル割込み66hハンドラ及び仮想ネットワーク管理機能の動作中の
セツションのバージョン番号が遠隔グコーバル割込み66hハンドラ及び遠隔仮
想ネットワーク管理機能のバージョン番号にセットされる。メツセージ派生言語
はゼロにセットされる、最後に、正常終了の返信コードがユーザーアプリケーシ
ョン101に返される。
機能OAhサービスRESETは仮想ネットワーク管理機能102(第5図)の
初期化/起動または動作停止に使用される。仮想ネットワーク管理機能102は
ユーザーアプリケーション101によりサービスRESETに有効バッファポイ
ンタ及び有効バッファ長を与えることを許可される。仮想ネットワーク管理機能
101は、無効ポインタ及び/または不正なバッファ長(好ましくはゼロ)によ
ってサービスRESETをコールすることで動作を停止される。
サービスRESETのハンドリング機能は、機能VRESETをコールする。バ
ッファ長及びバッファポインタは、機能VRESETに与えられる。最初に機能
VRESETは仮想ネットワークのステータス、サーバーのステータス及びSI
Dをゼロにセットする。
渡された長さ及びバッファポインタの双方がゼロの場合には、仮想ネットワーク
に終了オフセット及び終了セグメントがゼロであれば、正常終了がコール元のプ
ログラムに返される。しかしながら、仮想ネットワークの終了オフセット及び終
了セグメントがゼロでない場合には、プログラムセグメント接頭語(PSP)の
アドレスが獲得される。PSPアドレスがゼロでない場合には、与えられたバッ
ファのPSPポインタはPSP終了アドレスにセットされ、終了オフセント及び
セグメントはゼロにセットされる。次いで、″正常終了がユーザーアプリケーシ
ョンに返される。また、PSPアドレスがゼロの場合にも、正常終了が返される
。
与えられたバッファ長が所定の最小バッファ長、一つの実施例においては256
キロバイト、よりも小さい場合には、バッファ長エラーが、コール元のユーザー
アプリケーションに返される。与えられたバッファのポインタがゼロで、与えら
れたバッファ長がゼロでなく所定の最小サイズよりも大きい場合には、バッファ
ポインタエラーが返される。
与えられたバッファ長及びバッファポインタの双方がゼロでない場合、局部バッ
ファサイズ及び局部バッファの開始位置がセットされる。カレントドライブ、デ
フォルトドライブ及び局部的に使用可能なドライブの合計数が獲得される、デフ
ォルトのディスク転送エリア(D T A、 )及びディスクの数が獲得され、
カレントDTAはデフォルトのDTAにセットされる。局部グローバル割込み6
6hハンドラ及び仮想ネットワーク管理機能のバージョン番号が獲得される。転
送層の機能TRESETが、転送層をリセットするためにコールされる。
機能TRESETが正常終了を返すと、PSPアドレスが獲得される。PSPア
ドレスがゼロでない場合、与えられたバッファのPSPポインタはPSP終了ア
ドレスの点にセットされる。PSPポインタが第一〇PSPと等しくない場合に
は、終了オフセット及びセグメントはゼロにリセットされ、PSPポインタは第
一〇PSPにセントされる。次に、仮想ネットワーク管理機能のステータスが動
作状態にセットされ、i能TREsETの結果がコール元のユーザーアプリケー
ションに返される。
機能OAhのサービスMAPは、(i)サービスRESETによってセツション
が動作状態とされると局部ドライブを遠隔ドライブとしてアリアスし、(i i
)遠隔ドライブをアリアスから開放し、または(I I I)仮想ネットワーク
管理機能を現在のマツプの状態に関して調査する。ドライブがアリアスされると
、アリアスされたドライブの全ての参照が、以下により詳細に説明するように、
仮想ネットワークを介して方向付けし直される。
MAPサービスメツセージ160−MAPは、第10A図に示されている。最初
の8バイトは、上述した一般的なヘッダ構造とされており、第六番目のハイドは
MAPを示す”FDh”にセットされる。08h及び09hのバイトはアリアス
された遠隔ドライブを示す。返信メツセージ160−RMAPは、第10B図に
示されおり、返信メソセージを示す第五番目のバイト及びエラーコードを持つバ
イト08h及び09h以外はMAPメツセージと同一である。遠隔ドライブヘの
局部ドライブのアリアスの割当は任意である。
サービスMAPは、ドライブマツプテーブルを保持する。
ドライブマツプテーブルは、26のエントリを有している。
テーブルの各エントリは、(i)このエントリのための遠隔ドライブ番号(0=
A、1=B、、、、、)と、(i i)このエントリに関連づけられたSIDを
有している。ドライブマツプテーブルのゼロ番目の要素は、局部ドライブAに関
連づけられたエントリである。仮想ドライブQに関する情報は、ドライブマツプ
テーブルのエントリ16である。エントリ16は、遠隔ドライブ番号であり、Q
はアリアスされたドライブであり、このアリアスのSIDである。
ドライブをアリアスするために、ユーザーアプリケーション101はサービスM
APをSID、局部ドライブ識別子、遠隔ドライブ識別子、アリアスパラメータ
によってコールする。アリアスパラメータが値2を有している場合、ユーザーア
プリケーションにより与えられた26のワード配列が、ユーザードライブマツプ
テーブルとして返される。ユーザードライブマツプテーブルは、ドライブマツプ
テーブルの部分集合である。テーブルの各要素は、SID値を持たず、他のセツ
ションによってマツプされたドライブは(SIDによって示された)、マツプさ
れていないものとして示される。MAPサービスのハンドリング機能はこれらの
パラメータを機能VMAPに与える。機能VMAPは、まず、仮想ネ・ノドワー
ク管理機能が動作状態か否かを判定する。仮想フントワーク管理機能が動作状態
でない場合には、エラーが返される。
仮想ネットワーク管理機能が動作状態の場合、機能VMAPは与えられたアリア
スのパラメータがゼロであるか否かを判定する。パラメータがゼロの場合には、
ドライブマツプテーブルアリアスされた局部ドライブに関連づけられたドライブ
識別子は、例えば−1の値にセットされ、アリアスされた局部ドライブが開放さ
れたことを示す。正常終了が、ユーザーアプリケーション101に返される。
アリアスのパラメータがゼロでない値を持っている場合、マップメツセージヘッ
ダが局部メツセージバッファに形成される。メツセージのバイト08h及び09
hは遠隔ドライブ識別子にセントされ、機能VMAPのコール時にVMAPに与
えられる。メツセージ160−MAPを形成した後、機能VMAPは、メツセー
ジを送出するために転送層の機能TSENDをコールする。
機能TSENDがエラーコードを返した場合、機能VMAPは転送層の機能TD
l5CONNECTをコールしてセツションを終了させる。さもなくば、機能
VMAPは、転送機能TRECE I VEをコールして、マツプされたドライ
ブの表示を持つ返信メツセージ160−RMAP(第10B図)を受信する。
TRECEIVEがエラーコードを返さない場合、及び返されたドライブが遠隔
ドライブが使用不能であることを示していない場合、ドライブマツプテーブルに
アリアスされたドライブが遠隔ドライブにセットされ、SrDにSID表示子が
セントされる。正常終了コードがユーザーアプリケーションに返される。
使用できる遠隔ドライブが無い場合、ドライブ不良エラーコードがユーザーアプ
リケーションに返される。TRECEIVEがエラーコードを受け取ると、機能
VMAPは転送層の機能TD I 5CONNECTをコールしてセンションヲ
終了する。
機能OAhのサービス5ERVEは、コンピュータ(ノード)をサーバーとして
構成するためにユーザーアプリケーションによってコールされる。サービス5E
PVEは、サービス5EPVEがノードにおいて正常に実行されると、サービス
は、仮想コンピュータを制御する遠隔コンピュータからのアプリケーション層コ
マンドに応答するものとなるので、実際上は、上記した他のサービスよりも高レ
ベルのサービスである。従って、サービス5ERVEの基本的な特徴は、ここで
説明し、アプリケーション層の機能09hのサービスの説明の後で、サービス5
ERVEをより詳細に説明するものとする。サービス5ERVEは機能VLIS
TENをコールして、遠隔コンピュータからのC0NNECTメンセージ160
−C(第7A図)を待ち、遠隔コンピュータからの要求に応じて機能VD I
5CONNECTをコールする。ユーザーアプリケーション201 (第5図)
は、5EPVEに、一般メッセージハンドラ、ステータスイベントハンドラ、ユ
ーザー終了ハンドラのアドレスを有するコールアウト構造160−C3TRUC
T (第30図)のアドレスを与える。コールアウト構造へのエントリは付加的
なものであり、未使用のエントリにはO:0がセットされる。コールアウト構造
のフォーマントは第3Q図に示されている。
一般メノセージハンドラは、S E P V Eが一般メッセージを受け取ると
常に、サーバーによってコールされる。ステータスイベントハンドラは、遠隔コ
ンピュータからの要求を受信したとき及び要求に対する返信を送出する前に、サ
ーバーによってコールされる。一般メンセージハンドラは、以下に示すように、
レジスタCXのメツセージデータの長さ、レジスタBXのメツセージバッファ・
ンファのサイズ及びレジスタDX:AXのメツセージデータのアドレスによって
コールされる。
一般メッセージハンドラは、要求にサービスし、メツセージバッファを新しいデ
ータで更新し、更新されたメツセージバッファの長さまたはレジスタAXのエラ
ーコードを返す。
レジスタAXがゼロの場合、返信メツセージは送出されない。
レジスタAXが−1の場合には、サーバーは、返信を行わず、機能VD I 5
CONNECTをコールする。
ステータスイベントハンドラは、レジスタDX:AXのステータスイベント構造
のアドレスをコールする。ステータスイベント構造160−3TATSTRUC
Tは現在のステータス構造(第31図参照)とカレントメツセージの遠隔アドレ
スを有している。ステータスイベントハンドラは、サーバーが一般的な送信メツ
セージ(第9図)とは異なるメツセージを受信するごとに、及びサーバーが一般
的な返信メツセージ(第9B図)以外のメンセージを送信する直前にコールされ
る。
一般メッセージハンドラ及びステータスイベントハンドラは、要求が遠隔ノード
との通信を要求しない限り、仮想ネットワーク管理機能202のサービスを使用
することを許可される。遠隔アクセスを要するアプリケーション層の機能09h
のサービス(表3)の参照は、セットされたキャリーフラグ及び5にセットされ
たレジスタAX(アクセス拒否)とともにリターンされる。遠隔アクセスとを要
するアプリケーション層の機能10のサービス(表1)の参照は、レジスタaX
の−15のエラーコードとともにリターンされる。
ユーザー終了ハンドラは、サーバーに終了(全ての必要なりリーンアップ処理後
に)を指令する為に、ユーザーアプリケーションによって使用される。サーバー
、遠隔機能要求がサービスされた時、及び遠隔機能要求の待機状態において、例
えば一つの実施例においては15秒毎の所定の時間間隔の後に、ユーザー終了ハ
ンドラをコールする。ユーザー終了ハンドラは、サーバーが終了されるべきでな
いことを示すレジスタAXのゼロを返す。レジスタAXから1が返されると、サ
ーバーの終了が指令される。
機能09hのディスク選択サービスOEhのためのハンドリング機能は、SID
と、ドライブの指定及び局部メツセージバッファのポインタによって機能5EL
DSKをコールする。まず、機能S E L D S Kは、第11A図に示す
ように、メツセージ1.6O−SDSKの8ハイドの・\ラダをセットアツプす
る。メツセージのハイド08h及び09hは機能5ELDSKのコールにおいて
与えられたドライブにセットされる。機能5ELDSKは、転送層の機能TSE
NDをコールして、SIDに示されたノードに仮想ネットワークを介してメツセ
ージを転送する。
ディスク選択メツセージ160−3DSK(第11A図)が、機能TSENDに
よって正常に転送されると、機能5ELDSKは、転送層の機能TRECE I
VEをコールして、返信メツセージ160−R3DSKを受ける。ディスク選
択メツセージ160−3DSKに対する返信は第11B図に示されている。ディ
スク選択返信メツセージの発生は、以下のサーバー機能の動作の説明において説
明する。機能TRECEIVEが正常に終了すると、機能5ELDSKはM返さ
れたディスク記号を返信メツセージ160−R3DSKのバイト08h及び09
hから獲得する。返されたディスクの駆動レターはレジスタAXにセットされ、
上述したように処理はユーザーアプリケーションに戻る。
TSENDまたはTRECE I VEがエラーフラグを返したときに、キャリ
ーフラグがセットされ、返信エラー値がレジスタAXに格納される。この場合も
、処理は、上述したように、ユーザーアプリケーションに戻される。
機能09hの空きディスクスペース獲得サービス36hのハンドリング機能は、
SIDと、ドライブ指定と、局部メンセージバッファのポインタによって、機能
FREESPACEをコールする。機能FREESPACEの動作は、上記した
機能5ELDSKと同一である。第12図Aのメツセージ160−FSは局部メ
ツセージバッファに形成され、転送層の機能TSEND及びTRECE IVE
が前述の要領で用いられる。機能THECE I VEによって受信される返信
メツセージ160−RFS(第12B図)は、ハイド08h及び09hにクラス
タ毎のセクタ数と、バイトOAh及びOBhの空きクラスタ数、バイトOEh及
びOFhのディスクの合計クラスタ数を持っている。機能FREES料ACEは
、これら四つの値をレジスタA、 X乃至DXにそれぞれ格納する。
エラーハンドリング及び返信は、機能5ELDSKの説明において説明する。
機能09hのディレクトリ作成サービス39h、ディレクトリ削除サービス3A
h、ディレクトリ変更サービス3Bh及びファイル削除サービス41hはいずれ
のハンドリング機能も、機能DIRFUNCSをコールする。各サービスは、機
能DIRFUNC3にSID、サービスの識別、ドライブ、サービスのためのバ
スのポインタ、及び局部メッセージバンフアのポインタを与える。サービス39
h(第13A図)、サービス3Ah (第14A図)、サービス3Bh (第1
5A図)、及びファイル削除サービス41h(第16A図)のメツセージは、同
一の基本構造を有しており、サービスを識別する第六番目のバイトのみが異なっ
ている。同様に、第13B図、第14B図、第15B図及び第16B図はそれぞ
れ同一の構造を有している。
従って、機能DIRFUNC3は、最初に局部メツセージバッファに、各機能よ
り与えられた情報に基づいてメンセージヘッダを生成する。メツセージヘッダ生
成後に、ドライブ塩のあとにバス塩が加えられ、局部メツセージバッファにコロ
ンがコピーされる。ドライブ塩は、機能DIRFUNCSより与えられるドライ
ブ識別子によって決定される。前述したように、転送層の機能TSENDは、仮
想ネットワークを介してメツセージを送信するために使用され、転送層の機能T
RECE I VEはSIDによって指定されたサーバーさらの返信メツセージ
を受信するために使用される。機能TSEND及びTRECEIVEが正常終了
すると、レジスタAXは、返信メツセージのパイI−OA、 h及びOBhに与
えられた返信メッセージ長をセットする。返信メツセージのバイト08h及び0
9hのエラーコードがエラーを示している場合には、キャリーフラグがセットさ
れる。機能TSENDまたは機能TRECE I VEがエラーを発生すると、
キャリーフラグがセットされ、レジスタAXにオペレーティングシステムのネッ
トワークエラーコードがセットされる。処理は、上述したように、ユーザーアプ
リケーションに戻される。
ファイル作成サービス3Ch及びファイルオープンサービス3Dhのためのメツ
セージ160−CF及び160−OFは、第17A図及び第1.8A図に示され
ており。関連する返信メツセージ160−RCF及び160−ROFは、第17
B図及び第18B図に示されている。これらのメソセージの構造は同一であり、
両サービスは、機能CROPをアクセスする。これらのサービスのハンドリング
機能は、SID、サービス識別子、ドライブ識別子、ファイルのアクセス属性、
ファイルのバスのポインタ、局部メツセージバッファのポインタを機能CROP
に与える。機能CROPは、ファイルをオーブンまたは作成し、16ビツトのハ
ンドルと呼ばれファイルを識別するために連続して使用される整数とともにユー
ザーアプリケーションに渡す。
しかしながら、機能CROPは遠隔ノードでファイルをオーブンし、局部のオペ
レーティングシステムはこの動作を関知しない。従って、局部のオペレーティン
グシステムは、遠隔ファイルのハンドルと同一のハンドルを局部ファイルに生成
する可能性がある。このハンドルの衝突を回避するために、機能CROPがコー
ルされる度毎に最初に局部のオペレーティングシステムを用いて他のハンドルを
作成し、局部オペレーティングシステムのハンドルカウントが、オーブンされ、
及び生成されたファイル数と一致するようにする。従って、機能CROPの最初
の動作は局部的にファイルのハンドル” S t dou t” (I卓出力)
を二重化するためにオペレーティングシステムを使用することである。この作成
により独自のファイルハンドルが確実に得られるものとなる。
機能CROPは、続いて、レジスタAXに二重化によって発生されたハンドルを
セントし、ハンドルが正常に発生されたか否かをチェックする。エラーが生しる
と、キャリーフラグがセットされ、機能CROPは、制御を、上述したようにユ
ーザーアプリケーションに渡す。
独自のハンドルを確認すると、機能CROPは@能CROPのコールによって指
定されたサービスの為のへノダを局部メツセージバッファに発生する。メツセー
ジヘッダの生成後に、ドライブ塩にパス名が加えられ、局部メツセージバッファ
にコロンがコピーされる。ドライブ塩は、機能CROPに与えられたドライブ識
別子によって決定される。前述したように、転送層の機能が仮想ネットワークを
介してメンセージを送信するために使用され、機能TRECE I VEが、3
1Dに示されたサーバーからの返信メツセージの受信に使用される。
機能TRECEIVEの転送が正常に終了し、返信メツセージのハイ)08h及
び09hがエラーを示していない場合、上述の通り、レジスタAχには既に適当
なハンドルがセントされている。従って、ファイルハンドル構造のテーブルが、
現在のSIDによって更新され、ハンドルは返信メソセージのハイドOAh及び
OBhの値にセットされる。局部的に二重化されたファイルハンドルがクローズ
され、ハンドルが独自なものに保たれる。処理は、次いで前述したように、ユー
ザーアプリケーションに返される。
しかしながら、機能TRECEIVEまたは@能TSENDがエラーコードを返
した場合には、レジスタAXにはオペレーティングシステムのネットワークエラ
ーがセットされ、キャリーフラグがセットされる。さらに、局部的に二重化され
たファイルハンドルがクローズされ、ハンドルが独自のものに維持され、処理が
、前述と同様にユーザーアプリケーションに返される。
ファイルクローズサービス3Ehのハンドリング機能は、機能NETCLO3E
をコールして、遠隔ファイルをクローズする。機能N E T CL C)S
Eには、局部メンセージバッファのポインタ及びクローズするファイルのハンド
ルが与えられる。機能NETCLO3Eは、ハンドルのテーブルから与えられた
ハンドルのSIDを獲得し、局部メツセージバッファに第19A図に示すメツセ
ージ160−CFIを形成する。
前述したように、転送層の機能TSENDが仮想ネットワークを介してメツセー
ジを転送するために使用され、機能TRECEIVEが、SIDで示されたサー
バーからの返信メンセージの受信に使用される。
機能TRECE I VEの転送が正常終了すると、レジスタAXには、返信メ
ツセージ160−RCFI(第19B図)のバイトOAh及びOBhがセントさ
れる。返信メツセージ160−RCFIのバイト08h及び09hのエラーコー
ドがエラーを示している場合には、キャリーフラグがセットされ、前述のように
処理はユーザーアプリケーションに戻される。エラーコードがエラーを示してい
ない場合には、ファイルハンドル構造のテーブルの局部ファイルハンドルがクロ
ーズされる。ファイルハンドルのテーブルのファイルハンドルとSIDはゼロに
セットされる。次いで、前述のように処理がユーザーアプリケーションに返され
る。
ライトファイルサービス40hのハンドル機能は、Iafn NETWRITE
をコールする、機能NETWRITEには、書き込みを行うファイルのハンドル
と、情報の長さ及び書き込まれる情報のポインタと、局部メツセージバッファの
ポインタが与えられる。機能NETWRITEによって発生されたメツセージ1
60−Wは、第20A図に示されており、サーバーからの返信メツセージ160
−RWは第20B図に示されている。
機能NETWRITEの動作を考察するまえに、機能NETWRITEによって
使用される圧縮態様を考察する。仮想ネットワークを介して書き込まれる情報の
圧縮は、ネットワークの能力を向上させる。しかしながら、機能NETWRIT
Eは圧縮を行わずにまたは、ここで説明する以外の圧縮態様により情報を圧縮し
て書き込みを行うことも出来る。さらに、他のメソセージ配列の情報、例えば前
述した一般的な送信メンセージ、も以下の圧縮態様を用いて処理することが出来
る。
本実施例において、情報の圧縮は、ランレングス制限(RLL)の態様を用いて
行われる。圧縮されたバッファは以下の形式を持つものとなる。
長さ (バッファ内の対象の#)
□ [対象1] □ (第一の対象)
□ [対象2〕 □ (第二の対象)
□ [対象n] □ (最終の対象)
各対象i、ここでi=1乃至n、は以下の形式の一つとなる。
圧縮された対象
IRI 対象のタイプを示すタグ(バイト)長さ #の圧縮バイト(ワード)
データ 非圧縮データ(ワード)
非圧縮の対象
゛ L゛ 対象のタイプを示すタグ(バイト)長さ 非圧縮対象のサイズ(ワー
ド)
データ ゛長さ′分のバイト数の非圧縮データ従って、隣接したバイトと同一の
データの流れにおいて圧縮された対象が発生し、隣接するバイトが同一でないデ
ータの流れにおいては非圧縮対象が生成される。例えば、以下のデータを持つバ
ッファを、インテル社のバイト順序を採用すると、
を考えると、圧縮されたバッファは、
’R’ 050001
’L’ 06 00020304050607’R’ 040002
を持つ。
以下により詳細に説明するように、機能に対応した圧縮された情報を送信または
書き込む場合、読み出しまたは受信を行う為にデータの復元(拡張)をしなけれ
ばならない。この復元(拡張)の態様は、圧縮の態様の逆のものとなり、即ち対
象の番号を読み出し、各対象に、与えられたフラグによって適当な動作を行う。
機能NETWRITEの動作に戻って説明すると、機能NETWRITEのコー
ルにおいて与えられたハンドルは、書き込み動作のSIDを獲得するためのハン
ドルテーブルのインデックスとして用いられる。情報バッファのデータ長は、局
部メツセージバッファの長さよりも大きい可能性があるので、バッファオフセッ
トと呼ばれるポインタが転送される情報バッファのデータ部分を追跡する。最初
に、バッファオフセントはゼロにセットされ、ポインタはデータの開始位置に一
致される。各転送の後に、バッファオフセットが、時としてバッファ長と呼ばれ
る局部メツセージバッファのデータ領域の長さ分増分される。
従って、バッファオフセットが書き込まれる情報の長さよりも小さい場合には、
機能NETWRITEは、局部メツセージバッファの長さと情報バッファの残る
書き込みデータの長さを比較する。情報バッファに残る書き込みデータの長さが
、局部メソセージバッファの長さよりも大きい場合には、長さは変更されない。
しかしながら、残りの書き込みデータの長さが局部メツセージバッファの長さよ
りも小さい場合には、長さが残りのデータ長にセットされる。
転送の為のバッファ長が決定されると、書き込みメツセージ160−Wの8ハイ
ドのヘッダが局部メツセージバッファに生成される。与えられたファイルのハン
ドルはバイト08h及び09hのセットされ、次いで転送されるデータが上述し
たように圧縮される。圧縮データの長さは、メツセージのパイ)OAh及びOB
hにセットされ、圧縮データがOCh以降に与えられる。転送機能TSENDが
、メツセージを遠隔ノードに転送するために使用され、機能TSENDが正常終
了すると、転送機能TRECE IVEがコールされる。
機能TRECE I VEが正常終了し、第20B図に示す返信メツセージ16
0−RWを受信すると、レジスタAXには、返信メツセージのバイトOAh及び
OBhがセットされる。
返信メソセージのバイト08h及び09hがエラーを示している場合には、キャ
リーフラグがセットされ、処理は前述のようにユーザーアプリケーションに戻さ
れる。エラーが発生しなかった場合には、結果の値とバッファ長が比較される。
結果がバッファ長よりも小さい場合には、オペレーティングシステムはデバイス
がフルとなると書き込みを中止し、エラーメンセージを発生しないので、遠隔デ
バイスがフルの状態である。こうしたエラーが生じた場合、及びバッファ長が結
果よりも大きい場合、結果がバッファオフセットの現在値に加えられる。この和
はレジスタAXにセットされ、処理は、上述したように、ユーザーアプリケーシ
ョンに戻される。従って、ユーザーアプリケーションは返された長さと情報の長
さを比較してエラーの発生を確認する。
バッファ長と返信メツセージの結果が同一の場合、バッファ長をバッファオフセ
ットに加算することによりバッファオフセットが増分され、転送処理が、バッフ
ァオフセットが情報の長さに一致するまで反復される。バッファオフセットが情
報の長さと等しくなると、バッファオフセットがレジスタAXに書き込まれ、処
理が、前述と同様にユーザーアプリケーションに戻される。
機能TRECE I VEが返信メツセージの受信に失敗するか、若しくは機能
TSENDがメツセージの送信に失敗した場合には、キャリーフラグがセットさ
れ、オペレーティングシステムのネットワークエラーのエラーコードがレジスタ
AXに書き込まれる。次いで、処理が前述のようにユーザーアプリケーションに
戻される。
リードファイルサービス3Fhのハンドリング機能は、機能NETREADをコ
ールする。NETWRITEと同様に機能する機能NETREADには、読み出
すファイルのハンドルと読み出す情報を格納したバッファポインタ及びバッファ
長と、局部メツセージバッファのポインタが与えられる。
NETREADのよって発生されるメンセージ16〇−READは、第21A図
に示されており、サーバーからの返信メツセージ160−RREADは第21B
図に示されている。
機能NETREADのコールにおいて与えられたハンドルは、読み出し動作のS
IDを獲得するためのハンドルテーブルのインデックスとして用いられる。情報
バッファのデータ長は、局部メツセージバッファの長さよりも大きい可能性があ
るので、バッファオフセットと呼ばれるポインタが転送される情報バンファのデ
ータ部分を追跡する。最初に、バッファオフセットはゼロにセットされ、ポイン
タはデータの開始位置に一致される。各転送の後に、バッファオフセットが、時
としてバ・ンファ長と呼ばれる局部メンセージバッファのデータ領域の長さ分増
分される。
読み出しメツセージ160−READの8バイトのヘッダが局部メツセージバッ
ファに生成される。与えられたファイルのハンドルはハイド08h及び09hの
セットされ、読み出されるデータの長さは、メソセージのハイドOAh及びOB
hにセットされる。転送機能TSENDが、メソセージを遠隔ノードに転送する
ために使用され、機能TSENDが正常終了すると、転送機能TRECE I
VEがコールされる。
機能TRECE I VEが正常終了し、第21B図に示す返信メツセージ16
0−RREADを受信し、返信メソセージのバイト08h及び09hがエラーを
発生を示していない場合には、返信メツセージのデータが情報ハンファに復元さ
れる。続いて、バッファオフセットが復元されたデータ長にセットされる。次に
、返信メツセージのバイトOCh及びODhのモアフラグが調べられ、遠隔ノー
ドからさらに転送されるデータがあるかどうかが確認される。モアフラグがセッ
トされている場合には、処理は、転送機能TRECE I VEに戻る。モアフ
ラグがセットされていない場合には、全てのデータが受信されており、レジスタ
AXには読みだしたデータ長を示すバッフ7オフセツトがセットされる。処理が
、前述と同様にユーザーアプリケーションに戻される。機能TRECEIVEが
返信メツセージの受信に失敗した場合には、再受信が試みられる。
しかしながら、返信メツセージにエラーの発生が示された場合には、レジスタA
Xには、返信メツセージのハイドOAh及びOBhに示された受信した長さがセ
ットされる。これは、エラーコードが遠隔ノードのオペレーティングシステムに
よって発生された場合である。キャリーフラグがセントされ、処理は、前述と同
様に、ユーザーアプリケーションに戻される。同様に、機能TSENDがメツセ
ージの送信に失敗した場合には、キャリーフラグがセットされ、オペレーティン
グシステムのネットワークエラーを示すエラーコードがレジスタAXにセントさ
れ、処理は、前述と同様に、ユーザーアプリケーションに戻される。
Lseekサービス42hのハンドリング機能は、機能NETLSEEKをコー
ルする。機能NETLSEEKには、アクセスするファイルのハンドルとオフセ
ット値とシークモードを示すリレーション表示子と局部メンセージバッファのポ
インタが与えられる。機能NETLSEEKのコールにおいて与えられたハンド
ルは、シーク動作のSIDを獲得するためのハンドルテーブルのインデックスと
して用いられる。
次にメツセージ160−3EEKの8ハイドのメツセージヘッダが局部メツセー
ジバッファの生成される。与えられたハンドルは、メツセージバッファのバイト
08h及び09hにセットされ、与えられたファイルオフセットはバイトOAh
乃至ODhにセットされ、与えられたりレーションはハイドOEh及びOFhに
セントされる。従って、第22A図に示すメツセージ160−3EEKが生成さ
れる。
転送機n T S E N Dが、サーバーノードにメンセージ160−3EE
Kを送信するためにコールされる。機能TSENDが正常終了すると、サーバー
ノードからの返信メソセージ160−R3EEK (第22B図)を受信するた
めに転送機能TRECEIVEがコールされる。転送機能TRECEIVEが正
常終了し、返信メツセージのエラーコード(ハイド08h、09h)にエラーが
示されている場合には、レジスタAXには、返信メツセージのバイトOAh及び
OBhの返されたエラーがセントされ、キャリーフラグがセットされる。処理が
、前述と同様にユーザーアプリケーションに戻される。
しかしながら、シーク動作においてエラーが発生されなかった場合、レジスタA
Xには返信メツセージ160−R3EEKのハイドOCh及びODhがセントさ
れ、レジスタDXには、返信メツセージのバイトOEh及びOFhがセットされ
る。返信メツセージのOCh乃至OFhは、新たなファイルオフセットである。
処理が、前述と同様にユーザーアプリケーションに戻される。
サービスChmoct43hのハンドリング機能は、機能NETCHMODをコ
ールする。サービスChmodは、遠隔ファイルの属性のセットまたは獲得に使
用される。従って、機能NETCHMODには、SIDと、属性と、ファイルの
属性をセットするのか獲得するのかを示すフラグ、遠隔ドライブの表示子、ファ
イルのパス名及び局部メツセージバッファのポインタが与えられる。
与えられた情報を使用して、機能NETCHMODは、局部メツセージバッファ
に第23A図に示すメツセージ160−CHMODを生成する。SID、Ji性
、機能コード(与えられたフラグ)及びバス長が、バイト08h及び09h、O
Ah及びOBh、OCh及びODhにそれぞれセットされる。
パスは、局部メツセージバッファにコピーされ、与えられたドライブ表示子に基
づいてドライブ塩及びコロンに付属される。
転送機能TSENDが、遠隔サーバーノードに完全なメツセージを作成されたメ
ツセージを送信するために使用される。
機能TSENDが正常終了すると、転送機能TRECE I VEがコールされ
て、遠隔サーバーノードからの返信メツセージを受信する。機能TRECE I
VEが第23B図に示す返信メツセージの受信に成功すると、レジスタAXに
は、返信メツセージのハイドOAh及びOBhがセットされる。遠隔ノードの動
作が正常終了すると、これらのバイトには属性が格納される。さもな(ば、これ
らのバイトはエラーコードを持つ。返信メツセージのエラーコードバイトo8h
及びo911がエラーを示している場合には、キャリーフラグがセ・ントされ、
処理は、前述と同様にユーザーアプリケーションに戻される。一方、これらのバ
イトがエラーを示していない場合には、レジスタCxは、レジスタAXの値にセ
ットされ、処理は、前述と同様にユーザーアプリケーションに戻される。
機能TRECE I VEが返信メツセージの受信に失敗するか、叉が機能TS
ENDがメツセージの送信に失敗した場合には、キャリーフラグがセットされ、
レジスタAXにオペレーティングシステムのネットワークエラーのエラーコード
がセットされ、処理は、前述と同様にユーザーアプリケーションに戻される。
カレントディレクトリ獲得サービス47hの機能09hは、遠隔ドライブの指定
されたバスをカレントディレクトリとして獲得する為に用いられる。従って、カ
レントディレクトリ獲得サービスのハンドリング機能が機能NETGETD I
Rをコールすると、、SIDと、遠隔ドライブ表示子、遠隔ドライブのパス塩
、及び局部メンセージバッファのポインタが、機能NETGETD I Rに与
えられる。与えられた情報を使用して、機能NETGETD I Rは、局部メ
ンセージハ・7フアに第24A図にしめずメソセージ160−GDIRへのヘッ
ダを発生する。メンセージのハイド08h及び09hには与えられた遠隔ドライ
ブ表示子がセットされる。返信ポインタは、返信バッファのOEhの位置に初期
設定される。機能NETGETDIRは、転送Jig(7)TSENDを:1−
ルl、、テサーバーノードにメツセージを送信する。
機能TSENDが正常終了すると、機能NETGETD IRは転送機能TRE
CEIVEをコールする。TRECETVEが返信メツセージ160−RGDI
R(第24B図)の受信に成功すると、レジスタAXにはバイ1−OAh及びO
Bhの拡張されたエラーコードがセットされる。返信メツセージのエラーコード
バイトosh及び09hがエラーを示す場合には、キャリーフラグがセットされ
、処理は、前述と同様にユーザーアプリケーションに戻される。一方、これらの
バイトがエラーを示していない場合には、返信メツセージのパス塩が、上述した
ように機能NETGETD I Rのコール時に与えられたパス塩にコピーされ
る。
機能TRECEIVEが返信メツセージの受信に失敗するか、または機能TSE
NDがメツセージの送信に失敗すると、キャリーフラグがセットされ、オペレー
ティングシステムのエラーコードがレジスタAXにセットされる。処理は、前述
と同様にユーザーアプリケーションに戻される。
セツション終了サービス4Chは、局部的に処理されるので、メンセージ構造は
不要である。セツション終了サービスのハンドリング機能は、機能NETTER
M I NATEをコールし、この機能NETTERMI NATEは、これが
遠隔ノードとの動作状態の接続である場合には、上述の機能VDI 5CONN
ECTをコールする。機能VDISCONNECTをコールした後、仮想ネ・ノ
ドワーク管理機能は、非動作状態と識別され、処理はオペレーティングシステム
に戻る。
先頭検出サービス4Ehは、特定のファイル仕様に一致する最初のファイルを検
出する。このサービスは、オペレーティングシステムによってディスク転送エリ
ア(DTA)として規定された構造を使用する。従って、全てのコンピュータに
おいてこの機能を適正に行うために、最初に″仮想ネットワーク管理機能の動作
を開始する以前に、局部割込み21hが、先頭検出サービスを実行しなければな
らないことを検出する。
この動作は効果的にDTAを初期化し、これを使用可能とする。
先頭検出サービスのハンドリング機能は、機能NETF INDFIR3Tをコ
ールする。機能NETF INDF IR3Tには、SIDと、ファイルの属性
、遠隔ドライブの表示子、パス及び局部メツセージバッファのポインタが与えら
れる。
機能NETF INDF IR3Tは、第25A図に示すメツセージ160−F
Fに、他の機能の09hサービスにおいて前述したのと同様の要領で先頭検出サ
ービスのために標準の8ハイドのヘッダを形成する。
メツセージヘッダが形成されると、パス塩がドライブ塩に加えられ、局部メツセ
ージヘッダァにコロンがコピーされる。
ドライブ塩は、機能NETF INDF IR3Tに与えられたドライブ識別子
によって決定される。機能NETFINDFIR3Tに与えられたファイルの属
性は、局部メツセージバッファのハイド08h及び09hにセントされ、バス長
はハイドOAh及びOBhにセントされる。前述したように、仮想ネットワーク
を介してメツセージを送信するためにTSENDが使用され、TSENDが正常
終了した場合には、機能TRECEIVEがコールされ、SIDで示されたサー
バーからの返信メツセージ160−RFP(第25B図)を受信する。
機能TRECEIVEがメツセージの受信に成功すると、レジスタAXには、返
信メツセージ160−RFP(第25B図)のバイトOAh及びOBhに展開さ
れたエラーコードがセットされる。返信メツセージのエラーコードバイト08h
、09hがエラーを示している場合には、キャリーフラグがセットされ、処理は
、前述と同様にユーザーアプリケーションに戻される。一方、これらのバイトが
エラーを示していない場合には、返信メソセージの28hバイトの結果がカレン
トのDTAにコピーされ、処理は、前述と同様にユーザーアプリケーションに戻
される。
機能TRECE I VEが返信メツセージの受信に失敗するか、または機能T
SENDがメツセージの送信に失敗すると、キャリーフラグがセットされ、オペ
レーティングシステムのエラーコードがレジスタAXにセットされる。処理は、
前述と同様にユーザーアプリケーションに戻される。
次項検出サービス4Fhは、特定のファイル仕様に一敗する次のファイルを検出
する。このサービスは、一般に、先頭検出サービス4Ehのあとで使用される。
従って、サーチ処理は既に初期化されている。このため、次項検出サービスのハ
ンドリング機能は、機能NETF INDNEXTをコールする時、機能NET
F INDNEXTには、SID及び局部メツセージバッファのポインタのみが
与えられる。機能NETF I NDNEXTは、第26A図に示すメツセージ
160−FNに、他の機能の09hサービスにおいて前述したのと同様の要領で
先頭検出サービスのために標準の8バイトのヘッダを形成する。メツセージへ・
ンダが形成されると、先頭検出サービスによって返されたDTAのコピーがメツ
セージのデータエリアにコピーされる。メツセージ形成後の動作は、上述したメ
ツセージ発生後の機能NETF INDF IR3Tの動作と同一である。上記
の動作は、ここで説明の一部として援用する。
リネームサービス56hは、遠隔ドライブのファイルのファイル名を変更する。
リネームサービスのハンドリング機能は、機能NETRENAMEをコールする
。機能NETRENAMEには、SIDと、ファイル名を変更するファイルの遠
隔ドライブ識別子、ファイル名を変更するファイルのバス塩、変更したファイル
名のパス及び局部メノセージバッファのポインタが与えられる。機能NETRE
NAMEは、第27A図に示すメンセージ160−RENに、他の機能の09h
サービスにおいて前述したのと同様の要領で先頭検出サービスのために標準の8
ハイドのヘッダを形成する。メツセージヘッダが形成されると、パス塩がドライ
ブ塩に加えられ、局部メソセージバッファにコロンがコピーされる。パス塩は、
ゼロで終わるものとされる。ドライブ塩は、機能NETIIIENAMEに与え
られたファイル名を変更するファイルのドライブ識別子によって決定される。こ
のパス塩の長さは、局部メツセージヘッダァのバイト08h及び09hにセント
される。ファイル名を変更されたファイルのバス塩はドライブ塩及びコロンに加
えられ局部メツセージバッファの第一のパスの次にコピーされる。バス塩はゼロ
で終わるものとされる。ドライブ塩は、機能NETRENAMEに与えられたフ
ァイル名を変更されたファイルのドライブ識別子によって決定される。このパス
塩の長さは、局部メツセージバッファのハイドOAh及びOBhにセットされる
。
前述したように、仮想ネットワークを介してメツセージ160−RENを送信す
ルタめにTSENDが使用され、TSENDが正常終了した場合には、機能TR
ECE IVEがコールされ、SIDで示されたサーバーからの返信メツセージ
160−RREN(第27B図)を受信する。
機能TRECErVEがメツセージ160−RREN(第27B図)の受信に成
功すると、レジスタAXには、返信メンセージ160 RRENのバイトOAh
及びOBhがセラ1−される。返信メツセージのエラーコードバイト08h、0
9hがエラーを示している場合には、レジスタAXに返信メツセージ(第27B
図)のバイトOAh及びOBhがセットされる。キャリーフラグがセントされ、
処理は、前述と同様にユーザーアプリケーションに戻される。
機能TRECE I VEが返信メツセージの受信に失敗するか、または機能T
SENDがメツセージの送信に失敗すると、キャリーフラグがセットされ、オペ
レーティングシステムのエラーコードがレジスタAXにセットされる。処理は、
前述と同様にユーザーアプリケーションに戻される。
機能09hのファイルデータ及び時間の獲得/セット57hは、遠隔ファイルの
ためのデータ及び時間の獲得及び遠隔ファイルへのデータ及び時間のセントの双
方に用いられる。
サービス57hのハンドリング機能は、機能’NETDATATIMEをコール
する。ファイルのハンドル、獲得動作とセット動作を区別するための機能表示子
、セント動作の為のデータと時間及び局部メツセージバッファのポインタが、ハ
ンドリング機能によって、機能NETDATAT IMEに与えられる。機能N
ETDATATIMEは、他の機能の09hサービスにおいて前述したのと同様
の要領でサービス57hのための第28A図に示すメツセージ160−GTに標
準の8バイトのヘッダを形成する。与えられたハンドルを使用してファイルハン
ドルテーブルからSIDが獲得される。メツセージヘッダが形成されると、ハン
ドルが08h及び09hにセントされ、機能表示子がOAh及びOBhにセット
され、時間がパイ)OCh及びODhにセットされ、データがOEh及びOFh
にセットされる。
前述したように、仮想ネットワークを介してメツセージを送信するためにTSE
NDが使用され、TSENDが正常終了した場合には、機能TRECEIVEが
コールされ、SIDで示されたサーバーからの返信メツセージ160−RGET
(第28B図)を受信する。
機能TRECEIVEがメツセージ160−RC;ET (第28B図)の受信
に成功し、返信メツセージのエラーコードハイl−08h及び09hがエラーを
示していない場合には、レジスタAXにゼロがセットされる。レジスタDXには
返信メツセージのバイトOCh及びODhのデータがセットされる。レジスタC
Xは、バイトOAh及びOBhの時間がセットされる。処理は、上述したように
、ユーザーアプリケージ返信メツセージのエラーコードバイト08h、09hが
エラーを示している場合には、レジスタAXに返信メツセージ(第27B図)の
バイトOAh及びOBhがセットされる。
キャリーフラグがセットされ、処理は、前述と同様にユーザーアプリケーション
に戻される。
機能TR,ECEIVEが返信メツセージの受信に失敗するか、または機能TS
ENDがメツセージの送信に失敗すると、キャリーフラグがセントされ、オペレ
ーティングシステムのエラーコードがレジスタAXにセットされる。処理は、前
述と同様にユーザーアプリケーションに戻される。
機能OAhの5ERVEサービスのハンドリング機能は、アプリケーション層の
機能VSERVEをコールする。ハンドリング機能は、サーバーノードとの通信
速度、遠隔ノードからの返信を待つ時間間隔を示すタイムアウト値、仮想ネット
ワークを形成するために使用されるボート、データセグメントのレジスタ値、余
りのセグメントのレジスタ値及び上述したように一部メッセージハンドラ、ステ
ータスイベントハンドラ、ユーザー終了ハンドラを含むコールアウト構造のポイ
ンタを与える。コールアウト構造のためのバイトマツプ160−C3RTRUC
Tは第30図に示されている。
機能VSERVEは、最初に、仮想ネットワーク管理機能が動作状態であること
を確認する。仮想ネットワーク管理機能が動作状態ではない場合には、フラグが
ユーザーアプリケーションに返され、仮想ネットワーク管理機能が動作していな
いことが示される。
仮想ネットワーク管理機能が動作中であるか否かのチェックの後に、サーバーの
ステータスが動作状態にセットされ上述した機能VLISTENがコールされて
、遠隔ノードからの接続要求を待つ。接続要求を受け取ると機能VLISTEN
はSIDを提供し、VSERVEは機能VLISTENによって与えられた値に
等しい値にSIDをセントする。SIDがゼロよりも大きい値でない場合には、
サーバーステータスが、非動作状態にセットされ、SIDがユーザーアプリケー
ションに返される。
SIDがゼロよりも大きい場合には、機能〜5ERVEは、最初に重大エラーハ
ンドラインターセプトをセットアンプする。重大エラーハンドラ当業者において
周知の要領で機能を停止させる。例えば、アール、ダンカン(R,Duncan
: (W集音))のrMS−DO3百科辞典(The MS−DOS Ency
clopedia) J フィクロソフト プレス、ワシントン州しドモンド、
390乃至398頁(1988年)、参照。
次に、機能VSERVEは、機能SERVERMAINをコールする。機能SE
RVERMAINは、以下により詳細に説明する。機能SERVERMAINは
、以下の一つ終了動作を行う。
(i) タイムアウトではないエラーの受信した時(i i) いずれかの送信
エラーが発生した時(i i i) ユーザー終了ハンドラがゼロ以外の値を返
した時
(iv) 一般送信及び受信を含むいずれかのサーバー機能がエラー値を返した
時
重大エラーハンドラをリセットするために機能SERVERMAINから機能V
SERVEに戻る場合、サーバーステータスは非動作状態にセットされる。SE
RVEMAINの結果は、ユーザーアプリケーションに返される。
機能VSERVEによって、機能SERVERMAINには、SID、データセ
グメントのレジスタ値、余りのセグメントのレジスタ値、及びコールアウト構造
のポインタが与えられる。機能SERVERMAINは、サーバーの機能ディス
パンチャー出あり、この機能は遠隔ノードである第一のコンピュータからメンセ
ージを受取り、局部的にメンセージによって指定された動作を行い、返信メツセ
ージを生成して遠隔ノードに送信する。従って、機能SERVERMA■Nは、
機能VSERVEがユーザーアプリケーション201によってコールされたとき
に、上述した機能09h及び機能OAhのサービス毎に返信メツセージを発生す
る。
機能SERVERMAINのエントリ時点において、カレントDTAが獲得され
、変数、即ちそのアトし・スに格納されている変数に関連づけされる。コールア
ウトテーブルが定義され、コールアウトテーブルが定義されたステータスイベン
トハンドラ、この実施例においては、非無効のエントリ、を持っている場合、コ
ールアウトテーブルのステータスイベントハンドラのアドレスにはイベントコー
ルアウトがセットされる。イベントコールアウトレジスタDSは、与えられたデ
ータセグメントのレジスタ値にセットされ、イベントコールアウトレジスタES
は、与えられた余りのセグメントの値にセットされる。一つの実施例によるステ
ータスイベントハンドラのバイト構造は、第31図に示されている。
機能SERVERMAINは、次に、コールアウトテーブル(第30図)のユー
ザー終了ハンドラが定義されていることを確認する。ユーザー終了ハンドラが定
義されている場合、機能SERVERMAINは、上述したユーザー終了ハンド
ラをコールする。ユーザー終了ハンドラが、ゼロを返した場合、以下に述べるよ
うに処理が続行される。ゼロでない値が返された場合には、ユーザー終了フラグ
がセットされ、処理はサーバーエラー終了処理に移る。サーバーエラー終了処理
は、サーバーをクローズするために必要なりリーンアップ動作を行い、転送層の
機能TD I 5CONNECTをコールする。機能TD l5CONNECT
が完了すると、エラーがユーザーアプリケーションに返される。
ユーザー終了ハンドラが定義されていない場合、またはユーザー終了ハンドラが
ゼロを返した場合には、機能SERVERMAINは、転送層の機能TRECE
IVEをコールする。機能TRECE I VEがタイムアウトエラーを発生
すると、機能SERVERMA INは処理を、ユーザー終了ハンドラが定義さ
れているか否かを判定するステップに戻す。機能TRECE IVEが他のエラ
ーを発生した場合には、処理は、上述したサーバーエラー終了処理に移される。
機能TRECE IVEがメツセージの受信に成功すると、メツセージの最初の
4バイトがチェックされ、識別子がメツセージが仮想ネットワーク管理機能によ
って送信されたものであることを示しているか否かが確認される。適切な識別子
が定義されていない場合には、処理はユーザー終了ハンドラが定義されているか
否かの判定ステップに戻される。さもなくば、機能SERVERMAINは、上
述したアプリケーション層の機能VSTATUSをコールする。機能SERVE
RMAINが機能VSTATUSをコールした後に、ステータスイベントハンド
ラが定義されると、ステータスバッファのアドレスによってステータスイベント
ハンドラがコールされる。
メツセージの第六番目の機能番号が一部メッセージを示していない場合には、メ
ツセージの第六番目のハイドに対応するサーバーの機能がコールされる。これら
の機能は、以下により詳細に説明する。機能が完了すると、コールされたサーバ
ーの機能によって発生された返信メッセージ長が、以下に説明する処理を行うた
めに格納される。
メツセージの第六番目のバイトが一部メッセージを示している場合には、記憶さ
れたメッセージ長がゼロにセットされる。コールアウト構造中に一部メッセージ
ハンドラが定義されている場合には、機能SERVERMAINは、一般メッセ
ージハンドラを、レジスタCX及びメツセージのデータ長、レジスタBXの局部
メツセージバッファのサイズ、レジスタ対DX:AXのメツセージデータのアド
レスを与えることによりコールする。一般メッセージハンドラは、要求にサービ
スして、新しいデータによって局部メツセージバッファを更新し、更新されたメ
ツセージバッファの長さまたはレジスタAXのエラーコードを返す。ユーザーア
プリケーションは一部メッセージハンドラを提供する必要があるため、実際の動
作または一部メッセージハンドラによって行われる動作は、ユーザーアプリケー
ションによって定義される。しかしながら、一般メッセージハンドラは、第9A
図のメツセージを分解して第9B図のメンセージのための情報を発生する。
一般メッセージハンドラによって返される長さは、以下に説明する処理の為に格
納される。長さがゼロよりも大きい場合には、8ハイドの発生された返信メソセ
ージのヘッダ(第9B図)が、局部メツセージバッファに形成され、メッセージ
長は一部返信メッセージのハイド08h及び09hにセットされる。記憶された
長さは、メッセージ長で更新される。
特定のサーバー機能または一部メッセージハンドラによる処理終了後に、記憶さ
れた長さがゼロよりも大きい場合には、機能SERVERMAINが、ハンドラ
が定義されている場合には、再びステータスイベントハンドラをコールする。ハ
ンドラをコールした後、転送層の機能TSENDがコールされ、遠隔ノードに返
信メツセージを送信する。機能TSENDがエラーを返した場合には、処理は、
上述のサーバーエラー終了処理に移行する。
ステータスイベントハンドラが定義されていないか、または機能TSENDがエ
ラーを返さなかった場合で、かつ記憶された長さがゼロよりも小さい場合には、
処理が、上述のサーバーエラー終了処理に移される。一方、記憶された長さがゼ
ロよりも大きい場合には、処理はユーザー終了ハンドラが定義されているか否か
のチェックステップに戻される。
機能09hの各機能(表3)は、SERVERMAINによってコールされるカ
ウンタバートを有している。一般に、これらの機能は送信されたメツセージを分
解し、メツセージの情報をレジスタを適当な値にセットするために使用し、局部
オペレーティングシステムに割込み21hを発生する。機能は、割込み21hに
よって供給された情報を機能の返信メソセージの発生のために使用する。特に、
ディスク選択OEh、空きスペース確保36h、ディレクトリ作成39h、ディ
レクトリ削除3Ah、ディレクトリ変更3Bh、ファイル削除4th、モード変
更43h、]5eek42h、ファイル名変更56h及びデータ及び時間獲得5
7hが、この場合にフェイルする。他の機能09hのサービスは以下に説明する
ように付加的な動作を必要とする。
作成3Ch及びオーブン3Dhにサービスするサーバーの機能は、到来するメツ
セージを分解し、適当な割込み21hのサービスを起動する。8バイトの返送メ
ツセージのヘッダ(第17B図及び第18B図)を形成した後、オペレーティン
グシステムから返された結果は、返信メツセージのバイトOAh及びOBhにセ
ットされる。オペレーティングシステムが、キャリーフラグをセットした場合に
は、本実施例においては、返信メツセージのエラーコードバイト08h及び09
hは1にセットされる。キャリーフラグがセットされていない場合には、局部フ
ァイルハンドルテーブルに空きスロットが検出される。空きスロットのSIDは
到来するメツセージのSIDにセットされ、スロットにはオペレーティングシス
テムによって返された結果、即ちハンドルがセットされる。
返信メツセージのサイズは、機能SERVERMAINに返される。
サーバー機能のクローズ3Ehのサービスは、作成3Ch及びオーブン3Dhの
機能と同様である。相違は、この機能が、到来するメツセージのSIDに対応す
るハンドルを局部ファイルハンドルテーブルでサーチすることである。SIDに
対応するハンドルが正当なハンドルである場合には、SID及びハンドルの双方
がゼロにセットされる。
サーバーの機能のり一ド3Fhのサービスは、読み出されるデータの長さく到来
するメツセージのOAh及び0Bh(第21A図))が返信メツセージのデータ
領域よりも大きい可能性があるので、幾分複雑になる。従って、この機能は、到
来するメツセージを分解してファイルハンドルと読み出すデータの長さを獲得す
る。リード長が返信メツセージのデータ長よりも大きい場合には、リードが最終
のリードを除く全てのリードの読み出しデータが返信メツセージのデータ領域を
埋める長さとなるように一連のリードに分割される。オペレーティングシステム
によって返されるリードの長さは、前回のリードに長さに加算され、記憶値と返
信メツセージからのリード長の比較によりリードが完了したことが示されるよう
に、セーブされる。前述したように読み出されたデータは圧縮され、局部メツセ
ージバッファに格納される。圧縮されたデータの長さは、返信メツセージのバイ
l−0Ah及びOBhにセットされる。
オペレーティングシステムが、リードにおけるエラーを示すためにキャリーフラ
グをセットした場合には、本実施例においては返信メツセージ(第21B図)の
バイト08h及び09hがゼロ以外の値にセットされる。オペレーティングシス
テムのエラーが発生せず、さらに読み出すバイトがある場合には、モアフラグが
セットされるが、さらに読み出すバイトがない場合にはモアフラグはセットされ
ない。次に、ハンドラが定義されている場合には、ステータスイベントハンドラ
がコールされる。ハンドラをコールした後に、転送層の機能TSENDが、返信
メツセージを遠隔ノードに送信するためにコールされる。機能TSENDがエラ
ーを返した場合には、処理は、上述のサーバーエラー終了処理に移行する。機能
TSENDがエラーを返さない場合には、全てのバイトが送信されるまでこの処
理が反復される。全てのバイトが送信されると、長さゼロが機能SERVERM
AI Nに返される。
サーバーの機能のライ)40hのサービスは、到来するメツセージ(第20A図
)を分解し、上述したようにデータを復元し、割込み21hのライトを起動する
。機能は、次いで局部メッセージバッファに返信メツセージ(第20B図)の8
バイトのヘッダを形成し、返信メツセージのバイトOAh及びOBhにオペレー
ティングシステムから与えられる結果をセットする。オペレーティングシステム
によってキャリーフラグがセットされている場合には、返信メツセージのエラー
コードがゼロ以外の値にセットされる。返信メツセージの長さは、機能SERV
ERICEMAINに返される。
サーバーの機能のディレクトリ獲得47hのサービスは、到来するメツセージ(
第24A図)を分解して、割込み21hのディレクトリ獲得サービスを起動する
機能は、次いで、返信メソセージ(第24B図)の8バイトのヘッダを形成し、
返信メツセージのハイ1−OAh及びOBhにオペレーティングシステムから与
えられる結果をセントする。オペレーティングシステムによってキャリーフラグ
がセントされている場合には、返信メツセージのエラーコードが1にセットされ
、パス長(ハイ)OCh及び0Dh)が本実施例においては2にセットされる。
キャリーフラグがセントされていない場合には、バスが局部メツセージバッファ
にコピーされ、パス長が適当な長さにセットされる。返信メンセージの長さは、
機能5ERVERI CEMA I Nに返される。
サーバーの機能の先頭検出4Ehと次項検出4Fhは、上記したサーバーのライ
ト40hの機能と同様であり、その相違は、適当な割込み21hがコールされ、
到来するメツセージ(第25A図及び第26A図)の第六番目のハイドに示され
たサービスが実行される点である。また、前述したように、DTAは、返信メツ
セージのデータ領域にコピーされる(第25B図及び第26B図)。
機能OAhのサービスに関して、一般メッセージハンドラは、上述したようにV
SEND及びVRECE I VE(7)メツセージを処理する。VD I 5
CONNECTのメツセージ(第8図)に対応して、オーブンされたファイルが
メツセージのSIDに対してチェックされる。オーブンされたファイルがSID
を持っている場合には、ファイルがクローズされる。続いて、転送層の機能TD
I 5CONNECTがコールされ、長さゼロが機能SERVERMAI N
に返される。接続が既になされており、ステータスは局部コマンドのみであり、
ネットワークを介しては何等のメツセージも送信されないので、サーバーはVL
ISTEN及びVSTATUSには応答しない。VRESETは単にリセットを
行い、ネットワークを介しては何も昇進されないのでサーバーは応答しない。
サービスマツプFDhのためのサーバーに機能MAPDR■は、到来するメツセ
ージ(第10A図)に応答する。仮想□コンピュータにおいて遠隔ドライブをア
クセスする上で、二つの問題が生しる可能性がある。一つ目は、要求されたドラ
イブは、遠隔ノードに物理的に存在しない場合である。第二番目ば、遠隔ノード
MNOオペレーティングシステムは、仮想ネットワーク管理機能の操作を禁止す
る手続を行う可能性があることである。例えば、元来、はとんどのIBMのPC
相当のマイクロコンピュータは、一つのフロッピーディスクドライブしか持って
いなかったが、ドライブはドライブAまたはドライブBとしてアドレスを与える
ことが出来た。この場合、ドライブBは、物理的に存在しない。ド・ライブAが
使用され、コマンドがドライブBに与えられた場合、オペレーティングシステム
はドライブBにディスクを挿入し、継続するためにキーを操作することを要求す
る。明らかに、遠隔ノードのこうした要求は、仮想コンピュータの動作を制限す
る。
従って、仮想ネットワーク管理機能は、物理的に存在しない遠隔ドライブのマツ
ピングを許可しない。
到来するメツセージ160−MAP(第10A図)を受信すると、サーバー機能
MAPDRVは、返信メツセージ160−RMAPの8バイトのヘッダを局部メ
ツセージバッファに生成し、返信メンセージのバイト08h及び09hを不正な
ドライブにセットする。機能MAPDRVは、次ぎにメツセージ160−MAP
に指定されたドライブが物理的に存在しかつ遠隔ノードにおいて離脱不能である
ことを確認する。
これら二つの条件に適合する場合には、返信メツセージのバイト08h及び09
hは、要求されたドライブにセ・7トされる。同様の動作が、ドライブが離脱可
能でありかつドライブが存在している場合にも行われる。返信メツセージの長さ
が、機能SERVERMAINに返される。
転送層170(第5図)は、アプリケーション層160の機能120.130ま
たはデータリンク層180の機能のいずれかによってコールされる。本実施例に
おいて、転送層の機能をコールする機能は、転送層の機能と°C”形式の右から
左にスタック上を転送されるパラメータを持つスタックフレームを介してインタ
ーフェースする。(ここで、lcl はビイ、カーニガン(B、 Kernig
han)及びディー、リソチイ(D。
Ritchie)の「Cプログラム言語」第1版、プレンティス ホール、ニュ
ーシャーシー州イーグルウッド クリソ、(1978年)に示されているような
Cプログラム言語を示している。)スタックに押し込まれるパラメータは表4に
リストされている。転送層170は、アプリケーション層160からの64キロ
バイト以下のサイズのメツセージを処理することが出来る。転送層170は、ア
プリケーション層からのメツセージを複数のパケットに分解する。転送層170
は、以下により詳細に説明するように、CRC−16checksumを使用し
てセツション識別番号(S I D)に示された遠隔ノードへの各パケットの正
確な転送を確認する。特に、転送層は、各パケットの前にヘッダを付し、CRC
−16checksumをアベンドする。パケットは次いで、データリンク層1
80に渡され、遠隔の送信先に転送される。
転送1170は、通信リンクのエラーを検出し、必要に応じてハンドリングして
いるパケットを再送信する。転送N170は、必要に応じて大きなメツセージを
パケットのセンテンスに分割する。即ち、所定回数のエラーが発生した場合、ま
たはメツセージがパケットによって送信可能な最大サイズよりも大きいサイズの
場合である。一つの実施例においては、メツセージは4キロバイト以下のパケッ
トに分割される。一般に、最大パケットサイズは、パケットの送信が正確に行わ
れたことを確認するためのエラーチェック図式に対応していなければならない。
パケットの送信中にエラーが発生すると、転送N170はパケットを所定回数再
送信する。所定の送信回数でエラーを発生せずにパケットが送信できない場合に
は、転送層170がこれに応答してパケットのサイズを半分にする。パケットの
サイズが、本実施例における最小サイズの256バイトである場合には、データ
リンク層180はライン速度を減少させ、パケットサイズをこの実施例の最大の
4キロバイトに増加させる。さらに転送エラーが生じた場合には、パケットサイ
ズ及び速度を減少させずに、転送層170は転送処理を中止して、コール元の機
能に適当なエラーコードを返す。
転送層170は、データリンク及びアプリケーション層と同様に、複数のセツシ
ョンをハンドリングすることが出来るように設計することが出来る。しかしなが
ら、一つの実施例は、データリンク層180が複数のセツションをサポートする
ためにさらに開発をようするため、最大セツション数が制限される。
本実施例において、転送層170はTL T 5TEN、TCONNECT、T
DISCONNECT、TSTATUS、TRESET、TSEND及びTRE
CE I VEと呼ばれる7つの機能を組をサポートする。コール元の機能によ
って各転送層機能に提供される必要のある入力情報及びコール元に返される結果
は表4に示されている。
表4
転送層機能
TLISTEN
エントリ時
速度: 100で除算されたラインのボーレート(最適速度の選択を許容する為
には0)タイムアウト:データを待つクロック数(0=無限)ポート: 0=C
OM1.l=C0M2...。
リターン時
SIDまたは負のエラーコードが返される
TCONNECT
エントリ時
ノード■D: 遠隔ノードの識別
速度: 100で除算されたラインのボーレート(最適速度の選択を許容する為
にはO)タイムアウト:データを待つクロック数(0=無限)ポート: O,C
O門L 1 、 C0M2. 、、。
リターン時
SIDまたは負のエラーコードが返される
TD I 5CONNECT
エントリ時
SID: セツション識別
リターン時
セツションまたは失敗を示すエラーコードが返される。
TSTATUS
長さ: 供給されるバッファ長
5tatbuf: 供給されるバッファのポインタリターン時
コール元機能から供給されたバッファは、仮想ネットワークのデータ構造で埋め
られ、TSTATUSはゼロまたはエラーコードを返す。
仮想ネットワークデータ構造
SIDデータ構造の動作中のセツション配列中の局部ノードのID番号(各動作
中のセツションに一つ)
SIDデータ構造
セツションID、送信バイト数、受信バイト数、送信エラー数、受信エラー数、
カレントボーレート、SAIバージョン、VNAバージョン、アプリケーション
Msg派生言語
TRESET
エントリ時
長さ: 供給される作業バッファ長
バッファ: 供給される作業バッファポインタ5END
エントリ時
SID: セツション識別
長さ: メッセージ長
メツセージ: メツセージポインタ
リターン時
エラーコードを返す
THECE I VE
エントリ時
SID: センジョン識別
長さ: 受信メッセージ長
バッファ: 受信メツセージポインタ
タイムアウト:データを待つクロック数(0=無限)転送層機能エラーは、負の
値としてユーザーアプリケーションに返される。転送層機能の正常終了は、正(
通常はゼロ)のリターン値で示される。リターン値の実施例が表5に示されてい
る。
表5
転送層機能の機能動作の結果のリターン値〇 −機能正常終了
−1−接続のブレーク
−2−知られていないノードID
−3−不正なライン速度
−4−送信/受信エラー
−5−タイムアウトエラー
−6−指定されたノードへの接続不能
−7−バッファが小さすぎる
−8 − 不正なバッファアドレス
−9−不正なセツションID
−10−使用可能なセツションがない
転送層機能TL I 5TEN、TCONNECT、TD I 5CONNEC
T、、TSTATUS及びTRESETは仮想のヌル動作であり、これらの機能
のそれぞれはアプリケーション層160とデータリンク層180の単なる通路と
して動作する。一般に、アプリケーションの機能が、対応する転送層の機能をコ
ールした場合、転送層の機能は対応するデータリンク層の機能をコールする。従
って、転送層の各機能は、アプリケーション層の機能で要求される情報をサポー
トしなければならない。例えば、TSTATUSは、供給されたバッファに仮想
ネットワーク管理機能に関するステータス情報を格納する。バッファに与えられ
た構造は、前述したアプリケーション層のステータスデータ構造160−3TA
TSRUCT(第29図)と等価である。
上記の機能は、通路として機能するが、転送層の機能TSEND及びTRECE
IVEはパケット数、各″パケットのサイズ及び遠隔ノードへの各パケットの転
送にデータリンク層180が使用する転送速度を制御する。特に、アプリケーシ
ョン層の機能が転送層の機能TSENDをコールした場合には、第32図に示さ
れた動作が行われる。
転送層の機能TSEND (TSEND)170−3は、エントリ時に最初にS
IDのチェック170−31を行う。SIDチェック170−3lは、TSEN
Dへのコールにおいて与えられたSIDが正当なものか否かを確認する。SID
がゼロでなく、許容最大SIDよりも小さく、SIDの一つがセンジョンに関連
づけられている場合にはSIDは正当である。TSENDl 70−5に与えら
れたSIDが不正の場合には、処理はSIDエラーリターン170−32に移行
して、本実施例においては、エラーリターンコードが−9にセットされ、アプリ
ケーション層160(第5図)のコール元の機能に返される。
SIDチェック170−3lがSIDは正当であると判定した場合には、ポイン
タチェック170−55がTSENDのコール時に与えられたメツセージポイン
タが定義されているか否か、即ちヌルか否かを判定する。メツセージポインタは
、アプリケーション層160(第5図)によって発生されたメンセージの開始点
を識別する。従って、メツセージポインタは、TSEND 170−3 (第3
2図)がメツセージを検出し、次いで処理するために、定義されなければならな
い。
ポインタチェック170−35がメツセージポインタが定義されていないと判定
した場合、処理がポインタエラーリターン170−34に移行し、本実施例にお
いては−8のエラーリターンコードがセットされ、アプリケーション層(第5図
)のコール元の機能に返される。
ポインタチェック170−35(第32図)がメツセージポインタが定義されて
いると判定した場合には、処理はリセットカウンタ170−36に移る。以下に
より詳細に説明すルヨウニ、メツセージ不良エラーカウンタが転送速度及びパケ
ットのブロックサイズを決定するときに使用される。従って、リセットカウンタ
170−36は、メツセージ不良エラーカウンタをゼロにリセットする。
メツセージ不良エラーカウンタをリセットした後、パケット数170−37が最
初にTSENDl 70−5のイコール時に与えられたメッセージ長を用いて遠
隔ノードに送信するパケット数を計算する。ここで、アプリケーション層からの
メッセージ長は64キロハイドまでの長さであるが、前述したように、転送層1
70(第5図)は、最大4キロバイトのパケットを送信することが出来る。パケ
ット数170−37(第32図)は、メッセージ長を現在のパケット長で除算し
て、その結果を切り上げにより整数値にまるめる。従って、メツセージの長さが
64キロバイトであり、現在のパケット長が最大の4キロバイトであるとすると
、パケット数170−37は、16パケツトが送信されなければならないことを
算出する。
バッファオフセット初期化170−38は、処理を局部メツセージバッファの先
頭から開始するために、バッファオフセットをゼロにセットする。バッファオフ
セットは、オフセットが次のパケットのための局部メッセージバンファのデータ
を示す。バッファオフセット初期化170−38の後に、使用可能パケットのチ
ェック170−39が行われ、使用可能な他のパケットがあるか否かが判定され
る。全てのパケットの送信が正常終了すると、使用可能なパケットチェック17
0−39は、処理をリターン170−3IOに移し、制御を、TSEND 17
0−3 (第32図)の正常終了を示すリターンコードとともにアプリケーショ
ン層160(第5図)のコール元の機能に戻す。
使用可能なパケットチェック170−39が、パケットが送信に使用可能と判定
した場合には、処理はパケット形成170−Sllに移る。パケット作成170
−Sllは、最初にパケットのためのヘッダを作成する。一つの実施例において
、第33図に示すように、ヘッダ170−MHは14ハイドの長さである。最初
の2ハイドは、例えば”■1パ等の基本的なサインである。第三及び第四番目の
バイトは、メンセージの識別を持っている。転送層は、各パケットにおいて少な
くとも二つのブロックを転送する(送信及び受信)ので、メツセージの識別が転
送されたブロックがどのパケットであるかの識別に用いられる。一つの実施例に
おいて、メツセージの識別は、TSENDが一つのパケットを処理する毎に連続
的に増加される。第五番目及び第六番目のバイトは、パケット供給源のノードの
識別であり、第七番目及び第八番目のハイドはパケットの送信先のノードの識別
である。パケット数1’70−37で計算されたメツセージを形成する全パケッ
ト数は、ヘッダの第九番目及び策士番目のバイトに格納され、転送されたパケッ
ト数はヘッダの策士一番目及び第十三番目のバイトに格納される。ヘッダの第十
三番目及び策士四番目のバイトは、この転送パケットに含まれるデータの長さを
転送するために使用される。
パケット形成170−3llがヘッダの形成を完了すると、パケットのためのデ
ータが、局部メツセージバッファより転送パケットにコピー、即ちパケット17
0−MDの記憶領域に格納される。データがコピーされると、パケット形成17
0−311はCRC−16checksumを計算し、計算されたCRC−16
checksumをデータの終端に付加する。、二の実施例において、反転CR
C−16発生機能が、CRC−16checksumを得るために使用される。
ジエイ、キャンヘル(J、 Campbell)、[シリアル通信のためのCプ
ログラミングガイトコ19章、ハワード ダブリュー。
サムズ アンド カンパニー、インディアナ州インディアナポリス、535乃至
550頁(1987年)参照。従って、パケット作成170−3llは、転送層
のヘッダと、アプリケーション層160(第5図)のメツセージの一部を構成す
るデータ領域と付属されたCRC−16エラーコードで構成される。
パケット作成170−3ll(第32図)においてパケットが形成されると、パ
ケットは、第34図に関して以下に詳述するパケット送信170−312に与え
られる。概略的に説明すると、パケット送信170−S12は、データリンク層
の機能DSENDをコールし、送信を行うパケットを提供する。データリンク層
180は、正常終了コードまたはエラーコードをパケット送信170−312に
返す。エラーチェック170−313は、エラーコードが返されたかまたは送信
が正常終了したかの判定を行う。送信が正常終了した場合には、エラーチェック
170−S13は、処理を使用可能なパケット170−39に移し、次のパケッ
トを送信するか、またはアプリケーション層160(第5図)も戻る。しかしな
がら、エラーチェック170−513(第32図)がエラーを検出した場合には
、処理はメノセージ不良チェック170−314に移る。
パケット送信170−312より戻されたエラーがメソセージ不良エラーである
場合には、処理はカウントチェック170−315に移り、メツセージ不良エラ
ーカウンタに示されたメツセージ不良カウント値が5よりも小さいか否かの判定
が行われる。メツセージ不良カウント値が5よりも小さい場合には、カウントチ
ェック170−315は制御をバケット数170−37に移し、転送処理を再実
行する。
カウントチェック170−515がメツセージ不良カウントが5以上であると判
定した場合には、処理がパケット数セット170−518に移され、パケノI−
数を1にセットする。
このブランチは、再送信を試みる前に転送パラメータを変更する。メソセージが
不良ではない場合、メッセージ不良チェック170−314及びパケット数セッ
ト170−316は、処理をハードウェアエラーチェック170−316に移す
。
いずれの接続が切断され、または不良ノードIDがパケット送信170−312
によって返された場合には、ハードウェアエラーチェック170−516は処理
をエラーコードリターン170−319に移す。しかしながら、接続が切断され
ておらず、不良ノードIDも返されなかった場合には、処理はブロックサイズチ
ェック170−320に移る。
ブロックサイズが256バイトよりも大きい場合には、処理はブロックサイズ変
更170−324に移り、現在のブロックサイズが半分にされる。ブロックサイ
ズが256バイトである場合には、ブロックサイズ変更170−320は処理を
速度変更チェック170−521に移し、転送速度の減少が可能か否かを判定す
る。仮想ネットワークがモデムを介して形成されている場合または速度が最低の
場合、転送速度は変更出来ないので、速度変更チェック170−S21は処理を
送信/受信エラーリターン170−322に移し、送信エラーをアプリケーショ
ン層のコール元の機能に返す。速度が減少可能な場合には、速度変更チェック1
70−321は速度減少170−323をコールし、以下により詳細に説明する
データリンク層の機能DRESETを使用して転送速度を減少させる。
速度減少170−323及びブロックサイズ変更17〇−324の双方は、制御
を再送信170−325に移す。再送信170−325は、バッファオフセット
を、エラーの発生したパケットの開始位置に再セットし、処理をパケット作成1
70−3llに戻す。従って、転送パラメータが変更され、転送が転送エラーが
発生した点から再開される。メツセージの転送中における転送パラメータの変更
は、従来技術のシステムでは使用できなかった機能である。従来技術においては
、転送パラメータは接続時点で決定され、これらのパラメータが全ての転送に使
用されていた。
パケット送信170−312(第32図)は、第34図により詳細に示されてい
る。エラーカウンタ初期化170−3P1は最初に送信エラーカウンタとデータ
リンク送信エラーカウンタを選択した値、一般的に3にセットする。送信エラー
カウンタの初期化170−3PI後に、処理はデータリンク送信170−3P2
に移され、以下により詳細に説明するデータリンクの機能DSENDがコールさ
れる。機能DSENDはパケットを遠隔ノードに転送する。データリンク送信1
70−3P2は、処理をデータリンク送信エラーチェック170−3P3に移し
、データリンク送信エラーが発生したか否かを確認する。データリンク送信エラ
ーが発生していない場合には、処理はデータリンク受信170−3P9に移るが
、データリンク送信170−3P2においてエラーが発生している場合には、送
信エラーカウンタが、送信エラーカウンタ減分170−3P4によって減分され
る。ハードウェアエラーチェック170−3P5は、データリンク送信エラーが
接続切断エラーまたは不良ノードIDであるか否かを判定する。これらのエラー
のいずれかの場合には、処理はエラーリターン170−3P6に移され、送信1
70−312に戻される。
しかしながら、ハードウェアエラーチェック170−3P5がいずれのエラーも
検出しなかった場合には、データリンク送信エラーカウンタが、エラーカウンタ
減分170−3P7によって減分される。接続チェック170−3P8は、エラ
ーカウンタの値がゼロであるか否かを判定する。カウントチェック170−3P
8がエラーカウントがゼロであると判定した場合には、処理は上述のように機能
するエラーリターン170−3P6に戻る。しかしながら、カウントチェックが
ゼロよりも大きい場合には、処理は、データリンク送信170−3P2に戻され
、パケットの再送信が行われる。
データリンク送信170−3P2が、パケットをエラーを発生せずに送信すると
、上述のように、データリンク送信エラーチェック170−3P3は、処理をデ
ータリンク受信170−3P9に移行し、ヘッダ、リターンコード及びCRC−
16checksumを持つ遠隔ノードからの返信メツセージを待つ。データリ
ンク受信が返信メツセージを受信すると、エラーチェック170−3PIOがリ
ターンコードを分析してデータリンクの受信エラーが発生したか否かを判定する
。データリンク受信エラーが検出されると、エラーチェック170−3PIOは
エラーリターン170−SP15に分岐して、エラーコードをセットし、データ
リンクをクリアして、処理を減分カウンタ170−3P19に移す。しかしなが
ら、エラーチェック170−3PIOがエラーを検出しない場合には、処理はC
RCサムチェック170″−3PIIに移る。
CRCサムチェック170−3PIIは、ヘッダのCRC−16checksu
mを計算し、計算したchecksumとデータリンク受信179−3P9によ
って受信されたCRC−16checksumを比較する。CRC−16che
cksumが同一でない場合には、処理はリターンCRCエラー170−3P1
6に移り、データリンクのクリアがコールされ、CRCエラーのエラーコードが
セットされ、次いで処理がカウンタ減分170−3P19に移される。CRCサ
ムチェック170−3PIIがエラーを検出しなかった場合には、処理はメツセ
ージIDチェック170−3P12に移る。
データリンク受信170−3P12からのメソセージIDが転送されたパケット
のメツセージIDと一致しない場合には、処理はリターン不良メツセージ170
−3P17に移り、不良メツセージのエラーコードがセットされる。最後に、リ
ターンコード170−5P13がデータリンク受信17〇−5P70からのリタ
ーンコードをチェンジし、ゼロよりも小さい場合には、処理をリターンエラーコ
ードをセントする170−318に移し、ついで処理をカウンタ減分170−3
P19に移す。エラーチェック170−3PIO117〇−3PII、170−
3P12及び170−3P13がエラーを検出しない場合には処理はリターン1
70−3P14に移り、正常終了のリターンコードが送信170−3に返される
。
カウンタ減分170−3P19は、制御を受け取ると、データリンクエラーカウ
ンタ及び送信エラーカウンタを減分して、制御をカウントチェック170−3P
20に移す。エラーカウントがゼロよりも大きい場合、処理はデータリンク送信
170−312に移され、送信処理が繰り返される。一方、カウントチェック1
70−SP20がゼロを検出すると、処理はエラーリターン170−3P21に
移り、エラーコードを送信170−3に返す。一つの実施例においては、処理1
70−3P9乃至170−3P1Bは、エラーチェック170−33の後のパケ
ット送信170−312によってコールされる別の機能に含まれる。
前述したように、TSENDは遠隔ノードのTRECE IVEに応答する。T
RECEIVE機能はTSEND機能と同様であり、第35図乃至第37図に示
されている。第35図に示すように、転送層170の機能TRECE IVEは
、最初にSIDチェック170−R1とポインタチェック170−R5を実行す
る。これらのチェック動作は、前述した送信170−3(第32図)のSIDチ
ェック170−3l及びポインタチェック170−35と同様であり、これらの
説明はここに説明の一部として援用する。ポインタチェック170−R5、処理
をパケット受信170−R6に移す。パケット受信170−R6に関しては第3
6図に関して以下により詳細に説明する。パケット受信170−R6は、データ
リンク機能DRECEVEをコールする。バケツ)受信170−R6は、受信デ
ータの長さ、ヘー)ダ、CRC−16checksum及びエラーが検出された
場合のエラーコードを提供する。エラーチェック170−R7は、パケット受信
170−R6がエラーを発生したか否かを判定する。エラーが検出されない場合
には、コピーデータ170−R12が受信したデータを受信バッファにコピーし
、処理が返信送信17〇−313に移される。
返信送信170−R13は、第37図に関してより詳細に説明する。概略的に説
明すれば、返信送信170−S13は、情報のパケットをデータリンク受信17
0−SF3 (第34図)に送信する。返信送信170−R13(第35図)に
エラーが発生した場合には
エラーチェック170−R14が処理を、先に機能を説明したパケット受信17
0−R6に渡す。
返信送信170−R13がエラーを発生していない場合には、エラーチェック1
70−R14が制御を最終パケントチェノク170−R16に渡し、最終パケッ
トが処理された場合には処理をリターン170−R18に移し、またはハンファ
フルチェソク170−R17に移す。受信バッファがフルの場合には、処理はバ
ッファエラーリターン170−R19に移され、パンファフルエラーが、アプリ
ケーション層160のコール元の機能に返される。バッファがフルでない場合に
は、ハ・ノファフルチェック170−R17は処理をパケット受信170−R6
にもとしてTSENDからの次のパケットを獲得する。
上記の説明においては、エラーチェック170−R1がパケット受信170−R
6からエラーを受け取らなかったと仮定している。エラーチェック170−R7
がエラーを検出すると、処理は増分カウンタ170−R8に移され、受は取った
エラーカウンタを増分した後に、制御をハードウェアエラーチェック170−R
9に移す、パケット受信170−R6が不良ノードID、接続切断またはタイム
アウトエラーを返した場合には、ハードウェアエラーチェック170−R9はリ
ターンエラーコード170−R15に処理を移す。さもなくば、ハードウェアエ
ラーチェック170−R9は、メッセージ不良チx 7り170−RIOに処理
を移す。パケット受信170−R6でメソセージ不良エラーが発生していない場
合には、メッセージ不良チェック170−RIOは制御をパケット数セット17
0−R11に移し、パケット数を1にセントし、制御をパケット受信170−R
6に移す。TRECEIVEは、パケット受信170−R6から後のステンブの
ループを、最終バケノトチェック170−R16がコール元のブコグラムに返す
まで継続する。
パケット受信170−R12(第35図)は、第36図により詳細に示されてい
る。パケット受信170−R6のエントリ時点において、データリンク受信17
0−RPIはデータリンク機能DRECEIVEコールされる。機能DRECE
IVEは、データリンク送信170−3P2 (第34図)によってコールされ
たDSENDから送信されたはパケットを受信する。受信されたパケットには、
前述したように、ヘッダと、データ領域とCRC−16checksumが含ま
れる。エラーチェック170−RP2(第3′6図)は、データリンク受信17
0−RPIがエラーを発生したか否かを判定する。データリンク受信170−R
PIによってエラーコードが発生されている場合には、処理はデータリンククリ
ア170−RP3に移行して、データリンク機能DFLUSHがコールされる。
ついで、選択されたエラーチェック170−RP4が返されたエラーが接続切断
エラーか、タイムアウトエラーか、不良ノードIDエラーかを判定する。エラー
がこれらの選択されたエラーの一つである場合には、処理はリターンエラーコー
ド170−RP7に移り、さらにエラーチェック170−R7(第35図)にも
どる。他のエラーが発生した場合には、処理は以下により詳細に説明する返信送
信170−RP5に移る。返信送信170−RP5はエラーパケットを発生して
、データリンク送信170−32(第34図)にこのバケツ1−を送信する。返
信送信170−RP5(第36図)がエラーパケットに送信を完了すると、処理
は、リターンエラーコード170RP6に移り、次いでエラーチェック170−
R7(第35図)に帰る。
エラーチェック170−RP2(第37図)がエラーが検出していない場合には
、処理はCRCエラーチェック170−PR8に移る。CRCエラーチェックは
、受信したデータバケットのCRC−16checksumを発生し、このCh
ecksumを受信したCRC−16checksumと比較する。CRC−1
6checksumが同一の場合、CRCエラーチェック170−RP8は処理
をパケットエラーチェ7り170−RP2に移す。パケットエラーチェックは、
パケット数を受信したパケット数と比較して、それらが同一でない場合には、処
理をデータリンククリア170−RP3に移し、データリンクの以下により詳細
に説明する機能DFLUSHをコールする。データリンククリア170−RP3
は、処理を、以下により詳細に説明する返信送信に渡し、最後にメッセージ不良
エラー170−RP5に帰る。パケット番号が同一の場合。、パケットエラーチ
ェック170−PH10は、処理をデータリターン170−RPI6に移し、受
信したデータの長さとヘッダとCRC−16checksumをパケット受信に
返す。
上記の説明はCRCエラーチェック170−RP8がエラーを検出しなかったと
仮定している。しかしながら、CRCエラーチェック170−RP8がエラーを
検出すると、処理はデータクリア170−RP3、返信送信170−RP5及び
リターンCRCエラーコード170−RPIIに移る。この他の処理170−R
P3.170−RP5及び170−RPllは、前述した170−RP3.17
0−R,R5及び170−RPI5の処理と等価であり、それらの説明はここで
説明の一部として援用する。
返信送信170−RP5 (第36図)は、第37図により詳細に示されている
。返信送信170−RPIのエントリ時点で、返信パケット作成170−3RI
は転送層ヘッダ、与えられたリターンコード及びCRC−16checksum
を持つパケットを発生する。パケットを生成した後、カウンタ初期化170−3
R2は、エラーカウンタをゼロに初期化する。データリンク送信170−3R3
は、データリンク層の機能DSENDをコールして、パケット作成170−3R
1によって作成されたパケットを、受信したパケットを送信した遠隔ノードに転
送する。エラーチェック170−3R5はエラーがデータリンクの送信において
発生したものであるか否かを判定する。エラーが発生していない場合には、処理
はリターン170−3R6に移され、従って制御がパケット受信170−R6の
次の動作に渡される。
しかしながら、データリンク送信170−3R3がエラーを発生すると、エラー
チェック170−3R5は処理WPカウンタチェック170−3R7に移す。エ
ラーカウンタが5よりも小さい場合、カウンタチェック170−3R7は制御を
カウンタ増分170−3R4に渡し、エラーカウンタを増分し、処理をデータリ
ンク送信170−SR3に戻す。一方、エラーカウンタが5以上の場合、カウン
タチェック17o−3R7は制御をデータリンクエラー170−3R8に移し、
データリンクエラーコードとともにバケット受信170−R6に戻す。
従って、転送層機能TSEND及びTRECE I VEは、データリンク層の
機能DFLUsH,DSEND及びDRECEIVEをコールする。さらに、こ
れらの機能に加えて、7’−タ’) ンクN180はDL l5TEN、DCO
NNECT。
DDISCONNECT、DSTATUS及びDRESETを含んでいる。上述
したように、これらの各機能は、転送層の対応する機能に応答する。データリン
ク機能から戻される可能性のあるリターンコードは以下の表6に示されている。
データリンク層180は、単一のパケットをネットワークを介して(即ち、物理
層)、サポートするサービスとともに転送する。データリンク層においては、正
確さのチェ7りは行われない。転送層170が速度の変更を要求した場合、デー
タリンク層180は、変更が可能な場合には速度を変更する。データリンク層1
80は低レベルである。これは、層がハードウェアに依存していることを意味す
る。マイクロフィッシュの付属書類Aに示された実施例は、本明細書の開示の一
部として援用する。データリンク層180はIBMパーソナルコンピュータ及び
18M互換のパーソナルコンピュータ相当である。しかしながら、データリンク
層の適切な使用によって、転送層170はハードウェアとは独立に機能すること
が出来るものとなる。
データリ7り機能DRESET (DRESET)4.t、データリンクトライ
バの初期化、再初期化に使用される。転送層機能TRESETまたはDRESE
Tをコールする全ての他の機能は、通常のリセットを行うか転送速度を変更する
かを示すパラメータをDRESETに渡す。
機能DRESETI 8O−R5Tの一つの実施例が第38図に示されている。
リセットチェック180−R3TIは機能DRESETに与えられたパラメータ
を分析して、通常のリセットが示されている場合には処理を初期化180−R3
T2に渡す。初期化180R3T2は、データリンク機能において使用される変
数を選択された値にセントする。特に、データリンク層機能はインターキャラク
タタイムアウト変数と他のタイムアウト変数を使用して、動作が起るのを待つ時
間を監視する。これらの変数は、「タイムアウト変数」と「インターキャラクタ
タイムアウト変数」として区別される。
これらの両度数は、接続状態を示すためにフラグが使用されたときは、ゼロにセ
ットされる。いずれかのタイムアウト変数のゼロ値は変数が経過時間の監視に使
用されていないことを意味する。
本実施例において、接続状態フラグは、非接続状態または接続成功状態を示すた
めにゼロにセットされ、接続またリッスンが試みられていることを示すために−
1にセットされ、速度調整が試みられていることを示す為に−2にセットされる
。フラグ及び変数がセットされると、初期化180−R3T2は転送遅れ変数を
例えば1の所定の値にセントし、処理をリターン180R3T3に移し、コール
元の機能に正常終了を返す。
リセットチェック180−R3TIは、機能DRESETに与えられたパラメー
タが速度変更を示している場合には、処理をパラメータセット180−R3T4
に移す。パラメータセット180−R3T4は、まず、タイムアウト変数を30
秒にセットし、続いて速度セラ)180−3S(図示せず)をコールして、転送
速度を300ポーにセットする。速度セット180−3Sは、UART速度を機
能に与えられたインデックスにセットする。
速度セント180−3Sは、最初にUARTボーレート除数のテーブルを検索し
、与えられたインデックスに対応した除数をロードする。UARTの状態は、転
送動作が完了するまでモニタされ、その後にUARTボーレートの除数のアクセ
スが許可される。ロードされた除数は、UARTに送られる。この時の、下位の
バイトから上位のバイトに順に転送される。続いて、UARTボーレートの除数
のアクセスが禁止され、処理はコール元の機能に戻される。この場合は、パラメ
ータセット180R3T4である。以下において、速度セラl−180−3Sは
この一連の動作を意味する。
速度セラ)180−3Sによって速度が300ポーにセットされると、ボーレー
トインデックスは速度を示すためにセットされる。次いで。パラメータセット1
80−R3T4は処理と接続速度セット180−C3に移す。接続速度セット1
80−C3は、遠隔ノードとの転送速度を設定する。接続速度セラ)180−C
3の動作は、第39A図及び第39B図に関して以下に詳述する。接続速度セラ
)180−C3の動作が正常終了すると、エラーフラグが返され素、エラーチェ
ック180−R3T5は、処理を遅れカウントセット180−DCに移す。遅れ
カウントセット180−DCはまず、ボーレートインデックスをロードする。第
一の変数であるループカウントが相対マシン速度を示すために使用される。
この実施例において、ループカウントは機能DCONSECTによって、二つの
クロック間の時間間隔においてレジスタ対DX:AXを増分出来る回数として定
義される。1クロツクは本実施例においては55ミリ秒である。ボーレートが1
9200よりも大きい場合、遅れカウントは、8倍され、ボーレート除数で除算
されたループカウントに等しい値にセントされる。一方、ボーレートが1920
0よりも小さい場合、遅れカウントはゼロにセ・ントされる。遅れカウントのセ
ット後に、遅れカウントセット180−DCは処理をコール元の機能に返えす。
以下において、遅れカウントセット18〇−DCはこの組の動作を表す。従って
、遅れカウントセット180−DCが完了すると、DRESETl 80−R3
Tは、180−R3T3を介して、処理をコール元の機能に返す。
接続速度センl−180−C5の詳細は第39A図及び第39B図に示されてい
る。一般に、図において、丸囲いされた文字は同−図面内の接続を意味し、三角
形内の文字は他の図面との接続を示している、又、図において、同様のラヘルを
付された要素は、等価であり、図面内の同一要素への複数の参照は、最初の文字
を大文字としたラヘルで示されている。
接続速度センt−180−C5の最初の動作は、接続状態セン)180−C3I
であり、速度調整が行われていることを示すために、接続状態フラグがセットさ
れる。次いで、接続キャラクタ転送180−C32が指定された遠隔ノードにキ
ャラクタを送信する。本実施例においては、接続キャラクタは”ENQ”である
。ここで使用されるように、接続キャラクタは、機能が仮想ネットワークを介し
てキャラクタを送信するためにコールされることを意味する。この機能は、転送
するキャラクタと遅れ因子を与えられる。キャラクタ転送機能は、遅れ因子によ
って指定された数のクロックを待ち、転送保持バッファが空になるまでUART
の状態を試験する。
与えられたキャラクタが送信され、処理はコール元の機能に戻される。以下にお
いて、「キャラクタ転送」はこの一連の動作を意味する。
接続キャラクタ転送180−CD後に、タイムアウトチェック180−C33は
、二つのクロックを待ち、前述したタイムアウト変数をチェックする。タイムア
ウトしている場合には、処理は、タイムアウトリターン180−C34に移り、
タイムアウトエラーにリターン値をセントし、コール元の機能に戻る前に、キャ
リーフラグをセントする。タイムアウトしていない場合には、タイムアウトチェ
ック180−C33は、処理をキャラクタ状態受信180−RC3に移す。
キャラクタ状態受信180−C5は、第40図に関して以下により詳細に説明す
る。キャラクタ状態受信180−RCは(i)接続キャラクタ送信に応して遠隔
ノードによって送信されたキャラクタを受信するか、(i i)エラーコードを
発生するか、または(i i i)キャラクタが待機状態ではないことを示して
、処理をキャラクタチェック180−C35へ移す。キャラクタが待機状態では
ないか、またはキャラクタの受信が確認されない時には、キャラクタチェック1
80−C35は、処理をキャラクタ転送180−C52に戻す。
ここで、受信確認またはキャラクタの受信確認は、A CK ”等のキャラクタ
で示される。キャラクタの受信が確認されると、処理は、タイムアウトセット1
80−C36に移り、タイムアウト変数を5秒にセントする。 ′処理は、次い
で、キャラクタ受信180−RCに移る。キャラクタ受信180−RCは、以下
に第41図に関してより詳細に説明する。キャラクタ受信180−RCは、キャ
ラクタまたはエラーをコール元の機能に返す。従って、エラーチェック180−
C37は、エラーを受け取った時に、制御をエラーリターン180−C39に移
す。エラーリターン180−C39は、キャリーフラグをセットし、処理をコー
ル元の処理に返す。
エラーが返されなかった場合には、処理はボーレートシーケンスのスタートチェ
ック180−C38に移行する。キャラクタ受信がボーレートチェックのスター
トを示さない場合、処理は、送信/受信エラーリターン180C310に移行し
、リターン値を送信/受信エラーにセットし、リターンする前にキャリーフラグ
をセットする。
ボーレートシーケンスのスタートが受信されると、処理は、キャラクタ受信18
0−RC−Aに移行して、遠隔ノードの速度の下位バイトと、遠隔ノードの速度
の上位バイトを受信する。これらの受信においてエラーが発生した場合には、前
述したようにエラーチェック170−CS7−Aが、エラーチェック180−C
37の前に機能する。
エラーチェック170−C37−Aにおいてエラーが検出されない場合には、要
求速度チェック180−C3IIが受信速度と要求速度を比較する。ここで、要
求速度は、接続速度セット180−C3にコールにおいて与えられた速度を意味
する。受信速度が要求速度よりも低い場合には、処理は速度変更180−C31
2に移行して、要求速度を受信速度にセットする。
速度が同一の場合、または速度変更180−C312が完了した場合、処理は、
有効速度チェック180−C313に移行して、速度が正当であるか否かを判定
する。速度が、最大許容速度以上又は300ポ一未満である場合には、処理が、
速度エラーリターン180−C322に移行して、リターン値を不当ライン速度
にセットし、キャリーフラグセット後にリターンする。
速度が正当な場合には、キャラクタ受信180−Rt、−Bは、遠隔ノードから
送信される次のキャラクタを受信する。
エラーチェック180−C7−Bは、前述したように、エラーが発生していない
場合には、制御をボーレート列に終端チェック180−C314に制御を渡す。
受信したキャラクタがボーレート列の終端を示していない場合には、処理は、送
信/受信エラーリターン180−C3IOに渡される。しかしながら。キャラク
タがボーレート列の終端を示している場合には、処理は、ボーレート送信180
−C315(第39B図)に渡される。
ボーレート送信180−C3−15は、選択された速度を仮想ネットワークを介
して送信するための一連の動作である。
この実施例において、ボーレート送信180−C315は、8クロツクを待ち、
次いでボーレート変更の開始を示すキャラクタを送信する。キャラクタの送信後
、キャラクタ受信(第41図)がコールされる。キャラクタ受信は、キャラクタ
またはエラーを返す。エラーが返された場合、キャリーフラグがセントされ、リ
ターン値がタイムエラーにセットされ、処理がコール元の機能に返される。エラ
ーが返されなかった場合には、キャラクタ受信がキャラクタの受信が確認された
か否かを判定するためにチェックされる。キャラクタの受信が確認されていない
場合には、キャリーフラグがセットされ、リターン値が送信/受信エラーにセン
トされ、処理がコール元の機能に戻される。
受信確認がされている場合には、2クロツク後に、ボーレート列の開始の送信が
速度の下位ハイド、上位バイト及びキャラクタ送信の終了に続いて送信される。
これによってボーレート送信の動作を完了し、処理は、キャラクタ受信180−
RC−Cに移る。
エラーが返された場合には、エラーチェック180−C3−16が処理を、タイ
ムアウトエラーリターンに渡す。受信したキャラクタが受信1III認1された
キャラクタではない場合には、受信確認チェック180−C317が、処理を送
信/受信エラーリターン180−C3IOに渡す。受信確認が受信されると、速
度セット180−3Sがコールされ、上記の動作を行う。
続いて、キャラクタ受信180−RC−Dがコールされ、エラーチェック180
−C316−A及び受信確認180−C3−Bが上記のように動作する。キャラ
クタの受信が確認されると、セツション終了キャラクタが、セツションの終了1
80−C19によって送信され、キャラクタ受信18〇−RC−Dが遠隔ノード
からのキャラクタの受信に使用される。
エラーが検出されると、エラーチェック180−C3−16−Bが処理をタイム
アウトエラーリターン180−C34に渡す。受信したキャラクタが、セツショ
ン終了キャラクタである場合には、処理は、セツション終了チェック180−C
S20に移行し、次いでリターン180−C321に渡され、さもない時は送信
/受信エラー180−C3IOに渡される。
キャラクタステータスの受信機能180−RC3は、第40図に示されている。
この機能は、レジスタALに一つのキャラクタを受け取るか、若しくはキャラク
タが準備されていない場合にはZフラグをセットする。最初に、キャラクタステ
ータスの受信機能180−RC3はスタートテスト180−RC3Iを行う。ス
タートテスト180RCS1は、接続がされているか否か及びフレーミングエラ
ーが発生しているか否かを判定する。フレーミングエラーは、二つのノードが相
互に異なるボーレートで送信を行っている場合のみに発生する。接続エラーまた
はフレーミングエラーが発生している場合には、スタートテスト180−RC3
Iは処理を以下により詳細に第43図に関して説明する速度再同期180−3R
Eに渡す。速度再同期180−SREは接続速度を調整して両方のノードは同一
速度で通信を行うようにする。
速度再同期180−3REがエラーを返した場合には、エラーチェック180−
RC35は、処理をリターン18〇−RC34に返し、Zフラグをクリアしてコ
ールもとの機能に返る。一方、速度再同期がエラーを返さなか;た場合には、エ
ラーチェック180−RC35は、処理をエラーコードセント180−RC6に
移し、エラーリターン値を速度変更エラーにセットする。処理は、その後リター
ン180−RC4に戻され、Zフラグをクリアして、コール元の機能に戻る。
キャラクタ受信機能180−RC(第41図)は、レジスタALに一つのキャラ
クタを受け取る。エントリ時に、タイムアウトチェック180−RCIIは、タ
イムアウト変数が1か否かを判定する。変数が1の場合には、処理はエラーリタ
ーン180−RCIIに移り、キャリーフラグをセットしてタイムエラーを返す
。一方、タイムアウト変数がゼロでない場合には、UARTステータス180−
RC2がUARTラインのステータスを読み出し、フレーミングエラーを確認す
る。
フレーミングエラー180−RC3は、次いでフレーミングエラーがあるか否か
を判定するとともに接続ステータスフラグがゼロであるか否かを判定する。フレ
ーミングエラーが生じておらず、接続ステータスフラグがゼロの場合には、処理
がキャラクタ準備チェック180−RC4に移る。準備状態のキャラクタがない
場合には、処理はタイムアウトチェック180−PCIに戻る。一方、キャラク
タが*aされている場合には、キャラクタ読み取り180−RC6がキャラクタ
を獲得し、処理をリターン180−RC7に移す。
フレーミングエラーが生じている場合または接続ステータスフラグがゼロでない
場合には、フレーミングエラー180−RC3は処理をタイムアウトセーブ18
0−RC3に移し、現在のタイムアウト値をセーブする。その後に、処理は、以
下により詳細に第42図に関して説明する速度再同期180−3REに移る。速
度再同期180−3R,Eが完了すると、タイムアウトリストア180−RC8
がこれをセーブされたタイムアウト値にリストアして、処理を速度変更エラー1
80−RC9に移す。エラーが速度再同期180−3REにおいて発生した場合
には、速度変更エラー180−RC9は処理をエラーリターン180−RCII
に移す。一方、エラーが生じなかった場合には、処理は速度変更180−RCI
Oに戻り、速度の変更を示すために機能の結果をセットする。
速度再同期機能180−3REは、キャラクタ受信機能180−RC(第41図
)及びキャラクタステータス受信180−RC3(第40図)によってコールさ
れるもので、第42図に示されている。この機能において、タイムアウトリセッ
ト180−3REIが、最初にタイムアウト値をゼロにする、次いで、UART
ボートクリア280−3RE2がUARTデータポートを読み出して、ポートを
クリアする。最小速度チェック180−3RE3は、次いで速度が300ボーに
セットされているか否かを判定する。速度が300ボーの場合には、エラーリタ
ーン180−3RE4がキャリーフラグをセットし、速度エラーの値をコール元
の機能に返す。
速度が最小ではない場合には、最小速度チェック180−3RE3は、前述した
速度セット180−3Sに処理を移す。
特に、速度セン)180−3Sはノードの速度を300ボーにセットし、処理を
ボーレートセーブ180−3RE5に移行してボーレートインデックスを対応す
るボーレートにセットする。ついで、リンスン速度セット180−LSが遠隔ノ
ードとの速度再同期の為にコールされる。リッスン速度七ント180−LSの動
作は、第43図に関して説明する。す・ノスン速度セント180−LSを完了す
ると、遅れカウントセット180−DCがコールされる。この遅れカウントセッ
トは、上述の通りであり、ここに開示の一部として援用する。
遅れカウントセント180−DCを完了すると、制御がコール元の機能に返され
る。
リンスン速度セント180−LSは第43図に示されている。リッスン速度セン
トに対するコールによって、ボーレートがパラメータとして与えられる。接続ス
テータスセット180−LSIは、接続ステータスフラグをセーブした後に−2
にセントして、速度の変更が試みられたことを表示する。
ついで、キャラクタ受信180−RCがキャラクタの受信またはエラーを返すた
めに使用される。エラーが返された場合には、エラーチェック180−LS2が
処理をエラー”)ターン180−LS3に移して、接続ステータスフラグをリス
トアするとともにリターン前にキャリーフラグをセットする。
エラーが返されなかった場合には、リッスン終端チェック180−LS9がセッ
トされているリッスン速度の終端が示されているか否かを判定し、示されている
場合には処理をリター7180−LS4に移す。リター7180−LS4は、セ
ントされたリッスン速度の終端キャラクタの受信IIg認を送出し、接続ステー
タスフラグをエントリ時の値にリストアして。コール元の機能に戻る。さもない
時は、接続キャラクタチェ・ツク180−LS5が接続キャラクタが受信された
が否かを判定する。このキャラクタが受信されていない場合には、処理はキャラ
クタ受信180−RCに戻る。
しかしながら、接続キャラクタチェック180−LS5が接続キャラクタを受信
している場合には、処理はタイムアウトセット180−LS6に移され、タイム
アウト変数を5秒にセン)する。次いで、処理はボーレート転送180−LS7
に移る。本実施例において、ボーレート転送180−LS7は多数の動作を含ん
でいる。特に、キャラクタの受信確認が転送され、2クロツク後にボーレート列
の開始キャラクタが転送される。下側ハイド、上側バイトに続いてボーレート列
の終端キャラクタが転送され、次いで処理はボーレートセーブ180−LS8に
移行する。ボーレートセーブ180−LS8は速度に基づいてテーブルからボー
レートインデックスをロードし、次いで、ボーレートをロードされたインデック
スにセントする。速度セント180−3Sは、局部マシンにおける速度、前述し
た要領でセットする。次いで、キャラクタの受信確認が新しい速度で送信され、
処理はキャラクタ受信180−RCに移される。
データリンク機能DSENDは、処理中のDRECE I VEが動作中の遠隔
ノードにパケットを送信するために使用される。DSENDは、パケットの送信
に成功したことを示すゼロを戻す。パケットが送信出来なかった場合には、負の
エラーが返される。DSENDをコールする機能は、ノードID都、メンセージ
長とメツセージバッファのポインタを機能DSENDに与える。DSENDの1
実施例は第44図に示されている。
キーボード禁止180−3lは、キーボードの操作をオフにして、処理をパケッ
トサイズ送信180−3PSに渡す。
パケットサイズ送信180−3PSは遠隔ノードに送信するパケットのサイズを
送信する。パケットサイズ送信の動作は、第45図により詳細に示されている。
パケットサイズ送信180−3PSがエラーを
返した場合には、処理は、エラーチェック180−33に移され、キーボードの
使用の許可180−310がキーボードの操作をリスト前記少なくとも1桁の圧
縮コード、制御をリターン180−3lから、コール元の機能に返す。
エラーチェック180−33によってエラーが検出されなかった場合には、送信
ハイド増分180−34によりパケットサイズが、最後にリセットされてからの
送信ハイド数をカウントするのに使用される変数に加えられる。次いで、パケッ
トの各ハイドに関して使用可能なハイ)180−S5が追加のハイドがあるか否
かを判定し、次いで、バイトロードl8O−S12がキャラクタ送信180−3
13が仮想ネットワークを介してバイトを送信するために、このバイトをロード
する。
パケットが送信されると、使用可能なバイト180−35は、制御をパケットサ
イズ獲得180−GPSに移す。パケットサイズ獲得180−GPSは、受信す
るバケ・7トのサイズを遠隔ノードから獲得する。エラーが発生すると、処理は
、キーボード使用許可180−3IOに移る。しかしながら、エラーが返されな
い場合には、パケットサイズチェック180−37が、パケットサイズが受信し
たパケットサイズと一致しているか否かを判定する。パケットサイズが異なる場
合には、エラーセット180−39がリータン値を送信/受信エラーにセットし
て、処理をキーボード使用許可180−310に移す。一方、パケットサイズが
同一の場合には、正常終了セン)180−38がリターン値を、処理をキーボー
ド使用許可180−3IOに渡す前に、正常終了にセットする。
機能DSENDによってコールされるパケットサイズ送信180−5PSの機能
は、第45図に示されている。初期化180−3PSLは、最初に受信の動作中
の示すフラグを1にセットし、ついで、転送遅れをセーブする。転送遅れは、次
いで前述した遅れカウントにセットされる。タイムアウト変数は、15秒にセン
トされる。タイムアウト180−3PS2は、タイムアウト変数をチェックして
、タイムアウトが発生しているか否かを判定する。タイムアウトが発生している
場合には、エラーセット180−3PS3がリターン値を送信/受信エラーにセ
ットし、フラグセラ)180−3PS4がキャリーフラグをセットする。次いで
、リストア180−3PS5が転送遅れの値をセーブ値にリストアし、受信動作
中フラグをリセットしてから、制御をリターン180−5PS6に渡す。
タイムアウトチェック180−3PS2が、タイムアウトを検出しなかった場合
には、転送開始180−3PS7が遠隔ノードへのキャラクタの転送を開始する
。キャラクタステータス受信180−RC3は、キャラクタまたは発生したエラ
ーを受信SGI、若しくは前述したように準備されたキャラクタがないことを表
示する。従って、準備キャラクタチェック180−3PS9が、キャラクタが準
備されていないと判定すると、処理はタイムアウトチェック180−3PS2に
移される。キャラクタが準備されており、エラーが発生した場合には、エラーチ
ェック180−3PSIOが処理をフラグセット180−3PS2に戻す。エラ
ーが返されなかった場合には、受信確認チェック180−3FSIIがキャラク
タステータス受信180−RC3によって返されたキャラクタが受信確認キャラ
クタであったか否かを判定する。キャラクタが受信確認キャラクタではない場合
には、処理はエラーセット180−3PS3に移される。
一方、受信確認が受信されると、パケットサイズ転送180−3PS12が、遠
隔ノードに送信されるパケy hのサイズを送信する。特にパケットサイズ転送
180−3PS12は、転送開始、パケットサイズの下位バイト、パケットサイ
ズの上位バイト及び転送終了を示すキャラクタを転送する。
キャラクタ受信180−RCは、第41図に関して前述したように、キャラクタ
を受信する。キャラクタ受信180−RCがエラーを返した場合には、エラーチ
ェック1so−sp310−Aが処理をフラグセット180−3PS4に移す。
キャラクタが受信確認である場合には、受信確認テスト180−3PSII−A
が処理をリストア180−3PS5に渡す。さもなくば、受信確認テスト180
−3PS 11−Aは、処理をエラーセント180−3PS3に移す。
機能DSENDによってコールされるパケットサイズ獲得180−GPSの機能
は第46図に示されている。初期化180−CPSLは、受信動作状態フラグを
1にセントし、転送遅れ及びタイムアウト値をセーブする。次いで、転送遅れは
、前述のよ゛うに遅れカウントに送られる。次いで、処理は、キャラクタ受信1
80−RC−Aに移される。
キャラクタ受信がエラーを発生すると、エラーチェック180−GPS2は、速
度変更エラー180−C,PS3に返し、速度変更エラー180−GPS3は、
エラーが速度変更エラーにセットされている場合には、処理をキャラクタ受信1
80−RC−Aに返す。一方、速度変更エラー180−GPS3は、処理をフラ
グセット180−GSP4に移し、キャリーフラグをセントとして、処理をリス
I・ア180−GPS5に移す。リストアは、セーブされた転送遅れとタイムア
ウト値を適当な変数に返し、受信動作中フラグを、処理をリターン180−GP
S6に移す前に、ゼロにセラI・する。
キャラクタ受信180−Rt、−Aがエラーを発生しなかった場合、エラーチェ
ック180−GPS2は、処理を転送起動チェック180−GPS7に移す。受
信したキャラクタが転送の開始を示していない場合には、処理はキャラクタ受信
180−RC−Aに移る。受信キャラクタが、転送の開始を示している場合には
、転送確認180−GPS″8が確認キャラクタを遠隔ノードに送信して、処理
をキャラクタ受信180−RC−Bに渡す。
ここでエラーが発生すると、エラーチェック180−C,PS9は、処理を、上
記のように動作する速度変更エラー180−GPS3に移す。エラーが発生して
いない場合で、転送開始キャラクタが受信されていない場合には、この処理は転
送開始180−GPSIOによってキャラクタ受信18〇−RC−Bに移される
。さもなくば、転送開始180−GPS]、Oは処理をキャラクタ受信180−
RC−Cに移して、パケット長の下位バイトを受信する。同様に、キャラクタ受
信180−RC−Dはパケット長の上位バイトを受信するとともに、転送終了キ
ャラクタを受信する。これらの受信においてエラーが生じた場合には、処理は、
速度変更エラー180−GPS2に移行する。
最後に、キャラクタ受信180−RC−Dが、転送終了キャラクタを受信しなか
った場合には、転送終了チェック180−GPSIIが処理をエラーセット18
0−GPS3に移し、送信/受信エラーをセントする。転送終了を受信すると、
転送確認はi圧信号を遠隔ノードに送出し、フラグクリア180−CPSL2が
処理をリストア180−GPS5に返す前にキャリーフラグをクリアする。
先述したように、データリンクの多くの機能はハードウェアに依存している。従
って、データリンク層180のここで説明した実施例はIBM−PC相当のコン
ピュータに使用される機能の組を示している。しかしながら、上記の説明に基づ
いて、当業者はアプリケーション層及び転送層の機能を、これらの機能のサービ
スを行ういかなるデータリンク層とともに使用することが出来るものである。
本実施例においてデータリンク層の機能の多くは、55ミリ秒毎に、PCバス上
のハードウェアラインI RQOが起動されて、割込み08hが行われることを
使用している。割込み08hによって行われる動作は、コンピュータの下位メモ
リの割込み08hベクトルによって指定されたサービスルーチンに依存する。こ
のベクトルのアドレスを変更することによって、プログラムは、55ミリ秒の間
隔で異なる機能を行うことが出来る。前述したように、55ミリ秒の時間間隔は
、クロック時間を意味している。
この発明のデータリンク層は割込み08hに二つの異なる割込みサービスを使用
している。第一の割込みサービス180−INTは第48図に示されており、第
二の割込みサービス180−RCVは第49図に示されている。第二の割込みサ
ービス180−RCVはデータリンクが受信を行うときに使用され、第一のデー
タリンクは仮想ネットワークが動作状態の場合のそれ以外の全ての時間に使用さ
れる。
これらの割込みサービスの双方は、速度が重要であり、コンピュータコードは全
速で確実にランするように最適化されている。特に割込みサービスルーチン18
0−RVCに関しては、割込み08h以外の全ての割込みが禁止され、以下によ
り詳細に説明するように、割込みサービスルーチンへのエントリ時のレジスタの
状態が仮定される。
割込みサービス180−INT(第48図)は、エントリ時に最初にセーブレジ
スタ180−INTIをアクセスして、割込みに必要なレジスタをセーブする。
次いで、遅れカウント増分180−INT2が遅れカウントを増分する。動作1
8’0−INT3乃至180−10は、前述したように二つのタイムアウトを調
べる。変数がタイムアウトを示している場合には、タイムアウトフラグがセット
される。さもなくば、タイムアウト変数が減分される。
続いて動作フラグチェック180−INTIIが受信した動作フラグがセフ)さ
れているか否かを判定する。フラグがセントされていない場合には、割込み08
h接続180−INTI3は前の割込み08hに接続され、処理をレジスタリス
ト180−INTI4に渡す。レジスタリストア180−INTI4はこれらの
セーブレジスタにレジスタ値をリセントして、リターン180−INTI5は処
理をコール元の機能に返す。
受信した動作フラグがセットされている場合には、処理はB103サービス実行
180−INTI2に移る。他の処理が割込み08hにサービスし、これらの処
理は完了するために長い処理時間を必要とする場合もある。従って、速度を向上
するため、機能は前の割込み08hとは結合されない。むしろ、BIOSサービ
ス実行180−INTI2は、BiO2によって通常提供される最小のサービス
を提供する。
第二の割込み180−RC3I (第49図)は、最大速度を得るために最適化
される。通常、割込みサービスルーチンは、現在のレジスタを、全ての他の処理
の前にセーブする。
しかしながら、このルーチンは、レジスタAXのみをセーブする。ルーチンはさ
らに、このレジスタAXのみを使用する。
しかしながら、ルーチンは、メモリをアクセスするので、アクセスするメモリの
セグメントを指定するセグメントレジスタが必要となる。通常の割込みサービス
ルーチンは、少なくとも一つのセグメントレジスタをセーブし、次いで、セグメ
ントレジスタを割込みサービスルーチンにロードする。しかしながら、割込みサ
ービスルーチン180−RCVIを許可する前に、全ての他の割込みが禁止され
、この割込みは、データリンクデータセグメントにセットされたセグメントを持
つデータリンク機能DRECE I VEの小さな部分のみで許可される。全て
の他の割込みが禁止されているので、データセグメントレジスタのセーブ及びロ
ードは、レジスタがすでに適切な値をロードされているので、不要となる。
従って、割込みサービスルーチン180−RCVlの動作は、セーブレジスタ1
80−R,CVl、遅れカウントの増分180−RCV2及び内部キャラクタタ
イムアウト値チェック180−RCV3を含んでいる。内部キャラクタタイムア
ウト値が1よりも大きい場合には、タイムアウトが増分され、処理は割込み終了
180−RCV5に移る。さもなくば、内部キャラクタタイムアウトチェック1
80−RCV3は、処理を直接割込み終了180−RCV5に渡す。割込み終了
180−RCV5は、割込みコントローラに割込み終了の信号を与え、レジスタ
AXをリストアする。最葎に、リターン180−RCV6が処理をコール元の機
能に返す。
データリンク機能DRECE I VEは、メツセージの受信を待つために転送
層によって使用される。メツセージを受信すると、機能DRECE I VEは
メツセージの実際の長さを返す。DRECEIVEには、ノードIDと、受信バ
ッファ長と、受信バッファのポインタ及びデータを待つためのクロック数に対応
したタイムアウト値が与えられる。機能DRECE I VEは、メッセージ長
またはエラーコードを返す。
データリンクの機能DRECE I VE 180−Rの一実施例は、第47図
に示されている。初期化180−R1は、与えられたパラメータにタイムアウト
変数をセントし、タイムアウトフラグをゼロにセントする。ついで、処理はパケ
ットサイズ獲得180−GPS(第46図)に移行する。パケットサイズを受信
すると、エラーチェック180−R2は、エラーが発生していない場合には、処
理を受信初期化180−R7に移行する。一方、パケットサイズ獲得においてエ
ラーが発生した場合には、処理はエラーチェック180−R2を介してエラーセ
ット180−R3に移行して、エラーコードをパケットサイズ獲得180−CP
Sの結果にセットする。
ついで、タイムアウトセント180−R4がタイムアウト変数と内部キャラクタ
タイムアウト変数の双方をゼロにセ・ツトする。タイムアウトエラーチェック1
80−R5は、エラーが検出されなかった場合には、処理をエラーリターン18
0−R6に渡す。タイムアウトエラーチェック180−R5がタイムアウトエラ
ーを検出すると、処理は、エラーリターン180−R6に返される前にパケット
サイズ送信180−3PSに移行される。パケットサイズ送信180−3PSは
、前述した機能である(第45図)
受信初期化180−R7は、エラーチェック180−R2より処理を受け取ると
、最初に受信動作中フラグをセ・7)し、次いでタイムアウト変数をゼロにセッ
トし、内部タイムアウト変数を6にセフ)する。受信初期化180−R7ば、割
込みサービスルーチン180−RCVI (第49図)をオンにする。次いで、
処理は、tJARTステータス180−R8(第47図)に移行して、UART
ステータスポートをチェックする。キャラクタはボートに準備されている時は、
キャラクタ準備テスト180−R9は処理をキャラクタ読み取り180−RIO
に移す。キャラクタ読み取り後に、バッファアドレスがO:Ohであるか否かが
判定される。アドレスが0:Ohではない場合には、読み取られたキャラクタは
、キャラクタ格納180−R12によって格納されない。ステップ180−R1
1は機能180−Rから除くことが出来るもので、機能DCONNECTのライ
ン接続チェック動作及び機能DLISTENのラインリッスンチェック動作をサ
ポートするためのみに使用される。以下により詳細に説明するように、再動作は
、ステップ180−R11を除く必要に応じて、転送層に移すことが出来る。
バッファアドレス180−R11後に、変数調整180−13がキャラクタ受信
カウントを増分し、内部キャラクタタイムアウト変数を3にセットする。モアキ
ャラクタテスト180−R14は、さらに受信すべきキャラクタがあるか否かの
判定を行う。送信すべきキャラクタが残っている場合には、処理はU A、 R
Tステータス180−R8に移行し、前述の処理が行われる。キャラクタが残っ
ていない場合には、更新180−R15が、受信したキャラクタ数を最後にリセ
ットした後に受信したキャラクタ数に加算して、エラーコードをキャラクタ受信
にセットする。割込みリストア180−R24が割込みサービスルーチン180
−RCVをオフして、割込みサービスルーチン1801NTをオンする。処理は
、次いでタイムアウトセット180−R4に移行する。
上記の説明は、キャラクタ準備180−R9がキャラクタを剣士移したもとの仮
定している。しかしながら、キャラクタが検出されなかった場合には、処理は、
内部キャラクタタイムアウト180−R16に移り、エラーコードを内部タイム
アウト変数にセットし、処理が、割込みリストア18〇−R24に移る。
しかしながら、内部キャラクタタイムアウト変数がタイムアウトを示していない
場合には、フレーミングエラーチェック180−R18が、フレーミングエラー
を検出したときに処理をUARTステータス180−R8に移す。さもなくば、
処理は、前述した割込みリストア180−R24−Aに移して、割込みサービス
ルーチン180−INTをオンにし、割込みサービスルーチン180−RCVを
オフにする。ついで、タイムアウトセーブ180−R19がタイムアウト値をタ
イムアウト変数及び内部キャラクタタイムアウト変数にセーブし、次いで前述の
速度再同期180R20が機能する。速度再同期を完了すると、タイムアウトリ
ストア180−R21がタイムアウト及び内部キャラクタタイムアウト値をセー
ブパラメータにリストアする。速度再同期においてエラーが発生すると、エラー
チェック180−R22が処理をタイムアウトセラl−180−R4に移す。一
方、エラーが検出されなかった場合には、リストア180−R23が全てのパラ
メータをエントリ時の値にリストアし、処理を機能DRECE IVE180−
Rの開始に戻す。
データリンク機能DCONNECT180−C(第50図)は、転送層機能TC
ONNECTによってコールされる。機能DCONNECTは、特定の遠隔ノー
ドとの接続を試みる。
コール元の機能は、ノードIDと、速度パラメータ、接続ボート及びデータを待
つクロック数を与える。前述のように、本実施例においては単一のノードのみが
存在するので、ノードIDは重複する。機能DCONNECTに与えられた速度
パラメータは、ゼロでない場合には、100で除算された所望のボーレートであ
る。
機能DCONNECT180−Cへ0)xントリ時において、接続ステータスセ
ント180−CIは、まず接続ステータスフラグを−1にセットして、接続が試
みられていることを表示する。次いで、第51図のステップ180−MII乃至
18(>Ml8でより詳細に示すメイン初期化180−Mlが、−膜状態の初期
化を行う。
特に、割込みセーブ18C1−Mllは、最初の′現在の割込み08hベクトル
を獲得して、セーブする。次に、フラグクリア180−Ml2が受信動作中フラ
グをクリアし、割込みセット180−Ml3が割込み08hに割込みサービスル
ーチン180−INTをセットする。変数初期化180−Ml4はDCONNE
CTの他の変数及び他の機能で使用される変数を所要の値に初期化する。続いて
、セント速度コール18O−SSが、前述したように転送速度をセットする。禁
止180−Ml5は、レジスタクリア180−Ml6がUARTから全てのステ
ータス及びデータをレジスタを繰りするために読みだしている間、UART割込
みを禁止する。次に、速度計算180−Ml7が、二つのクリック間の時間間隔
においてレジスタ対DX : AXを増分することが出来る回数をカウントし、
その値を本実施例においてループカウントと呼ばれる変数に記憶する。リターン
180−Ml8は、処理を第50図の接続/リンスン初期化180−CLIに渡
す。接続/リソスン初期化180−CLIの動作は、第52図により詳細に示さ
れている。特に、タイムアウトチェック18〇−CLIは、タイムアウト変数を
機能D CON N E CT 180−Cに与えられたパラメータにセットす
る。速度チェック180−CLI2は、速度パラメータがDCONNECTに与
えられている場合、処理をパラメータリターン180−CLI5に渡す。パラメ
ータリターン180−CLI5は、与えられたパラメータのインデックスを返す
。一方、速度パラメータが与えられて以内場合には、即ちゼロが機能DCONN
ECTに与えられた場合には、パラメータセット180−CLI3は速度パラメ
ータを最大ボーレートにセットし、リターン180−CLI4が300ボーのイ
ンデックスをボーレートインデックス七ッ)180−C32(第50図)に返す
。
ボーレートインデックスセツト180−C2はボーレートインデックスを接続/
リッスン初期化180−CLIIの戻り値にセットする。次いで処理は、正当速
度チェック180−C3に移行して、要求速度が正当か否かの判定を行う。
要求速度が不正な場合には、処理は正当速度チェック180−03からエラーセ
ット180−C4に移り、リターン値を不正ライン速度エラーにセットする。エ
ラーセット180−C4は、処理を接続状態上ンl−180−C1−Aに移行し
て、接続状態フラグをゼロにセットし、処理をリストア180−C14に移行す
る。リストア180−C15は、UARTの除数のアクセスを拒否して、UAR
Tの割込みを不能とし、次いで割込み08hを記憶された前回の割込み08hの
ベクトルにリストアする。処理は、次いでリターン180−C15に移る。
要求接続速度が正当な場合には、正当速度チェック180−C3は、処理を先に
機能を説明した速度セフ)180−3Sに移して要求速度をセットする。次いで
、速度変更180−C5が特定された速度がセフ)されまたは速度変更が要求さ
れているか否かを判定する。
特定速度がセットされている場合には、処理はキャラクタ転送180−C1lに
移行して、遠隔ノードに接続/リンスン終了キャラクタを送信する。1クロック
待った後に、タイムアウトチェック180−C12はタイムアウトの発生を判定
する。タイムアウトが発生している場合には、エラーセット180−C13がリ
ターン値をタイムアウトエラーにセントして、処理が前述した接続ステータス1
80−CI−Aに移行される。
タイムアウトが発生していない場合には、タイムアウトチェック180−C12
は、前述したキャラクタステータス受信180−RC3処理を移行する。キャラ
クタが準備されている場合、またはキャラクタステータス受信180−RC5に
よって受信されたキャラクタが転送終了の確認ではない場合には、処理は、キャ
ラクタ転送180−C1lに戻る。しかしながら、キャラクタテスト180−C
16が接続終了の確認を検出した場合には、処理は先に説明した遅れカウンタセ
ット180−DC,−Aに移る。接続セント180−CIBは接続ステータスフ
ラグをゼロにセットし。、処理をリターン180−C15に移行する。
速度変更180−C5がゼロ値を検出すると、処理がキャラクタセット180
C6に移り、接続キャラクタが第一のキャラクタにセントされる。次いで、セッ
ト接続速度180−C3が第39a図及び第39b図に関して説明した機能を行
う。接続キャラクタセフ)180−C6−Aは、第二の接続キャラクタをセット
し、処理を接続ステータスセット180−C1−Aに移す。接続ステータスセッ
ト180−CI−Aは接続ステータスフラグをゼロにセットする。次いで、遅れ
カウントセント180−DCが前述のように機能し及びボーレートチェック18
0−C7、ボーレートが19200以下の場合には、処理を遅れカウントセット
1809−DC−Aに移す。さもなくば、ボーレートチェック180−C7は処
理を、第53図に関して詳述する送信ラインチェック180CLSに移行する。
送信ラインチェック180−CLSが完了すると、エラーチェック180−C8
が、エラーが戻されたか否かを判定する。エラーが返されている場合には、エラ
ーチェック180−C8は処理を前述した接続ステータスセット180−CI−
Aに移す。一方、エラーが返されていない場合には、エラーチェック180−C
Bは、処理をブロック受信180−C9に移し、データリンクの機能DRECE
I VEをコールして15秒のタイムアウト時間で、遠隔ノードからのデータ
のブロックを受信する。ブロックがエラーを発生せずに受信されると、エラーチ
ェック180−CIOは、処理を接続ステータス180−CI−Aに移行する。
さもなくば、180−CIOは処理を遅れカウントセット180−DC,−Aに
移行する。
接続180−Cにおいて、動作180−CLS、18〇−C8,180−C9及
び180−CIOはコンピュータのライン接続を確認するために使用される。他
の実施例において、これらの動作は、効率を改善するために転送層に移される。
送信ラインチェック180−CLSの機能は、第53図により詳細に示されてい
る。エントリ時において、ブロック送信180−CLSIは最初にデータのプロ
′ツクを発生し、次いでデータリンクの機能DSENDをコールして、仮想2/
トワークを介してデータのブロックを送信する。DSENDがエラーを発生せず
に機能した場合には、エラーチェック180−CLS2が処理をリターン180
−CLS3に移す。
しかしながら、ブロック送信180−CLSIがエラーを発生している場合には
、処理はエラーチェック180−CLS2によって速度低下180−CLS4に
移される。速度低下180−CLS4はデータリンク機能DRESETを速度の
変更を示すパラメータによってコールする。
従って、機能DRESETは前述したようにエラーを返す。
DRESETがエラーを返すと、エラーチェック180−CLS5は、処理をエ
ラーリターン180−CLS6に移し、キャリーフラグをセントして、コール元
の機能に帰る。速度低下180C−CLS4からエラーが返されなかった場合に
は、エラーチェック180−CLS5はブロック送信180−CLSIを再度コ
ールすることによって低下された速度でラインチェックを開始する。
機能D CON N E CTに対応するデータリンク機能はDLISTENで
あり、DCONNECTの到来を待ち、セツションの開始を示す信号を発生する
。DL I 5TENは、さらに、最適ライン速度を決定するためにライン速度
の変更を行う準備をする。DL I 5TENは、速度と、タイムアウト値と接
続ボートを与える。
機能DL I 5TENの一実施例は第54図に示されている。
動作180−Ll乃至180−L2は、第50図に関して上述した動作180−
C1乃至180−C2と等価であり、その記載はここに開示の一部として援用す
る。正当速度180−L3は、要求された速度が不当な場合には、処理をエラー
セット180−L4に移す。エラーセット180−L4は、リターン値を不正ラ
イン速度エラーにセントして、処理を接続ステータスセット180−C3に移行
して、接続ステータスフラグをゼロにセントする。続いて、リストア180−L
6が前述のりストア180−C4(第50図)と同じ動作を行う。この動作は、
ここで開示の一部として援用する。
要求されている速度が正当な場合、正当速度チェック180−L3は処理を前述
した速度セフ)180−3Sに移す。
速度セ・ノドを完了すると、接続キャラクタセット180−LSが最初に接続キ
ャラクタを形成し、次いです・ンスン速度セ、7)180 LSが前述した機能
を実行する。リッスン速度のセット180−LSが完了すると、接続キャラクタ
セント180−LIOがキャラクタセット180−LSによってセットされたも
のとは異なる接続キャラクタをセントする。リッスン速度セット180−LSが
エラーを発生した場合には、エラーチェック180−Lllは処理を前述した接
続ステータスセット180−L5に移す。
リッスン速度セット180−LSが動作を正常終了すると、エラーチェック18
0−Lllは処理を速度変更180−L12に移す。与えられた速度パラメータ
がゼロでない場合には、速度変更180−L12は、制御を前述した遅れ力ウン
タセン)180−DC−Aに移行する。一方、速度変更が指定された場合、速度
変更180−L12は、処理を、前述した機能の遅れカウント七ッ)180−D
Cに渡す。ボーレートチェック180−L13は、現在のボーレートが1920
0以下の場合には、180−L 14を介してコール元のプログラムに返す。ボ
ーレートが19200よりも大きい場合には、ボーレートチェック180−L
13はタイムアウト七ッ)180−L15に処理を渡し、タイムアウト値を15
秒にセットする。タイムアウト値をセントした後に、接続確認180−L16が
データリンクの機能DRECETVEをコールして接続を確認する。DRECE
IVEがエラーを発生した場合には、エラーチェック180−L17が処理をタ
イムアウト180−L18に移す。タイムアウト180−L18は、タイムアウ
トエラーのチェックを行う。タイムアウトエラーが検出されると、エラーリター
ン180−L19が処理をタイムエラーとともに返し、さもなくば、処理はタイ
ムアウトセント180−L15に返される。
接続確認180−L16がエラーを生しなかった場合には、エラーチェック18
0−L17は、前述した処理をライン速度チェック180−CLSを介して返す
。次いで、処理は、遅れカウントセット180−DC−Aに移行される。機能D
L I 5TENによって行われるラインのチェックは、転送層で行うことも可
能である。
DSTATUS、DCONNECT、DDISCONNECT及びDFLUSH
のデータリンクの残りの機能は、一義的である。機能DSTATUSは供給され
たバッファに必要なステータス情報を供給する。特に、ノードIDは1にセット
される。最後にリセットされてから送受信されたバイト数を追跡するために用い
られる変数が構造中に含まれ、速度インデックスが現在の速度を検索する為に使
用され、続いてバッファに格納される。その後にバッファは、転送層に返される
。
本実施例において、機能DFLUSHはヌル動作であり、従って機能は単にコー
ル元の機能に返ることである。
機能DDS I C0NNECTは、UART除数のアクセスを禁止しtJAR
Tへの割込みを不能とするとともに、割込み08hを前回の割込み08hベクト
ルにリセットして、正常終了を返す。
前述したデータリンクエラーは負の値として転送層に返される。正常終了は、正
のリターン値(一般的にゼロ)で示される。本実施例における発生の可能性のあ
るリターン値を表6に示す。
表6
リターン値 データリンクの機能の結果〇 −正常終了
−1= 接続切断
−2−未知のノードID
−3−不正なライン速度
−4−送信/受信エラー
−5−タイムアウトエラー
−6−速度変更不能
−7= 内部キャラクタタイムアウトエラー従来の第−及び第二のコンピュータ
システム間における情報の伝達システムと異なり、ユーザーアプリケーションは
、二つのコンピュータ間で情報を伝達するために、本発明の仮想ネットワーク管
理機能を使用することが出来る。ユーザーアプリケーションは、単に前述した情
報及びコマンドをアプリケーション層に与えることのみが必要である。以下に、
本発明の仮想ネットワーク管理機能を使用する二つのユーザーアプリケーション
を説明する。一方のユーザーアプリケーションは、「ボーケントリンク(Poq
etLtnk) Jと呼ばれるMS−DOSオペレーティングシステムのユーザ
ーインターフェースアプリケーションである。ボーケ・ンドリンクは、MS−D
O3の最少の知識を有する全ての者にディスクファイルの管理を特徴とする
特にボーケントリンクは、ユーザーによるファイル及びディレクトリのコピー、
削除、ファイル名変更、プリント、ファイルの表示等の操作を可能にすると共に
、ディレクトリの表示、作成、削除を可能とする。従って、ユーザーアプリケー
ションのボーケントリンクとMS−DO3のC0PY、DEL、REN、PRI
NT、REDIR,CHDTR,MKDIR,DIR,PRINT、TYPEの
各コマンドとはほぼ対応している。
さらに、ボーケントリンクは、attach、 detach、 connec
t。
disconnect、 5erver及びconf igureのコマンドに
よって、仮想ネットワーク管理機能の操作を可能とする。ボーケントリンクのプ
ログラムはユーザーインターフェースを提供し、インターフェースを介して与え
られるコマンドを、本発明の仮想ネットワーク管理機能の適当なコマンド列及び
情報に変換する。
ボーケントリンクを局部処理のユーザーアプリケーションとして使用する場合に
は、仮想ネットワークアーキテクチャシステムが、ボーケントリンクの実行前に
コンピュータにロードされていなければならない。遠隔処理の為には、局部及び
遠隔コンピュータは、仮想ネットワークアーキテクチャによって直接接続、即ち
R3232で接続されていなければならず、ボーケントリンクが両方のコンピュ
ータで動作されていなければならない。
ボーケントリンクのコマンドを実行するためには、ユーザーは例えばカーソル制
御キーを用いて作業を行うファイルをハイライトし、次いでメニューキー(ファ
ンンクションキーFIO)を押圧し、カーソル制御キーを操作して適当な項目、
例えば「ファイルコをハイライトする。ユーザーは次いで、リターンキーを押圧
し、再びカーソル制御キーで、適当なオプション、例えば「コピー」を選択する
。ここでエンターキーを押圧することにより、オプションが実行され、ユーザー
に必要な情報が要求される。
マシンをこうした動作を行うために構成する為には、ユーザーは、最初に一方の
ボーケントリンクをサーバーとしてセットする(これはマシンを遠隔マシンとし
て指定することと同じである)。局部マシンとしての他方のマシンに対して、ユ
ーザーはボーケントリンクが、接続機能を実行して、遠隔マシンと論理接続する
ように指令する。仮想ネットワーク管理機能の接続が形成されると、全ての遠隔
ディスクドライブの処理は、仮想ネットワークを介して、遠隔マシンに方向付け
し直される。
さらに仮想ネットワークの接続が既に形成されている場合に、接続要求が実行さ
れた場合、接続オプションは何の動作も行わない。さもなくば、ボーケントリン
クの接続要求が、仮想矛ノドワーク管理機能の前述したVCONNECTを発生
する。接続が正常終了すると、局部マシンとサーバーマシンの間の一般的な送受
信の交換により遠隔ドライブの使用可能なドライブが表示される。特に、ボーケ
ントリンクは、前述したように一般的な送受信メ・ッセージを使用して使用可能
なドライブのリストを得る。次いで、サーバーマシンのカレントドライブが、使
用可能な局部ドライブにマツプされる。
二つ以上の遠隔ドライブがある場合には、他の遠隔ドライブはマツプされない。
他の遠隔ドライブをマツプするためには、ユーザーはポーケンドリンクのアタッ
チオプションを実行しなければならない。アタツチが行われる遠隔ドライブは局
部ドライブとして扱われる。
上述したサーブ要求が実行された後に、仮想ぶットヮークのサーバーは、前述し
たように、接続要求が所定時間内に受信されなかった場合には、処理を終了する
。タイムアウトが生じると、ボーケントリンクは仮想ネットワークのサーブ要求
を再実行する。サーバーが接続解除要求を受けると、接続解除が実行され、仮想
ネットワーク管理機能がリセットされ、制御はメインポーケソドリンク画面を表
示するボーケントリンクのユーザーアプリケーションに戻る。
上述したように、ボーケントリンクのユーザーアプリケーションは、MS−DO
3のオペレーティングシステムに関して直接的な知識を有せずともファイルの操
作を行うことを可能とする。ボーケントリンクのユーザーアプリケーションによ
って、ユーザーは−乃至複数のディレクトリの−乃至複数のファイルにタグ(ま
たはマーク)を付すことが出来る所望の機能を行うことが出来る。ここで、タグ
はボーケントリンクの機能であり、ファイルのコピーまたは削除を行うファイル
を表示するために使用される。ファイルにタグを付す為に、ユーザーはハイライ
トバーを対象のファイル名に移動してタブキーを押圧しまたは、タグメユーから
タグオプションを使用する。ディレクトリ名にタグを付す場合には、ディレクト
リがオーブンされ、ディレクトリ内の全てのファイルにタグが付される。
タグの消去は、ファイルの′7−りを消去する為のボーケンドリンクを使用した
機能である。ファイルのタグを消去するために、ユーザーはハイライトバーをフ
ァイル名に移動し、シフトとタブキーを同時に押圧するか、若しくは、タグメニ
ューのタグ消去オプションを使用する。ディレクトリ名のタグを消去する場合に
は、ディレクトリがオーブンされ、ディレクトリ内のファイルの全てのタグが消
去される。
ファイルをコピーを行うためには、ユーザーはコピーするファイルにタグを付け
、ファイルメニューからコピーオプションを実行する。ボーケントリンクは、こ
のときコピー先を尋ねる。ユーザーは、フルのドライブ及びディレクトリのバス
またはパスのみを与えることが出来る。ドライブが与えられない場合、タグを付
されたファイルは、カレントドライブにコピーされる。このカレントドライブは
、ファイルメニューのチェンジボリュームコマンドで変更することが出来る。
ファイルを削除するためには、ユーザーは削除するファイルにタグを付し、ファ
イルメニューから削除オプションを実行する。
ファイル名を変更する場合には、ハイライトバーを変更するファイル名に合わせ
て、ファイルメニューよりリネームオプションを実行する。
ボーケントリンクは、DO5のプリントコマンドと、遠隔プリンタにいってファ
イルのプリントを行い得る以外は、同様のプリントコマンドを持っでいる。遠隔
プリントは、ボーケントリンクが遠隔プリンタを使用するように設定されている
ことが必要となる。プリントされるファイルにはタグが付され、次いで、ファイ
ルメニューからプリントオプションが選択される。いずれのファイルにもタグが
付されていない場合には、現在ハイライトされているファイルがプリントされる
。
他のボーケントリンクの機能はビュー機能である。ビューはMS−DO3のタイ
プコマンドのような機能であるが、より大きな能力を有している。ファイルをビ
ューするためには、ユーザーはハイライトバーをファイル名に合わせ、コントロ
ール+エンターを押圧するか、又はファイルメニューからビュー機能を実行する
。ビュー@能において、ボーケントリンクは上記した適当なアプリケーション層
のコマンドを使用して特定の情報をアクセスして、仮想ネットワーク管理機能に
情報がリドリーブされると、ボーケントリンクは、テキストをスクリーンに表示
するために必要なコード化を行う。
ポーケントリンクを使用してディレクトリ情報をビューする場合には、ユーザー
はそのディレクトリをオーブンする。
ボーケントリンクは、最初にルートディレクトリをオーブンし、このディレクト
リをオーブン状態に保持する。ポーケントリンクはディレクトリ情報をリストと
して表示し、リストの中間のディレクトリがオーブンされると、ボーケントリン
クはその位置にディレクトリ情報を挿入する。ユーザーは、リストを上下にスク
ロールし、上下に頁送りし、リストの始端及び終端に移動し、またはディレクト
リ塩の前後に移動することによってブローズすることが出来る。
ディレクトリ自体ではなくディレクトリ情報を削除しようとする場合、ディレク
トリをクローズすることにより行うことが出来る。ディレクトリのクローズはデ
ィレクトリ情報をリストから消去するのみでディスクからは削除しないことを意
味する。ポケットリンクは、オープン状態及びクローズ状態で、リストの全ての
ディレクトの状態を保持する。ディレクトリレベルはインデントされている。即
ち、ルートまたは親ディレクトリが最初の行を占有し、サブディレクトリはイン
デントされ、サブディレクトリのサブディレクトリはさらにインデントされる。
親ディレクトリがクローズされている場合にサブディレクトリの情報をビューす
る為には、ユーザーはハイライトバーを親ディレクトリに合わせ、オープンを実
行する。続いて、ユーザーは、ハイライトバーをサブディレクトリに合わせてオ
ーブンを実行する。\A\Bのように、新しいサブディレクトリを作成する、ハ
イライトバーをAディレクトリに合わせ、ディレクトリオプションを選択する。
ディレクトリがオーブンされていない場合には、そのディレクトリがインサート
キーを押圧することによってオープンされる。ここで、ポケットリンクのディレ
クトリ作成の選択が行われる。ユーザーは、作成する新しいサブディレクトリ塩
の入力を要求される。同様にボーケラトリンクを使用してディレクトリの削除を
行う場合には、ハイライトバーを削除するディレクトリ塩に合わせ、次ぎに削除
オプションが選択される。
リンクは、一連の選択メニューを提供し、ユーザーはファイルまたはディレクト
リを選択し、次いで選択されたファイルまたはディレクトリに関して第二のメニ
ューオプションの選択を行って所望の動作を行う。ユーザーがコマンドの選択を
行うと、ボーケラトリンクは、ユーザーの選択を一連の動作に変換し、即ち、前
述したようにユーザーによって要求された動作を実行するためのアプリケーショ
ン層のコマンドに変換する。
第二のユーザーアプリケーションは、ポーケラトリンクを使用して遠隔ノードを
サーバーモードとすることを必要とする。この第二のユーザーアプリケーション
は、その後に他のマシンにロードされ、サーバーのディスクのディレクトリ情報
を得るために使用される。
上記した本発明の実施例はIBMのパーソナルコンピュータ及びIBM相当のパ
ーソナルコンピュータ上で動作するように設計されている。しかしながら、この
実施例は、本発明の詳細な説明する為のみのものであり、本発明を特定の実施例
に限定することを意図するものではない。上記の説明に基づいて、当業者が本発
明の仮想ネットワーク管理機能を他のコンピュータアーキテクチャ及びコンピュ
ータプログラム言語において実現することは容易である。
本発明の仮想ネットワークアーキテクチャはユーザーアプリケーションとコンピ
ュータのオペレーティングシステムとの間に介在する。一つの実施例において、
上述したように、仮想ネットワークは、コンピュータ内のり−ドオンリメモリ(
ROM)を含んでおり、ROM−B IOSの一部としてロードされる。他の実
施例において、仮想ネットワークは常駐プログラムとしてロードされる。いずれ
の場合においても仮想ネットワーク機能のロード後は、常駐プログラムとなる。
従来技術における常駐プログラムでは、実行可能なコードとデータは目盛りの常
駐部分と一時記憶部分に分離され、その双方がランダムアクセスメモリ(RAM
)(即ち、メインメモリ17B(第1図)にロードされていた。メモリの常駐部
分にはアプリケーションの実行可能なコードとデータが格納される。一時記憶部
分には、実行可能なアプリケーションコードがインストールされる。一般に、従
来技術の一時記憶部分の常駐(TSR)プログラムの初期化データ及びメモリの
常駐部分に格納された割込みハンドラ及びRAMの常駐部分に残された実行され
たMS−DO3機能は、一時記憶部分によって使用されるメモリを開放する。
本発明の原理によれば、仮想ネットワークアーキテクチャの実行可能なコードは
、従来技術のようにRAMからではなくROMから直接ランされる。ROMから
実行されるプログラムは差異は位置を行うことが出来ないので、コンピュータシ
ステムをROMから実行されるプログラムに環境設定するために新規な「ローダ
」が用いられる。ここで「実行可能なプログラム」は、「実行可能なイメージ」
と同一の意味である。さらに、本発明のローダはROMベースのTSRアプリケ
ーションに限定されるものではない。一般に、本発明のローダは、いかなるプロ
グラムをもメモリーカードROM、、ROM−BIO3等のコンピュータに内蔵
されたROMを含むROMから実行できるようにコンピュータシステムの環境設
定を行うものである。
本発明の一実施例によるローダ1100を含むコンピュータシステム1220が
第55A図に示されている。コンピュータシステム1220 (第55A図)は
、従来のシステム20(第1図)と同様の入力モジュール及び出力モジュールを
含んでいる。しかしながら、説明の明瞭化のために。ローダ1100に関連した
重要な構成部のみがコンピュータシステム1220 (第55A図)に示されて
いる。一般に、ローダ1100は、コンピュータシステム1220に二次記憶装
置1217Aに、EXEファイルまたは、C0Mファイルとして格納される。リ
ードオンリメモリROM1230はローダ1100に関連づけられた実行可能な
プログラム1250を有している。RAM1217Bはオペレーティングシステ
ム1203を有している。CPU210はROM1230.RAM1217B及
び二次記憶装置1217Aと通路1240.1241及び1242を介してそれ
ぞれ連絡されている。さらに、通路1243は、二次記憶装置1217A及び1
217Bを接続するとともに、CPU1210がローダ1100をオペレーティ
ングシステム1203を使用して直接RAM1217Bに移動させるために使用
される。コンピュータシステム1220の動作及びアーキテクチャは従来のシス
テム20(第1図)と同様であり、従って当業者において自明である。
本発明のローダ1100(第55A図)は、オペレーティングシステム1203
によってRAM1217Bにロードされる。例えば、ローダ1100は、RAM
1217BのアドレスXχX及びYYYの部分にオペレーティングシステム12
03によって。、ユーザーからの特定のROMベースの実行可能なプログラム1
250のためにローダ1100の実行の指示に対応して、上記の従来の方法によ
って格納される。
ローダ1100がRAM1217Bにロードされると、ローダ1100は、RO
M1230から直接ROMベースの実行可能なプログラムを実行するために必要
な環境設定を実行する。特に、初期化手段1100−1(第55B図)は、RO
Mベースの実行可能なプログラム1250を実行するために初期化を行う。初期
化手段1100−1は、ROMベースの実行可能なプログラム】250のために
RAM1217Bにデータエリアを形成する。
ROMベースの実行可能なプログラム1250を直接実行するための条件が設定
されると、ローダ1100は好ましくは、それ自体をRAMの開放手段1100
−2(第55B図)を使用して、RAM1217Bから排除する。ローダ110
0がそれ自体をRAM1217Bからを排除した後に、ROMベースの実行可能
なプログラム1250の為のデータエリアがメモリに残る。ROMベースの実行
可能なプログラム1250 (第55A図)は、しかして、ROM1230から
直接実行可能となる。
本発明の原理によれば、一実施例によるローダ1100は、ROMベースの実行
可能なプログラム1250をROM1230から直接実行するためのコンピュー
タシステム1220の初期化手段と、RAMを開放する手段を有している。勿論
、この実施例においては、ローダ1100が、ローダ自体によってランダムアク
セスメモリを開放する手段を含んでいるが、本発明のローダは、ローダによって
占有されたRAMを開放しなくとも適切に動作することが出来る。しかしながら
、こうした実施例は、もはや不要となったローダがRAMを占有するので、RA
M1217Bの使用効率を明らかに低下させる。
ROMからのアプリケーションの実行は、アプリケーションの実行可能なプログ
ラムの大きさによってユーザーが使用可能なRAMを減少させることがなので、
コンピュータの動作を向上させることが出来る。従って、ユーザーが、データ及
びまたは他のアプリケーション等の情報を格納するため使用可能なRAMの容量
を、実行可能なプログラムによってRAMが占をされた場合に比べて、大きくな
る。さらに、ローダ1100は、RAMカードまたはコンピュータ内の全てのR
OMに格納された実行可能なプログラムを使用して携帯用コンピュータを動作さ
せることが出来るものとする。
ローダの構造及び動作は、ROMベースの実行可能なプログラム1250に応し
て、又ローダ1100を使用するステップに応じて変化する。いずれの場合にお
いても、ローダ1100は、ROMベースのアプリケーションが適切な実行を確
実とする。
本発明のローダ1100の詳細は第56A図に示されている。この実施例におい
て、ローダは、データエリア初期化手段1110とアプリケーションの存在確認
手段1120及びセットアンプ手段1130を含んでいる。 ′データエリア初
期化手段1110は、ROMベースの実行可能なプログラムの為のデータエリア
をRAMに設定する。
一実施例におけるデータエリア初期化手段1110は、(i)ROMベースの実
行可能なプログラムのための作業データエリア1110−1(第56B図)をR
AMに作成する手段と、(i i)ROMベースの実行可能なプログラムをRO
Mから直接実行するために必要なデータエリア内の変数を初期化する手段とを含
んでいる。
アプリケーションの存在確認手段1120 (第56A図)は、ROMベースの
実行可能なプログラムがコンピュータ内のROMに物理的に存在していることを
確認する。アプリケーションの存在確認手段1120がROMベースのプログラ
ムを検出すると、ローダ1100はセンドア・ノブ手段1130による動作を継
続する。しかしながら、ROMベースのプログラムがコンピュータシステム内の
ROMに存在しない場合には、エラーメソセージが、エラーメツセージ手段11
50によってユーザーに発せられ、ローダ1100は中止手段1140によって
動作を中止する。
センドア・ノブ手段1130は、デーやセグメントレジスタ及びROMベースの
実行可能なプログラムが必要とする全てのレジスタ及び/またはベクトルをセッ
トする。セ・ノドアップ手段1130の動作は、ROMベースの実行可能なプロ
グラムに応じて変化するもので、以下により詳細に説明する。
一般に、セ・ノドアップ手段1130は少なくともローダ1100自体によって
要求されるRAMの開放を行い、コンピュータシステムの制御をROMベースの
実行可能なプログラムに引き渡す。ローダ1100がRAMの所要部分を開放し
た後、ROMベースの実行可能なプログラムのデータエリアがRAMに残る。
ROMベースの実行可能なプログラムの実行は、そのROMベースのプログラム
の性質に応して変化する。一般に、実行可能なプログラムは、(i)TSRアプ
リケーション、及び(i i)非TSRアプリケーションに分けられる。非TS
Rアプリケーションに関しては、制御がROMベースの実行可能なプログラムに
渡され、ROMベースの実行可能なプログラムはRAMのデータエリアの初期化
後に直接実行される。
実行が完了すると、ROMベースの実行可能なプログラムは、通常MS−DOS
オペレーティングシステムに戻る。
TSRアプリケーションに関しては、セットアツプ手段1130は、ROMベー
スの実行可能なプログラムをTSRプログラムとして設定することが出来る。そ
の詳細は、以下に詳述する。一方、ROMベースの実行可能なプログラムは、(
i)必要な割込みベクトルのセ・ノトアソブを行い、(i i)TSRプログラ
ムとしてのアプリケーションを形成するROMベースのコードを実行し、(i
i i)不要なコード/データを開放しながら常駐する。ROMベースの実行可
能なプログラムは、TSRプログラムとして設定されるので、ROMベースの実
行可能なプログラムは、RAMのデータエリアの初期化後に直接実行されること
はない。従って、本発明の原理によれば、ローダ1100はROMから直接実行
されるROMベースの実行可能なプログラムの実行に必要な動作を行うために必
要な構造を有している。
ROMベースの実行可能なプログラムのためのローダ1100の作業データエリ
アの作成手段1100−1の構造は、(i)実行可能なプログラムの態様、即ち
、ROMから実行される。EXE実行ファイルか、COM実行ファイルかに応し
、またある場合には(i i)ROMから直接実行されるROMベースの実行可
能なプログラムの実行に必要なデータエリアの大きさに応じて変化する。一般に
、当業者において自明なように、アセンブリコード等のソースコードはマシンコ
ードを含む、EXEファイル形成するためにコンパイルされ、リンクされている
。一方1.EXEファイルは、MS−D。
Sのオペレーティングシステムを使用して、C0Mファイルに変換することが出
来る。、C0Mファイルに関しては、オペレーティングシステムはRAMの64
キロハイドを割り当てて、ROMベースの実行可能なプログラムが64キロハイ
ドよりも小さい作業データエリアを必要とする場合には本発明のローダ1100
が作業データエリアの作成を要しないものとする。
一方、ローダ1100が作成されると、ROMベースの実行可能なプログラムの
ためのデータモジュールはローダ1100の為のコンパイルされたソースコード
をリンクされる。
この場合、ローダ1100のために発生された。EXEファイルは、実行可能な
プログラムの実行に必要なデータエリアの大きさを示す、、 E X Eファイ
ルのヘッダを含んでいる。従って、この実施例において、作業データエリア作成
手段1100−1は、ROMからROMベースの実行可能なプログラムを実行す
るだめの作業データエリアを特別に割り当てる必要がないものとなる。
最後に、実行可能なプログラムがオペレーティングシステムによって割り当てら
れたよりも大きな作業データエリア、即ちローダ1100が、C0Mファイルの
場合に割り当てられる64キロハイドよりも大きい作業データエリアを必要とす
る場合には、作業データエリア作成手段1100−1は、所要の追加のRAMを
割り当てる。
これらの動作の概略は、第57A図乃至第57C図に示されている。第一実施例
において、ローダ1100の実行時にオペレーティングシステムによって最初に
割り当てられたメモリは、メモリアドレスXXχからYYY (第57A図)で
ある。この割り当てられたメモリはローダ1100によってさらにメモリの割当
動作を必要としないものである。第1の実施例において、オペレーティングシス
テムはローダ1100のメモリをRAMのアドレスXXχ乃至YYY (第57
8図)に割り当てる。しかしながら、ローダ1100はメモリのアドレスXXX
乃至AAAのみを必要とし、メモリのアドレスAAA乃至YYYはローダ110
0によって開放される。
最後に、第三実施例においては、ローダ1100は、オペレーティングシステム
によって、アドレスXXX乃至YYYが割り当てられるが、ローダ1100はR
OMベースの実行可能なプログラムとしてより大きなデータエリアを必要−し、
このためローダ1100がオペレーティングシステムを使用してアドレスYYY
乃至BBBの追加のメモリを割り当てる。
第一実施例(第57Alffl)は、例えば、所要メモリサイズをファイルのヘ
ッダに含む、EXEファイルのローダに対応している。第二実施例(第57B図
)は、オペレーティングシステムが64頃バイトを割当、実行可能なプログラム
が64キロバイトよりも小さいデータエリアを必要とする。00Mファイルのロ
ーダに対応している。第三実施例(第57C図)は、実行可能なプログラムが6
4キロバイトよりも大きなデータエリアを必要とする。C0Mファイルのローダ
に対応している。
データエリア初期化手段1110、存在i認手段1工20及びセットアツプ手段
1130の動作は、本発明のローダの特定の実施例に関してより詳細に説明する
。
一つの実施例において、ローダ(第58A図)は、例えば、呂願人に培液された
出願係属中のアメリカ特許出願第07/375.721号のジョン ビイ、フェ
アハンクス等(JohnP、 Fairbanks et al、)の「携帯用
低電力コンピュータ(FortableLow Power Computer
) J 、1989年6月30日出願に開示されているような携帯用コンピュー
タにおいてROMベース機能のライブラリの設定に使用される。なお、上記にの
米国特許出願の開示内容は本明細書の開示の一部として援用する。
本実施例及び以下に説明する他の各実施例のソースコードはアセンブリ言語で記
述され、マイクロソフト マクロ アセンブラ(Microsoft Macr
o As5cvbler)バージョン5.1によってコンパイルされる。コンパ
イルされたコードは、マイクロソフト オーバーレイ リンカ(Microso
ft 0verlay Linker)バージョン3.65を使用してリンクさ
れる。マクロ・アセンブラ及びオーバーレイ・リンカの双方はワシントン州しン
ドモンドのマイクロソフト・コーポレーションから入手可能である。
この実施例において、機能のROMベースライブラリのデータセグメント情報は
、ローダl100Aのソースコードのコンパイルにリンクされ、実行可能なファ
イル、即ち、、EXEファイルを生成する。データセグメント情報は、ROMベ
ースの実行可能なプログラムによって決定される必要がある。
はとんどの良好に動作するプログラムに関しては、少なくともTSRプログラム
が制御を渡された前回の割込みのベクトルがデータセグメント情報に保持され、
TSRプログラムが割込みに連結される。
ライブラリ機能の性質は、本発明の特徴とは無関係である。
ローダl100Aは、ローダ1100Aに含まれたROMから直接実行される機
能に必要とされる、以下にさらに詳細に説明する初期化動作に関しては、ROM
ベースのライブラリ機能をサポートする。
ROMベースのライブラリ機能ローダl100Aは、オペレーティングシステム
によって実行され、オペレーティングシステムは1.EXEファイルのヘッダを
読み取り、ローダ1100AにROMベースのライブラリ機能のための十分なラ
ンダムアクセスメモリRAMとデータセグメントを割り当てる。さらに、当業者
において自明なように、オペレーティングシステムはプログラムのサフィックス
及びプレフィックス(PSP)をメモリに格納してローダl100Aの開始を指
定する。PSPの発注はMS−DOSオペレーティングシステムによって行われ
る標準機能であり、ビイ、ダンカンGEN、Ed、f7)rMS−DO3百科辞
典」マイクロソフト プレス、ワシントン州しドモンド、頁108乃至111に
示されている。なお、この開示内容は、明細書の開示の一部とし援用する。
[:l−ダ1lOOAの実行可能なプログラムはオペレーティングシステムがR
OMベースライブ99機能に作業データエリアを割り当てるために十分な情報を
含んでいるので、作業データエリア作成手段1110A−1によって実行される
動作はセグメントのセットアツプlll0A−1−1のみであり、セグメントレ
ジスタDS及びESがデータセグメントにセットされる。本実施例において、R
OMベースのライブラリ機能のスタックは、データセグメント内に含まれる。
データエリアの初期化1110A−2(第58A図)は、本実施例においては四
つの動作を含んでいる。データセグメントの初期化手段1110A−2−1はR
AMのデータエリアをゼロにする。これは、データエリアをクリアすることによ
って行われる。PSP格納手段1110A−2−2は、プログラムセグメントの
プレフィックスのアドレスを後で使用するために格納する。変数初期化手段11
10A−2−3は、ROMベースの関数のライブラリを連続的に実行するために
必要な全ての変数の初期化を行う。この実施例において、これは、(i)ライブ
ラリ内の機能による割込みの連結に用いる前の割込みベクトルのポインタの格納
と、(i i)メニューシステムメモリの割当図式の初期化、(i i i)機
能のライブラリを使用する他のROMベースのアプリケーションのためのデータ
セグメントの格納に使用するワードの初期化を必要とする。変数の正確な初期化
は本発明において必須な要件ではない。重要な特徴は、ローダl100Aが、R
AMのデータエリア及びROMからの実行可能なプログラムの連続的な実行に必
要な全ての変数の初期化を行うことである。
当業者において周知のように、オペレーティングシステムはローダのPSPを、
コマンドラインパラメータ及びローダ環境のセグメントアドレスを含むローダl
100Aの独特の所定のデータを追跡するために使用する。従って、データエリ
アlll0A−2の初期化の最後の動作は、コマンドラインlll0A−2−4
の処理である。
最初に、コマンドラインlll0A−2−4の処理において、PSPはルックア
ップ1110A−2−4−1(第58B図)によって、全てのコマンドラインア
ーギュメントを獲得する。コマンドラインの引数が” ■”の場合には、コマン
ドラインアーギュメントチェック機能1110A−2−4−2は処理をコマンド
ラインプロセッサlll0A−2−4−10のバージョンナンバーリポートll
l0A−2−4−3に渡し、ROMベースの実行可能なプログラムのバージョン
ナンバーをリポートして、通常終了1’l 40 Aを介して終了する。
コマンドラインのアーギュメントがR”の場合には、コマンドラインアーギュメ
ントチェック機能1110A−2−4−4は処理をコマンドラインプロセッサ1
102A−2−4−10のリセット1102A−2−4−5に渡し、データエリ
アをリセットして、通常、終了1140Aを経て終了する。最後に、コマンドラ
インが”1″またはR″ではなく”U”である場合には、コマンドラインのアー
ギュメントチェック機能1110A−2−4−6は処理をコマンドラインプロセ
ッサ1102A−2−4−10のアンロード1110A−2−4−7に渡し、ロ
ーダ1110A及びROMベースの実行可能なプログラムに関連した情報をメモ
リから消去し、通常、終了1140Aを経て終了する。
PSPのルックアップ1110A−2−4−1がコマンドラインアーギュメント
を検出しなかった場合、処理は三つのチェック機能111 QA−2−4−2、
lll0A−2−4−4及び1110A−2−4−6を経て存在確認手段112
0A(第58C図)に移行する。
本実施例において、チェックメモリ手段1120−1はROMベースの機能のラ
イブラリが既にロードされているか否かを判定する。割込みベクトルにおいて検
索されたローダ1110Aが処理を受け取るコードは、コードがライブラリの機
能を示しているか否かが判定される。ライブラリの初期設定において、コードは
”VNA”である。従って。チェック112OA−1が、”VNA、、、、”の
文字列を検出した場合には、エラーメツセージ1150Aがライブラリ機能が既
にメモリに存在していることを示すエラーメツセージを発生して、通常の終了1
140Aを経て処理を終了する。
しかしながら、ライブラリ機能が使用可能ではない場合には、ROMチェック手
段112OA−3は、機能のライブラリがコンピュータシステム内のROMにあ
ることを確認する。
特に、本実施例において、手段112OA−3はライブラリの文字列コード、即
ち”VNA、、、 、”をチェックする。
ROMベースのライブラリ機能が使用可能でない場合には、ROMチェック手段
1120−3は処理をエラーメツセージ1150Aに渡し、ライブラリ機能がR
OMにないことを示すエラーメツセージを発生する。処理は、次いで、終了11
40Aに移され、コンピュータシステムをローダlll0Aの実行開始直前の状
態にリストアするために必要な動作が行われる。これらの動作は、実行可能なプ
ログラムの終了時に行われる通常の動作であり、当業者において自明の動作であ
る。
ROMベースのライブラリ機能の終了が確認されると、処理はROMチェック手
段112OA−3からセットアツプ1130A(第58c図)に移行して、本実
施例においては、ローダlll0A自体に関連づけられたRAMのメモリエリア
が開放される。従って、RAMに残る全てはデータエリア、即ちROMベースの
実行可能なプログラムの為のデータセグメントとなり、この中には、ROMより
ROMベースのプログラムを直接実行するために必要な初期化された変数及びP
SPが含まれる。従って、再配置に関連したプログラムを排除されたROMベー
スのライブラリ機能を、ローダ1100Aは、RAM内にデータエリア及び、R
OMベースのライブラリ機能を実行するために必要な状態をセットアツプするこ
とにより効果的に実行させる。
本発明の、上記したようにROMベースの実行可能なプログラムの為の新規なロ
ーダの他の適用において、ROMへ一部の機能のライブラリに基づいて機能する
アプリケーションプログラムは、ROMに保持される。この実施例において、ロ
ーダl100B(第59A図乃至第59D図)は1.00Mファイルである。ロ
ーダlll0BはROMベースのプログラムのランに必要となるステップを実行
するばかりではなく、ROMベースのアプリケーションプログラムを常駐プログ
ラムとしてセントアップするステップも含んでいる。
本実施例において、以下に詳述するデータエリア初期化手段11.10 B及び
アプリケーションの存在確認手段1120Bの構造は先の実施例の手段1110
A及び112OAと幾分相違している。構造の変化は、最も早いレスポンスをユ
ーザーに提供する。これは、この説明に基づいて、当業者が、ROMから直接に
ROMベースのアプリケーションを実行するためにコンピュータシステムの環境
設定を行う基本的な目的に加えて、本発明のローダの機能の各要素の構造を配置
して所望の速度及び他の機能を達成することが可能であることを示している。
前述したように、オペレーティングシステムが、00Mファイルを実行する場合
、メモリの特定のセグメント、即ちメモリの64キロバイト、が割り当てられる
。従って、作業データエリア作成1110B−1(第59A図)の動作は、単に
オペレーティングシステムによって割り当てられたデータエリアないにスタンク
をセ・ントア・ノブすることのみとなる。
本実施例において、ROMベースの各アプリケーションがRAMが確実に適切に
初期設定されるようにデータエリアをセットアツプするので、データエリアはロ
ーダlll0Bによってゼロにはされない。
本実施例において、ROMベースのアプリケーションは上記の機能のライブラリ
のもとで動作するように設計される。
従って、データエリア初期化手段1110B−2は、最初にメモリチェック11
10B−2−1を使用してROMベースのライブラリ機能がロードされているか
否かを判定する。特に、ROMベースのライブラリ機能の為の割込みベクトルに
関連づけられたコードが、コードが”VNA、、、”の文字列のコードであるか
否かを調べるためにチェックされる。ライブラリ機能がロードされていない場合
には、処理はエラーメツセージ1150Bに移行する。エラーメツセージ115
0Bは、ユーザーにライブラリ機能が見つからないことをリポートして、処理が
、通常、終了1140Bを経て終了される。終了1140Bは上述した終了11
40Aと等価の機能を行う。
マツプ11.10B−2−2は、出願人に譲渡された出願係属中のアメリカ特許
出願筒07/375.72’1号のジョン。
ビイ、フェアバンクス等(John P、 Fairbanks et al、
)の[携帯用低電力コンピュータ(Portable Loin Power
Computer) J、1989年6月30日出願、及び出願人に譲渡された
出願係属中のアメリカ特許出願筒07/374.691号のイアンエイチ、ニス
、クリモア(Ian H,S、 Cullimore)の「コンピュータシステ
ムにおける情報管理方法及びその装置(Methodand Apparatu
s for Infor+wation Management In a C
omputerSystem) J、1989年6月30日出願に示されている
コンピュータの拡張BIOSにおける割込み機能をアクセスして、アドレスセグ
メントEOOOhをTRAMUBE−3Uアプリケーシヨンとして設定する。こ
れら二つの出願の開示内容は明細書の一部として援用する。一般に、拡張BIO
3は、コンピュータ内のBiO2ROMまたはROMメモリカードのいずれかか
らセグメントをアドレスするように指令される。
マツプ1110B−1−2が終了すると、処理は確認手段1120Bに渡される
。ローダl100Bによって指定されたアプリケーションがROMチェック11
20B−1(第59B図)によってROM内に検出されると、(即ち、文字列”
PQTL”が「検出」されると)処理が継続される。しかしながら、アプリケー
ションがROM内に検出されない場合には、処理はエラーメツセージ1150B
に移行される。
アプリケーションがROMに存在しないエラーが、エラーメツセージ1150B
によってリポートされ、処理が通常のように終了される。
ROMチェック1120B−1が終了すると、オペレーティングシステムのバー
ジョンが、オペレーティングシステムチェック1120B−2によってチェック
され、オペレーティングシステムはROMベースのアプリケーションに適合して
いることが確認される。オペレーティングシステムが適合していない場合には、
オペレーティングシステムがエラーをリポート出来ないことを示すエラーメツセ
ージ1150が発生され、処理が通常終了される。
次に、メモリチェック1120−B−3(第59C図)は、ROMアプリケーシ
ョンがコンピュータシステムに既にロードされているか否かを判定する。ローダ
l100Aと同様に、機能のライブラリを使用するROMベースのアプリケーシ
ョンのためのデータセグメントを格納するために初期化されたワードが使用され
る。本実施例において、ワードはゼロに初期設定される。アプリケーションがロ
ードされると、適当なワードがゼロでない値にセットされる。従って、メモリチ
ェック1120−B−3は単にワードがゼロかゼロでないかを判定することによ
り、アプリケーションが既にロードされているか否かを判定する。ROMベース
のアプリケーションがロードされていない場合には、処理は以下に詳述するセン
トアップ1130Bに移行する。
しかしながら、ROMベースのアプリケーションが既にロードされている場合に
は、ルックアップ1120B−4がPSPコマンドラインチェック1120B−
5をアクセスする。
前述の実施例と同様に、ルックアンプは、データエリアの初期化手段1110A
に含まれる。これは、本発明のローダによって構成された構造の一つが動作の特
定の割当を構成することが本発明の必須な特徴ではないことを示す。従って、本
発明のローダの多くの変形は当業者において自明である。
コマンドラインチェック1120B−5は、ユーザーが”U”を入力したか否か
を判定する。コマンドラインが”U”を持っている場合、コマンドラインプロセ
ッサ1120B=6は、ローダl100Bに割り当てられたメモリを開放して、
アプリケーションがロードされていることを示すワードをゼロにする。処理は、
次いで、通常終了される。しかしながら、コマンドラインが”U“を持っていな
い場合またはパラメータを有していない場合には、エラーメンセージ1150B
はアプリケーションが既にロードされていることをリポートする。コマンドライ
ン処理はローダ1100A及び1100Bの双方においてサポートされているが
、コマンドライン処理はローダに適切な動作のためには必要とされない。コマン
ドライン処理は、単にユーザーにROMベースの実行可能なプログラムの付加的
な制御手段を提供するのみである。
二のRAMベースアプリケーションのためのセットアツプ1130Bは、前述し
たローダl100Aのセットアツプ1130Aよりも複雑である。セントアップ
1130Bにおける第一の動作は、アプリケーションのためのRAMデータエリ
ア内の常駐変数の初期設定を行う変数初期化1130B−1である。本実施例に
おいて、二つのジャンプ先があり、アラームフラグがクリアされ、割込みベクト
ルが格納される。
アラームフラグはROMベースアプリケーションの可聴音による警報に使用され
る。INDOSカウンタ及びディスク転送アドレスも初期化される。
セットアツプ1130Bにおいて、次にレジスタセット1130B−2がレジス
タAXが、TSRのためのデータメモリ割当の後のジャンプのために初期化され
る。モア1130B−3(第59D図)は再ベクトル及びTSRのための割込み
コードの再配置を行ってメモリデータの割当の為の容量を確保し、レジスタAX
は再ベクトルされたコードを配置するためにリセ・ントされる。処理は、レジス
タAXの再ベクトルされた位置にジャンプする。TSR割込みのリセット113
0B−4においては、TSR割込みがリセットされて、割込みベクトルコードの
再配置を可能とする。ROMベースのアプリケーションのエントリコードがエン
トリ手段1130B−6によってコールされて初期化が完了する。最後に、開放
手段1130B−7が不要なRAMを開放し、インストールされたTSRプログ
ラムとして設定されたROMベースアプリケーションが残される。
例えば、セットアツプ1130Bによっれ行われる特定の変数の初期化等の正確
な動作は本発明の特徴に関しては必須な要件ではない。重要な特徴は、ROMベ
ースのアプリケーションの動作の為に、必要な再配置及び初期化がローダによっ
て行われ、ROMベースのアプリケーションがTSRプログラムとして正確に機
能することである。
ポケットリンクが、コンピュータシステムにROMベースのアプリケーションと
して含まれる場合には、さらに他の実施例のローダが使用される。このローダは
、ローダが実行される時に、オペレーティングシステムのよって割り当てられた
メモリよりも小さいメモリを必要とする。従って、二〇ローダは、第57B図に
示すようにメモリの割当を開放する。
また、ROMベースの実行可能なプログラムは、前述したように、ローダの消去
を含むローダの動作が完了すると、非TSRアプリケーションとして直接実行さ
れる。前述したように、ローダ自体が消去されたのち、ROMベースのポケット
リンクアプリケーションのPSP及びデータセグメントがRAMに残る。この実
施例において、ROMベースのポケットリンクは、必要に応じて付加的なメモリ
を割り当てられる。
上記した本発明の種々の実施例は、18Mパーソナルコンピュータ及びIBM相
当のパーソナルコンピュータにおいて動作するように設計されている。しかしな
がら、これらの実施例は単に本発明の詳細な説明するものであり、上述した特定
の実施例に本発明を限定することを意味するものではない。
本明細書の開示に基づいて、当業者が本発明の新規なローダを他のコンピュータ
のアーキテクチャ及び他のコンピュータプログラム言語において実施することが
出来ることは、自明である。
従来技術
従来技術
2の−12の−2
2の−12の−22の−N
従来技術
日G、17A
日G、17日
日G、18A
日G、19A
巳G、198
FIG、2のA
日G、 21A
FIo、 21日
日0.22A
口G、23A
日G、23日
口G、 248
日G、25A
口0.25日
日G、26A
日G、278
日G、28A
巳G、29
0G、30
口0.31
FIG 32−1
口G 32−2
日G34−1
KEY To FIG 34
日G 34−2
口G 39B−2
口G ヰ7−1
0G 47−2
KEY To ロG 47
日G 47−3
特表平5−502528 (66)
口G 48−1
0G 48−2
FIG、54−1
日G 55A
11のの−1
日G 558
日G、57A
ロG、57日
日G、57C
国際調査報告
1MmMI+alIal^””””+1− trr/+<(ffi/n<1!R
Claims (58)
- 1.第一のコンピュータ手段と、 第二のコンピュータ手段と、 前記第一及び第二のコンピュータを動作可能に連結し、前記第一及び第二のコン ピュータ手段間にて情報を転送する手段と、 前記の各コンピュータ手段にて動作して、(i)第一のモードの動作において前 記転送手段を介して前記第一のコンピュータと前記第二のコンピュータ手段間で 情報を転送するとともに、(ii)第二のモードの動作において、前記第一のコ ンピュータ手段と前記第二のコンピュータ手段を含む仮想コンピュータを形成す る仮想ネットワーク管理手段とで構成され、 前記仮想ネットワーク管理手段が前記コンピュータ手段を仮想コンピュータとし て設定したときに、前記第一のコンピュータ手段が前記仮想コンピュータを制御 し、前記第二のコンピュータ手段が前記第一のコンピュータ手段からのコマンド にサービスして、前記第一のコンピュータ手段において実行されるユーザーアプ リケーションが仮想コンピュータ内に記憶された全ての情報をアクセスするよう にしたことを特徴とする装置。
- 2.前記仮想ネットワーク管理手段は、一方のコンピュータ手段のユーザーアプ リケーションに応答して、情報を送受信し前記情報を含む第一のメッセージ構造 を発生する第一の手段と、 前記第一の手段に動作可能に結合され、前記情報を受信及び送信し第二のメッセ ージ構造を発生する第二の手段とによって構成され、 前記第二の手段が、ヘッダと、少なくとも第一のメッセージの一部と、エラーコ ードを含む前記第一のメッセージ構造を受信し、 さらに、前記第二の手段及び前記転送手段に結合され、前記情報の受信及び送信 する第三の手段を含み、前記第三の手段が前記第二のメッセージ構造をブロック サイズ及び転送速度を含む所定の転送パラメータとともに前記転送手段を介して 受信し及び送信するようにした請求の範囲第1項の装置。
- 3.前記第一の手段は、 前記情報を前記第一のメッセージ構造を発生する前に圧縮し、圧縮された情報を 前記第一のメッセージ構造に使用するデータ圧縮手段を有する請求の範囲第2項 の装置。
- 4.前記第一の手段は、圧縮された情報を受信したときに、該圧縮された情報を 復元する復元手段を有する請求の範囲第3項の装置。
- 5.前記第二のメッセージ構造は、データのバイト情報で構成され、前記第二の 手段が、 前記第二のメッセージ構造のヘッダと、少なくとも前記第一のメッセージ内部の 情報の各バイトの処置に基づいてエラーコードを発生して、いずれかのバイトが 変化した時に異なるエラーコードを発生する手段を有している請求の範囲第2項 の装置。
- 6.前記第二の手段は、(i)前記第二のメッセージのサイズ及び(ii)前記 転送手段を介して前記第二のメッセージを送信する前記第三の手段によって使用 される転送速度、を含む予め定められた転送パラメータ調整する手段を含み、少 なくともメッセージサイズ及び転送速度の一方が前記第二のメッセージ構造の送 信において所定回数のエラーが発生したときに調整される請求の範囲第2項の装 置。
- 7.第一及び第二のコンピュータ装置間において情報を転送するために前記第一 及び第二のコンピュータ装置を連結し、第一のモードの動作において、転送手段 を介して前記第一及び第二のコンピュータ装置間において情報を転送し、第二の モードの動作において、前記第一のコンピュータと前記第二のコンピュータ装置 によって仮想コンピュータを形成し、 前記コンピュータ手段が仮想コンピュータとして設定されたときに、前記第一の コンピュータ手段が前記仮想コンピュータを制御し、前記第二のコンピュータ手 段が前記第一のコンピュータ手段からのコマンドにサービスして、前記第一のコ ンピュータ手段において実行されるユーザーアプリケーションが仮想コンピュー タ内に記憶された全ての情報をアクセスするようにしたことを特徴とする二つの コンピュータ装置間の通信方法。
- 8.第一及び第二のコンピュータ装置間において情報を転送するために前記第一 及び第二のコンピュータ装置を連結し、前記の各コンピュータ手段で動作して、 (i)第一のモードの動作において前記転送手段を介して前記第一のコンピュー タと前記第二のコンピュータ手段間で情報を転送するとともに、(ii)第二の モードの動作において、前記第一のコンピュータ手段と前記第二のコンピュータ 手段によって仮想コンピュータを形成する仮想ネットワーク管理手段を設け、前 記仮想ネットワーク管理手段が前記コンピュータ手段を仮想コンピュータとして 設定したときに、前記第一のコンピュータ手段が前記仮想コンピュータを制御し 、前記第二のコンピュータ手段が前記第一のコンピュータ手段からのコマンドに サービスして、前記第一のコンピュータ手段において実行されるユーザーアプリ ケーションが仮想コンピュータ内に記憶された全ての情報のアクセスするように したことを特徴とする二つのコンピュータ装置間の通信方法。
- 9.第一のコンピュータ手段が、第一の仮想ネットワーク管理手段を有し、組の コマンドの各コマンドに応答して、(i)第一のモードの動作において、第一の コンピュータ手段と他方のコンピュータ手段間に介在された連結手段を介して前 記第一のコンピュータ手段と前記他方のコンピュータ手段間で情報を転送すると ともに、(ii)第二のモードの動作において、前記第一のコンピュータ手段と 前記他方のコンピュータ手段によって仮想コンピュータを形成し、第一のユーザ ーアプリケーションを実行し、前記第一のコンピュータ手段が該第一のユーザー アプリケーションが前記組のコマンドの中のコマンドを発生することにより前記 仮想ネットワーク管理手段をアクセスし、 第二のコンピュータ手段が、第二の仮想ネットワーク管理手段を有し、組のコマ ンドの各コマンドに応答して、(i)第一のモードの動作において、第二のコン ピュータ手段と他方のコンピュータ手段間に介在された連結手段を介して前記第 二のコンピュータ手段と前記他方のコンピュータ手段間で情報を転送するととも に、(ii)第二のモードの動作において、前記第二のコンピュータ手段と前記 他方のコンピュータ手段によって仮想コンピュータを形成し、第二のユーザーア プリケーションを実行し、前記第二のコンピュータ手段が該第二のユーザーアプ リケーションが前記組のコマンドの中のコマンドを発生することにより前記仮想 ネットワーク管理手段をアクセスし、 前記第一及び第二のコンピュータ手段を動作可能に連結して、前記第一及び第二 のコンピュータ手段間で情報を転送する手段を設けて構成し、 前記第二のユーザーアプリケーションは前記第二の仮想ネットワーク管理手段に サーバーコマンドを発生し、前記第二の仮想ネットワーク管理手段は前記第二の コンピュータ手段をサーバーとして構成して、前記第一及び第二のコンピュータ 手段が仮想コンピュータを構成し、前記第一のコンピュータ手段で実行される第 一のユーザーアプリケーションか前記仮想コンピュータを制御するようにしたこ とを特徴とする装置。
- 10.データリンクを介して情報の送信及び受信を行う為に動作可能に連結され た複数のコンピュータを有するコンピュータシステムにおいて動作する仮想ネッ トワーク管理機能であって、 ブロックサイズと転送速度とを含む所定の転送パラメータを使用してデータリン クを介して情報の転送及び受信を行う手段と、 前記データリンクを介しての情報の転送におけるエラーを検出する手段と、 前記転送における所定数のエラーを検出したときに情報の転送を調整する手段と によって構成したことを特徴とする仮想ネットワーク管理機能。
- 11.前記転送及び受信手段が、 メッセージ構造を発生する手段を有し、前記メッセージ構造がヘッダと、前記情 報の一部とエラーコードを含んでおり、前記メッセージ構造が前記転送及び受信 手段によって転送受信される請求の範囲第10項の仮想ネットワーク管理機能。
- 12.前記メッセージ構造は、バイトで構成され、前記転送及び受信手段は、 前記メッセージのヘッダ及び少なくとも情報の一部の情報のバイトの処理に基づ いてエラーコードを発生する手段を有し、いずれかのバイトが変化したときに異 なるエラーコードを発生することを特徴とする請求の範囲第11項の仮想ネット ワーク管理機能。
- 13.前記エラー検出手段は 前記転送及び受信手段と動作可能に連結され、受信したメッセージのヘッダ及び 受信した少なくとも情報の一部に関して第二のエラーコードを発生するとともに 、前記第二のエラーコードを受信したエラーコードと比較して、前記第一及び及 び第二のエラーコードが相違する場合に、転送エラーを検出する請求の範囲第1 2項の仮想ネットワーク管理機能。
- 14.前記の情報の転送を調整する手段は、(i)前記メッセージ構造のサイズ と、(ii)転送速度を含む所定の転送パラメータを調整する手段を有し、前記 第二のメッセージ構造の転送中に所定数のエラーが発生した場合に、少なくとも メッセージのサイズ及び前記転送速度の一方を調整する請求の範囲第13項の仮 想ネットワーク管理機能。
- 15.データリンクを介して情報の送信及び受信を行う為に動作可能に連結され た複数のコンピュータを有するコンピュータシステムにおいて動作する仮想ネッ トワーク管理機能であって、 一方のコンピュータ手段のユーザーアプリケーションに応答して、情報を送受信 するために前記情報を含む第一のメッセージ構造を発生する第一の手段と、 前記第一の手段に動作可能に結合され、前記情報を受信及び送信するために第二 のメッセージ構造を発生する第二の手段とによって構成され、 前記第二の手段は前記第一のメッセージ構造を受信し、前記第二のメッセージ構 造がヘッダと、少なくとも前記第一のメッセージ構造の一部とエラーコードを含 んでおり、さらに、情報を受信及び送信するために前記第二の手段及びデータリ ンクに動作可能に結合された第三の手段を有し、前記第三の手段は、前記第二の メッセージ構造をデータリンクを介してブロックサイズと転送速度を含む所定の 転送パラメータで受信及び送信するようにしたことを特徴とする仮想ネットワー ク管理機能。
- 16.前記第一の手段は、 前記情報を前記第一のメッセージ構造を発生する前に圧縮し、圧縮された情報を 前記第一のメッセージ構造に使用するデータ圧縮手段を有する請求の範囲第15 項の仮想ネットワーク管理機能。
- 17.前記第一の手段は、圧縮された情報を受信したときに、該圧縮された情報 を復元する復元手段を有する請求の範囲第16項の仮想ネットワーク管理機能。
- 18.前記第二のメッセージ構造は、データの情報バイトで構成され、前記第二 の手段が、 前記第二のメッセージ構造のヘッダと、少なくとも前記第一のメッセージの内部 の情報の各バイトの処置に基づいてエラーコードを発生して、いずれかのバイト が変化した時に異なるエラーコードを発生する手段を有している請求の範囲第1 5項の仮想ネットワーク管理機能。
- 19.前記第二の手段は、(i)前記第二のメッセージのサイズ及び(ii)前 記転送手段を介して前記第二のメッセージを送信するために前記第三の手段によ って使用される転送速度を含む予め定められた転送パラメータ調整する手段を含 み、少なくともメッセージサイズ及び転送速度の一方が前記第二のメッセージ構 造の送信において所定回数のエラーか発生したときに調整される請求の範囲第1 5項の仮想ネットワーク管理機能。
- 20.データリンクを介して情報を所定の転送パラメータで転送し、 データリンクを介しての転送中のエラーを検出し、転送中において所定数のエラ ーを検出したときに転送パラメータを調整するようにしたデータリンクを介して 結合された少なくとも二つのコンピュータシステム間の情報転送方法。
- 21.前記転送及び受信ステップの前に、メッセージ構造を発生し、該メッセー ジ構造がヘッダと、少なくとも前記情報の一部とエラーカードを含み、前記メッ セージが前記転送及び受信ステップにおいて転送及び受信される請求の範囲第2 0項の方法。
- 22.前記メッセージ構造は、バイトで構成され、前記メッセージのヘッダ及び 少なくとも前記情報の一部の情報の各バイトの処理に基づいて、いずれかのバイ トが変化したときに異なるエラーコードを発生するようにして、エラーコードを 発生するステップを有する請求の範囲第21項の方法。
- 23.前記のエラー検出ステップが、受信したヘッダと受信した少なくとも情報 の一部に関して第二のエラーコードを発生し、該第二のエラーコードを受信した エラーコードと比較して、第一及び第二のエラーコードが異なる時に転送エラー を検出するステップを有する請求の範囲第22項の仮想ネットワーク管理機能。
- 24.前記の転送パラメータの調整ステップは、(i)前記メッセージサイズ及 び(ii)転送速度の少なくとも一方を調整するステップを有する請求の範囲第 23項の仮想ネットワーク管理機能。
- 25.情報の転送方向及び情報の転送先を示すヘッダ手段と、 ヘッダ手段に隣接し、情報を格納する手段とによって構成されたコンピュータ間 の情報転送に使用する構造。
- 26.前記ヘッダ手段は、 前記構造の発生源を示す手段を有する請求の範囲第25項の構造。
- 27.前記ヘッダ手段は、 前記構造に格納された情報を使用して行われる動作を指定する手段を有している 請求の範囲第26項の構造。
- 28.前記構造の各対は、行われる動作の一つと一義的に関連づけられ、前記対 の一方の構造は送信され、前記対の他方の構造は受信される請求の範囲第27項 の構造。
- 29.オペレーティングシステムとランダムアクセスメモリ(RAM)と、リー ドオンリメモリ(ROM)に格納された実行可能なプログラムのためのローダと を有し、前記ローダの実行時に、前記RAMが前記ローダに割り当てられるコン ピュータ装置において、前記ローダは、前記ROMに格納された実行可能なプロ グラムを実行するために前記コンピュータ手段を初期化する手段と、前記初期化 手段と動作可能に結合され、前記RAMを開放する手段とによって構成され、 前記初期化手段による前記コンピュータ装置の初期化が完了したときに、前記開 放手段が前記ローダ自体が必要としたRAMを開放し、前記ROMに格納された 実行可能なプログラムが前記コンピュータ装置内のROMから直接実行できるよ うに設定されることを特徴とするローダ。
- 30.ROMに格納された実行可能なプログラムを実行するためにコンピュータ 装置を初期化する手段と、前記初期化手段と動作可能に結合され、ランダムアク セスメモリ(RAM)を開放する手段とで構成され、前記コンピュータシステム にローダをロードする時及び前記初期化手段による前記コンピュータ装置の初期 化が終了したときに、前記開放手段がローダ自体を使用してRAMを開放し、前 記ROMに格納されたプログラムをROMから直接実行するように設定すること を特徴とするリードオンリメモリ(ROM)に格納された実行可能なプログラム のローダ。
- 31.前記初期化手段は、データエリアの初期設定を行う手段を有し、該データ エリア初期設定手段は前記RAMのデータエリアを前記ROMに格納された実行 可能なプログラムに設定する請求の範囲第29項または第30項のローダ。
- 32.前記初期化手段は、前記ROMに格納された実行可能なプログラムのため の作業RAMデータエリアを作成する手段を有し、前記作業データエリア作成手 段は、前記RAMデータエリアのサイズを設定する請求の範囲第31項のローダ 。
- 33.前記初期化手段は、前記作業データエリア作成手段と動作可能に結合され たデータ初期設定手段を有し、該データ初期設定手段は前記RAMデータエリア 内の前記ROMに格納された実行可能なプログラムを実行するために必要な変数 を初期化する請求の範囲第32項のローダ。
- 34.前記初期化手段は、データ初期設定手段を有し、該データ初期設定手段は 前記RAMデータエリア内の前記ROMに格納された実行可能なプログラムを実 行するために必要な変数を初期化する請求の範囲第31項のローダ。
- 35.前記初期化手段及び前記開放手段と動作可能に結合されたアプリケーショ ンの存在確認手段を有し、該アプリケーションの存在確認手段は、前記コンピュ ータ装置内のROM内にROMに格納された実行可能なプログラムの存在を確認 する請求の範囲第31項のローダ。
- 36.前記存在確認手段は、ROMに格納された実行可能なプログラムが既にコ ンピュータ装置にロードされているか否かを判定する手段を有している請求の範 囲第35項のローダ。
- 37.前記開放手段はセットアップ手段を有している請求の範囲第31項のロー ダ。
- 38.前記セットアップ手段が、前記ROMに格納された実行可能なプログラム を常駐プログラムとして設定する手段を有する請求の範囲第37項のローダ。
- 39.ROMに格納された実行可能なプログラムを実行するためにリードオンリ メモリ(RAM)のデータエリアを設定するデータエリア初期設定手段と、 前記データエリア初期設定手段と動作可能に結合され、ROM内のROMに格納 された実行可能なプログラムのをチェックするアプリケーションの存在確認手段 によって構成したことを特徴とするリードオンリメモリ(ROM)に格納された 実行可能なプログラムのローダ。
- 40.前記データエリア初期化手段は、前記ROMに格納された実行可能なプロ グラムのための作業RAMデータエリアを作成する手段を有し、前記作業データ エリア作成手段は、前記RAMデータエリアのサイズを設定する請求の範囲第3 9項のローダ。
- 41.前記データエリア初期化手段は、前記作業データエリア作成手段と結合さ れ、データを初期化する手段を有し、データ初期化手段は前記RAMデータエリ ア内でROMベース実行プログラムに必要な変数を初期化する請求の範囲第40 項のローダ。
- 42.前記データエリア初期化手段は、データ初期設定手段を有し、該データ初 期設定手段は前記RAMデータエリア内の前記ROMに格納された実行可能なプ ログラムを実行するために必要な変数を初期化する請求の範囲第39項のローダ 。
- 43.前記存在確認手段は、ROMに格納された実行可能なプログラムが既にコ ンピュータ装置にロードされているか否かを判定する手段を有している請求の範 囲第35項のローダ。
- 44.前記セットアップ手段が、前記ROMに格納された実行可能なプログラム を常駐プログラムとして設定する手段を有する請求の範囲第39項のローダ。
- 45.ROMに格納された実行可能なプログラムを実行するためにコンピュータ 装置を初期化するステップと、ランダムアクセスメモリ(RAM)を開放するス テップとによって構成され、 前記初期化ステップによる前記コンピュータ装置の初期化完了時に、前記初期化 ステップにおいて使用したRAMを開放して、ROMに格納された実行可能なプ ログラムをROMから直接実行するように設定したことを特徴とするリードオン リメモリ(ROM)に格納された実行可能なプログラムをROMから実行するよ うにコンピュータ装置を設定する方法。
- 46.前記初期化ステップが、前記ROMに格納された実行可能なプログラムの ために前記RAMにデータエリアを割り当てるステップを有する請求の範囲第4 5項の方法。
- 47.前記初期化手段が前記RAMのデータエリアのサイズを設定するステップ を有している請求の範囲第46項の方法。
- 48.前記初期化ステップが、前記RAMのデータエリア内の前記ROMに格納 された実行可能なプログラムの実行に必要な変数を初期設定するステップを含む 請求の範囲第47項の方法。
- 49.前記初期化ステップが、前記RAMのデータエリア内の前記ROMに格納 された実行可能なプログラムの実行に必要な変数を初期設定するステップを含む 請求の範囲第45項の方法。
- 50.前記コンピュータ装置内のROMの前記ROMに格納された実行可能なプ ログラムの存在をチェックするステップを有している請求の範囲第45項の方法 。
- 51.前記チェックステップは、前記ROMに格納された実行可能なプログラム が既にコンピュータ装置にロードされているか否かを判定するステップを有して いる請求の範囲第50項の方法。
- 52.前記ROMに格納された実行可能なプログラムをコンピュータ装置に常駐 プログラムをして設定するステップを有する請求の範囲第45項の方法。
- 53.ROMに格納された実行可能なプログラムのためにランダムアクセスメモ リ(RAM)にデータエリアを作成するステップと、 コンピュータ装置内のROM内の前記ROMに格納された実行可能なプログラム の存在をチェックするステップによって構成したことを特徴とするリードオンリ メモリ(ROM)に格納された実行可能なプログラムをROMから実行するよう にコンピュータ装置を設定する方法。
- 54.前記作成ステップは、RAMのデータエリアを設定するステップを有して いる請求の範囲第53項の方法。
- 55.前記の作成ステップは、RAMのデータエリア内の、前記ROMに格納さ れた実行可能なプログラムの実行に必要な変数を初期設定するステップを有して いる請求の範囲第54項の方法。
- 56.前記の作成ステップは、RAMのデータエリア内の、前記ROMに格納さ れた実行可能なプログラムの実行に必要な変数を初期設定するステップを有して いる請求の範囲第53項の方法。
- 57.前記のチェックステップは、前記ROMに格納された実行可能なプログラ ムが既にコンピュータ装置にロードされているか否かを判定するステップを有し ている請求の範囲第53項の方法。
- 58.前記ROMに格納された実行可能なプログラムをコンピュータ装置に常駐 プログラムをして設定するステップを有する請求の範囲第53項の方法。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US40566189A | 1989-09-11 | 1989-09-11 | |
| US405,661 | 1989-09-11 | ||
| US56932890A | 1990-08-17 | 1990-08-17 | |
| US569,328 | 1990-08-17 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05502528A true JPH05502528A (ja) | 1993-04-28 |
Family
ID=27019183
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2514026A Pending JPH05502528A (ja) | 1989-09-11 | 1990-09-11 | 仮想ネットワークアーキテクチャ及びローダ |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JPH05502528A (ja) |
| AU (1) | AU6520090A (ja) |
| WO (1) | WO1991004537A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016152427A (ja) * | 2015-02-16 | 2016-08-22 | 日本電気株式会社 | ポリシ管理装置、仮想ネットワークの管理方法及びプログラム |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3909791A (en) * | 1972-06-28 | 1975-09-30 | Ibm | Selectively settable frequency divider |
| US3940744A (en) * | 1973-12-17 | 1976-02-24 | Xerox Corporation | Self contained program loading apparatus |
| US4188665A (en) * | 1977-11-29 | 1980-02-12 | International Business Machines Corporation | Programmable communications subsystem |
| US4218757A (en) * | 1978-06-29 | 1980-08-19 | Burroughs Corporation | Device for automatic modification of ROM contents by a system selected variable |
| US4430704A (en) * | 1980-01-21 | 1984-02-07 | The United States Of America As Represented By The Secretary Of The Navy | Programmable bootstrap loading system |
| US4607332A (en) * | 1983-01-14 | 1986-08-19 | At&T Bell Laboratories | Dynamic alteration of firmware programs in Read-Only Memory based systems |
| US4590556A (en) * | 1983-01-17 | 1986-05-20 | Tandy Corporation | Co-processor combination |
| US4590557A (en) * | 1983-09-12 | 1986-05-20 | Pitney Bowes Inc. | Method and apparatus for controlling software configurations in data processing systems |
| NL8400186A (nl) * | 1984-01-20 | 1985-08-16 | Philips Nv | Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem. |
| US4833596A (en) * | 1985-02-28 | 1989-05-23 | International Business Machines Corporation | Logical arrangement for controlling use of different system displays by main processor and co-processor |
| US4937036A (en) * | 1986-04-28 | 1990-06-26 | Xerox Corporation | Concurrent display of data from two different display processors and user interface therefore |
| US4849877A (en) * | 1986-12-22 | 1989-07-18 | American Telephone And Telegraph Company | Virtual execution of programs on a multiprocessor system |
| US4951192A (en) * | 1987-06-04 | 1990-08-21 | Apollo Computer, Inc. | Device for managing software configurations in parallel in a network |
| US4947477A (en) * | 1988-03-04 | 1990-08-07 | Dallas Semiconductor Corporation | Partitionable embedded program and data memory for a central processing unit |
| US4949248A (en) * | 1988-07-15 | 1990-08-14 | Caro Marshall A | System for shared remote access of multiple application programs executing in one or more computers |
-
1990
- 1990-09-11 AU AU65200/90A patent/AU6520090A/en not_active Abandoned
- 1990-09-11 WO PCT/US1990/005118 patent/WO1991004537A1/en not_active Ceased
- 1990-09-11 JP JP2514026A patent/JPH05502528A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016152427A (ja) * | 2015-02-16 | 2016-08-22 | 日本電気株式会社 | ポリシ管理装置、仮想ネットワークの管理方法及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| AU6520090A (en) | 1991-04-18 |
| WO1991004537A1 (en) | 1991-04-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5966531A (en) | Apparatus and method for providing decoupled data communications between software processes | |
| CN111033468B (zh) | 实施不同类型的区块链合约的系统和方法 | |
| CN111930676B (zh) | 多处理器间的通信方法、装置、系统及存储介质 | |
| US7664786B2 (en) | Apparatus and method for managing application context | |
| JP2779587B2 (ja) | コンピュータシステムに用いる名前スペースの一部分を別の名前スペースの一部分として利用可能にするための装置及びその方法 | |
| US6947970B2 (en) | Method and apparatus for multilevel translation and protection table | |
| KR100555394B1 (ko) | Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘 | |
| JP3996454B2 (ja) | 分割サーバにおけるドメイン間低オーバヘッドメッセージ受渡しのためのシステム及び方法 | |
| US20020026502A1 (en) | Network server card and method for handling requests received via a network interface | |
| JPH05509430A (ja) | ネットワークによるオペレーティングシステムのダウンローディング | |
| US6633876B1 (en) | Analyzing post-mortem information on a remote computer system using a downloadable code module | |
| WO1999026377A2 (en) | A high performance interoperable network communications architecture (inca) | |
| JPH10116236A (ja) | 遅延コード化データ伝送 | |
| CN112764946B (zh) | 跨进程数据传输方法、装置、电子设备和存储介质 | |
| JPS63172347A (ja) | マルチプロセッサシステムの新規プログラムの実行を開始する方法 | |
| USRE45729E1 (en) | Apparatus and method for managing application context | |
| Banikazemi et al. | MPI-LAPI: an efficient implementation of MPI for IBM RS/6000 SP systems | |
| US20070055968A1 (en) | Reliable BIOS updates | |
| JPH05502528A (ja) | 仮想ネットワークアーキテクチャ及びローダ | |
| CN108270832A (zh) | 一种故障重放方法和装置 | |
| US6842902B2 (en) | Robust device driver token management for upgraded computers using legacy device cards | |
| US7127601B2 (en) | System and method for delivering FPGA programming | |
| US20050281202A1 (en) | Monitoring instructions queueing messages | |
| Fröhlich et al. | EPOS and Myrinet: Effective Communication Support for Parallel Applications Running on Clusters of Commodity Workstation | |
| EP1049292A2 (en) | System and method for network monitoring |