JP3478538B2 - 共通ルーチンを用いた移植性の資源共用ファイルサーバ - Google Patents

共通ルーチンを用いた移植性の資源共用ファイルサーバ

Info

Publication number
JP3478538B2
JP3478538B2 JP29513990A JP29513990A JP3478538B2 JP 3478538 B2 JP3478538 B2 JP 3478538B2 JP 29513990 A JP29513990 A JP 29513990A JP 29513990 A JP29513990 A JP 29513990A JP 3478538 B2 JP3478538 B2 JP 3478538B2
Authority
JP
Japan
Prior art keywords
coroutine
common
session worker
session
stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP29513990A
Other languages
English (en)
Other versions
JPH03147151A (ja
Inventor
ティモシー・ジー・バリー
ジョージ・エイチ・ロバート
ジェイムズ・アール・コンラッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH03147151A publication Critical patent/JPH03147151A/ja
Application granted granted Critical
Publication of JP3478538B2 publication Critical patent/JP3478538B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 【産業上の利用分野】
本発明は、コンピュータシステムに関したものであ
り、とりわけ、ローカルエリアネットワークを介してデ
ータを共用する方法に関するものである。とりわけ、本
発明は、ファイルサーバホストコンピュータにおいてコ
ルーチン(以下、共通ルーチンと記載する)を利用し、
ローカルエリアネットワークを介して複数のクライアン
トのコンピュータにファイルアクセスサービスを提供す
ることに関連したものである。
【従来の技術】
一般的なコンピュータシステムは、プロセッサメモ
リ、及び、ハードディスクのような大容量記憶装置から
構成される。大形の本体コンピュータには、通常、多く
の端末が取りつけられており、各ユーザは、端末の1つ
を介して本体コンピュータにアクセスする。エンジニア
リングワークステーション及びパーソナルコンピュータ
のような小形システムの場合、コンピュータは、キーボ
ードとディスプレイを備えており、それらを介して、ユ
ーザはコンピュータにアクセスする。それぞれ、異なる
プロセッサを用いる多種多様なコンピュータシステム
が、今日では利用されている。各コンピュータシステム
内のオペーレーティングシステムは、実際にユーザーの
作業を実施するアプリケーションソフトウェアの基本機
能を実施する。MS−DOSは、パーソナルコンピュータに
用いられる典型的なオペレーティングシステムであり、
一方、UNIXは、パーソナルコンピュータ、エンジニアリ
ングワークステーション、及び、大形本体にさえ用いら
れるオペレーティングシステムである。 本来、ユーザーは、彼らが利用している特定のコンピ
ュータの大容量記憶装置で得られるデータだけでしかア
クセスすることができなかった。パーソナルコンピュー
タの利用は、1980年代の初めに普及したが、他のコンピ
ュータに納められたデータにアクセスしようとするユー
ザが、益々増えてきた。本来、このアクセスは、RS−23
2のようなごく低速の通信リンクを介して行われた。コ
ンピュータ間におけるさらに多くのデータアクセスに対
する要求が増大してきたので、高速ローカルエリアネッ
トワーク(LAN)が開発された。ローカルエリアネット
ワークは、超高速度で、通常、1000万ビット/秒の速度
でデータ転送を行うように設計されており、コンピュー
タ間におけるデータの共用に非常に適している。ローカ
ルエリアネットワークの高速度によるデータ転送が可能
になったことで、共通のプリンタのような他の資源の共
用が可能になった。 資源共用コンピュータシステムは、一般に、ローカル
エリアネットワークに接続されたホストコンピュータで
構成される。LANは、ホストコンピュータの共通資源を
利用する一連のクライアントの各コンピュータにも接続
されている。一般に、クライアントのコンピュータは、
ホストコンピュータのディスクを利用して、データの全
てを記憶する。クライアントのコンピュータは、プリン
タや、ホストコンピュータに設けられた他の共通資源も
利用する。これらのサービスを提供するため、ホストコ
ンピュータは、クライアントのコンピュータにとって所
望のサービスを行う。ソフトウェアを共用する資源を備
えていなければならない。例えば、いくつかのクライア
ントのコンピュータが、ホストコンピュータにプリント
データを送る可能性があり、ホストコンピュータ内のソ
フトウェアは、各クライアントのコンピュータからのプ
リントデータを別個にしておかなければならない。 クライアントのコンピュータがMS−DOSのような小形
のオペレーティングシステムを実行しており、クライア
ントのコンピュータの数が少ない場合、ホストコンピュ
ータに対する作業負荷も少なく、単純なファイルサービ
ングシステムで十分である。しかし、クライアントのコ
ンピュータの数が増し、該コンピュータがUNIX又はOS/2
といった多重タスクオペレーティングシステムを実行す
るようになると、ホストシステムに対する作業負荷が大
幅に増すことになる。とりわけ、クライアントのコンピ
ュータが同時に複数の要求を送ることのできる多重タス
クオペレーティングシステムを備えている場合、作業負
荷が増すにつれて、ホストサーバの性能要件が重要にな
ってくる。 ホストサーバシステムに関するもう1つの問題は、多
種多様なホストプロセッサで実行できるように設計しな
ければならない。ホストサーバプログラムは、ホストコ
ンピュータとして利用できる全ての機械で実行し得るの
が理想である。この移植性を与えるため、ホストサーバ
ソフトウェアは、ある機械タイプから別の機械へ簡単に
移行し、ホストコンピュータのオペレーティングシステ
ムに修正を加えなくても実行されなければならない。 ホスト資源共用システムの設計においてしばしば生じ
ることになるもう1つの問題は、サーバがアクセスしな
ければならないファイル数が、ホストコンピュータシス
テムにおける単一プロセスの能力を超えるという点であ
る。従って、ホストサーバは、それぞれ、クライアント
のコンピュータシステムのサブセットにサービスを行う
複数プロセスに分割しなければならない。
【発明が解決しようとする課題】
以上から明らかなように、当該技術においては、ロー
カルエリアネットワークを介して多数のクライアントの
コンピュータに対する高性能な応答を行う、改良された
ホスト資源サーバが必要とされている。また、当該技術
においては、各クライアントのコンピュータからの複数
の同時要求を処理できるシステムが必要とされている。
また、当該技術において、ホストコンピュータのオペレ
ーティングシステムに修正を加えなくても実行されるシ
ステムが必要とされている。更に、いくつかのタイプの
ホストコンピュータプロセッサ間における移植性に優れ
たシステムが必要とされている。更に、いくつかのコン
ピュータプログラミング言語間における移植性に優れた
システムが必要とされている。更に、ホストコンピュー
タシステムにおける極めて多くのファイルにアクセス可
能なシステムが必要とされている。 本発明の目的は、ホストコンピュータと複数のクライ
アントのコンピュータの間においてファイルデータを共
用するファイル共用システムを提供することにある。 本発明のもう1つの目的は、こうしたシステムに高性
能な応答性を与えることにある。 もう1つの目的は、ホストコンピュータのオペレーテ
ィングシステムに修正を加えずに、こうしたシステムを
提供することにある。 もう1つの目的は、いくつかのタイプのホストコンピ
ュータプロセッサ間における移植性に優れた前記システ
ムを提供することにある。 もう1つの目的は、いくつかのコンピュータプログラ
ミング言語間における移植性に優れた前記システムを提
供することにある。 更にもう1つの目的は、ソフトウェアのクリティカル
セクションなしで実現する前記システムを提供すること
にある。 本発明の更にもう1つの目的は、多重レベルの処理ル
ーチンを利用したシステムを提供することにある。 本発明のもう1つの目的は、クライアントのコンピュ
ータからの全ての初期呼び出しを処理する監視プロセス
を有する前記システムを提供することにある。 本発明の更にもう1つの目的は、監視プロセスが各ク
ライアントのコンピュータ毎に独立したセッションワー
カプロセスを生成する前記システムを提供することにあ
る。 もう1つの目的は、こうした各セッションワーカプロ
セスが、各クライアントのコンピュータ要求毎に独立し
た共通ルーチンを生成する前記システムを提供すること
にある。 もう1つの目的は、共通ルーチンがセッションワーカ
プロセスメモリを共用する前記システムを提供すること
にある。 もう1つの目的は、同じプログラミング命命が全ての
こうした共通ルーチンによって共用される前記システム
を提供することにある。 本発明のもう1つの目的は、こうした共通ルーチン
が、実行中は強制排除されることがなく、それぞれ、ホ
ストコンピュータの資源又は操作にサービスを行わなけ
ればならなくなるまで、実行することが可能な前記シス
テムを提供することにある。 本発明のもう1つの目的は、高性能で、ブロッキング
が生じないようにデータを要求する並行要求を備えた多
くのアプリケーションに応用可能な前記システムを提供
することにある。
【課題を解決するための手段】
以上の目的及びその他の目的は、ホストコンピュータ
と複数のクライアントのコンピュータがローカルエリア
ネットワークによって接続されたシステムによって実現
する。ホストコンピュータにおける資源共用ソフトウェ
アは、監視プログラムプロセス(daemonプロセスとも呼
ばれる)、スプーラプロセス、及び、各クライアントの
コンピュータ毎に1つの、複数のセッションワーカプロ
セスから構成される。監視プログラムプロセスは、クラ
イアントのコンピュータから最初の呼出し要求を受信
し、セッションワーカプロセスを生成して、特定のクラ
イアントのコンピュータからの後続する全ての要求を処
理する。 クライアントのコンピュータからの各要求は、サービ
スメッセージブロック(SMB)要求と呼ばれ、各クライ
アントのコンピュータは、それぞれ別個になった要求に
対するセッションワーカからの応答を待たずに、いくつ
かのSMB要求を送信することができる。従って、各セッ
ションワーカは、同時にいくつかのクライアントのコン
ピュータのSMB要求を処理することができる。 各セッションワーカプロセスは、多重タスクオペレー
ティングシステムにおける各タスクと同様の、並行に働
く複数の共通ルーチンを生成する。セッションワーカプ
ロセスは、受信する各SMB要求毎に新しい共通ルーチン
を開始させる。共通ルーチンは、他のSMB要求の処理を
行う他の全ての共通ルーチンと並行して実行されるの
で、セッションワーカは、クライアントのコンピュータ
からの各要求に対し高性能な応答を示すことができる。 タスクと似てはいるが、共通ルーチンには、極めて重
大ないくつかの相違がある。共通ルーチンは、セッショ
ンワーカのスタックだけでなく、セッションワーカにお
ける他の全ての記憶域も共用する。共通ルーチンは、タ
イムスライスを施されないが、その代わり、そのタスク
を完了するまで、又は、利用できない資源に対するサー
ビスの要求によって阻止されるまで、実行される。完了
するか、あるいは阻止されると、共通ルーチンは、作業
を行う準備の整った次の共通ルーチンにプロセッサを引
き渡す。共通ルーチンは、他の共通ルーチンによる割り
込みを受けないので、資源について競合することはな
く、コードのクリティカルセクションは不要である。 各共通ルーチンにおけるソフトウェアは、複数レベル
に分割され、レベル0以外の全てのレベルは、高レベル
言語で書かれており、プロセッサのハードウェアとは独
立している。従って、システムを異なるプロセッサに移
行する必要があれば、共通ルーチンのソフトウェアのう
ち、レベル0のルーチンだけを移行すればよい。各共通
ルーチンのソフトウェアは再入可能であり、従って、い
くつかの共通ルーチンの処理を同時に行うには、メモリ
にソフトウェアのコピーの1つが納められているだけで
よい。 各セッションワーカプロセスは、1つのクライアント
のコンピュータ、及び、1つだけのクライアントのコン
ピュータに専用である。従って、セッションワーカプロ
セッサは、クライアントのコンピュータのファイル間に
ファイル保護を設ける必要はなく、こうしたファイル保
護については、基本的なオペレーティングシステムに頼
ることができる。
【実施例】
以下の説明は、本発明を実施する上で現在のところ最
良と考えられる態様に関するものである。この説明は、
限定の意味にとるべきではなく、単に、本発明の一般原
理を明らかにするためのものである。本発明の範囲は、
付属のクレームを基準にして決めるのが望ましい。 第1図は、ホスト資源サーバ、及び、複数のクライア
ントのコンピュータから成るローカルエリアネットワー
クシステムのブロック図である。ここで第1図を参照す
ると、ローカルエリアネットワーク104に接続されたホ
スト資源サーバコンピュータ102を有するローカルエリ
アネットワークシステム100が示されている。また、ロ
ーカルエリアネットワーク104には、複数のクライアン
トのコンピュータ106、108、及び110も接続されてい
る。ホスト資源サーバ102は、その資源をクライアント
のコンピュータ106、108、及び110と共用する。これら
の資源には、ディスクファイルプリンタ、及び、プロッ
タ等を含むことができる。ホスト資源サーバ102は、ネ
ットワークに対して資源を「提供」するように命じられ
る。 ホスト資源サーバ102とクライアントのコンピュータ1
06、108、及び110の間で送られるメッセージは、サーバ
メッセージブロック(SMB)と呼ばれるプロトコルを用
いて交換される。SMBプロトコルは、MS−DOS、OS/2、及
び、UNIXといったオペレーティングシステムがローカル
エリアネットワークを介して複数コンピュータ間で資源
を共用できるようにする標準プロトコルである。典型的
な環境の場合、OS/2オペレーティングシステムを実行す
るコンピュータは、ネットワークサーバとクライアント
のコンピュータの両方の働きをすることができる。しか
し、MS−DOSオペレーティングシステムを実行するコン
ピュータは、ネットワークサーバとネットワークコンシ
ューマのいずれかとして機能することができるが、通常
は、両方の働きは行えない。UNIXオペレーティングシス
テムを実行するコンピュータは、ホスト資源サーバとし
てしか働くことができない。 第2図は、第1図のホスト資源サーバ102として用い
るのに適したコンピュータシステムのブロック図であ
る。ここで第2図を参照すると、ホスト資源サーバコン
ピュータ102には、システムバス204を介してシステムの
他のコンポーネントと通信する処理素子202が含まれて
いる。キーボード206及びディスプレイ208は、システム
のオペレータとの通信に用いられる。該システムは、LA
Nインターフェイス212及びローカルエリアネットワーク
104を介して、クライアントのコンピュータ(第1図の1
06、108、及び110)と通信する。コンピュータシステム
102には、ローカルエリアネットワーク104を介して共用
されるファイルを納めたディスク214が含まれている。
システム102には、ローカルエリアネットワーク104を介
して共用可能なプリンタ216も含まれている。主メモリ2
10には、本発明のソフトウェアに含まれており、後述す
ることにする。他の装置は、システムバス204に取りつ
けることが可能であり、これらの装置は、ローカルエリ
アネットワーク104を介して共用することもできる。 第3図には、第2図の主メモリ210のブロック図が示
されており、資源サーバに関するさまざまなプロセスが
明らかにされている。ここで第3図を参照すると、通常
はUNIXオペレーティングシステムであるオペレーティン
グシステム302は、メモリ210に常駐している。daemonプ
ロセスとも呼ばれる監視プログラム304は、LANサーバソ
フトウェア306を介してクライアントのコンピュータの
1つ(第1図の106、108、又は110)から初期呼出し要
求を受信する。LANサーバソフトウェア306は、LANイン
ターフェイス212(第2図)と対話し、ローカルエリア
ネットワーク104(第2図)を介してメッセージの送受
信を行う。監視プログラムプロセス304で、クライアン
トコンピュータからの呼出し要求を受信すると、セッシ
ョンワーカプロセス310を生成して、クライアントのコ
ンピュータとの全ての対話を取り扱う。監視プログラム
プロセス304において、後続の呼び出し要求を受信する
と、各クライアントのコンピュータ毎に、別のセッショ
ンワーカプロセス312が生成される。セッションワーカ
プロセスは、資源サーバに接続された各クライアントの
コンピュータ毎に作成されるので、セッションワーカプ
ロセスとクライアントのコンピュータの間には1対1の
関係が存在する。 監視プログラムプロセス304及びセッションワーカプ
ロセスのそれぞれは、オペレーティングシステム302に
基づいたタスクとして実行され、従って、同時に実行さ
れる。 セッションワーカプロセスは、監視プログラムプロセ
ス304によってセットアップされるので、セッションワ
ーカプロセスは、複数の仮想回線308の1つを介してク
ライアントのコンピュータに接続される。これらの接続
については、ライン314及び316として図示されている。
一旦クライアントのコンピュータに接続されると、セッ
ションワーカプロセスは、監視プログラムプロセス304
とは独立して働き、仮想回線308を介して到着するクラ
イアントのコンピュータからの後続する全ての要求を処
理する。 セッションワーカプロセス間において、第3図には不
図示の接続が保持されている。この接続は、管理命令待
ち行列と呼ばれ、セッションワーカプロセスが、別のセ
ッションワーカプロセスによって、セッションワーカの
取りつけられているクライアントのコンピュータ以外の
ソースから到着する可能性のある要求が実施されるよう
にすることを可能ならしめる。これらの要求の1つは、
「便宜的ロック(opportunistic lock)」を解放するこ
とである。便宜的ロックは、クライアントのコンピュー
タがホストサーバのファイルにアクセスするだけで行わ
れる。クライアントのコンピュータは、排他的にアクセ
スするので、クライアントのコンピュータは、その排他
的利用のためにファイルバッファを保持することが可能
になる。これらのバッファの保存が便宜的ロックと呼ば
れる。第2のクライアントのコンピュータが、別のクラ
イアントのコンピュータによってロックされたファイル
にアクセスしようとする場合、監視プログラムプロセス
304によって、第1のクライアントのコンピュータにサ
ービスを行うセッションワーカプロセスにメッセージを
送り、バッファを解放させ、便宜的ロックを解除させな
ければならない。また、他の要求は、管理命令待ち行列
を介して送ることが可能である。 一旦確立すると、セッションワーカプロセスは、引き
続き、そのアドレス空間内で働く複数の共通ルーチンを
設定する。共通ルーチン、ゼロ(0)は、セッション、
ワーカ主プロセスループとして働き、待ち行列のサービ
スを行って、作業が到着するのを待つ。SMB要求が仮想
回線を介して到着すると、共通ルーチン0はSMB要求を
受信して、他の共通ルーチンの1つを開始させて、その
要求の処理を行う。他のコンピュータ資源にサービスを
行わなくても(即ち、阻止されないで)SMB要求を満た
すことができる場合、SMB応答の送信後、共通ルーチン
の処理を出て、共通ルーチン0に戻る。例えば、入力/
出力(I/O)操作といった要求をすぐに満たすことがで
きない場合、共通ルーチンの処理が阻止されて、制御が
共通ルーチン0にスイッチされ、次に、作業の実施準備
が整った他の共通ルーチンのスケジューリングが行われ
る。従って、共通ルーチン0は、セッションワーカの活
動のスケジューラとして働くことになる。 各セッションワーカプロセスの共通ルーチン1は、他
のセッションワーカプロセスからの全ての管理命令待ち
行列要求を処理する。共通ルーチン2及び上記は、クラ
イアントのコンピュータからの要求に処理を施す。 I/O操作の完了又はタイムアウトの完了といった、待
機事象が生じる毎に、阻止されている共通ルーチンがす
ぐにマーキングを施され、次の機会に制御が加えられ
る。共通ルーチンの阻止によって、セッションワーカプ
ロセスが阻止されない点と、セッションワーカプロセス
は、常に自由に別のSMB要求を受信し、付加共通ルーチ
ンを開始させるという点に留意のこと。未処理の作業を
全て完了して、所定の時間期間にわたって付加作業を受
信していないセッションワーカプロセスは、それ自体を
終了し、ホスト資源サーバコンピュータ内の記憶空間を
自由にすることができる。 第4図には、クライアントのコンピュータから呼び出
しを受ける監視プログラムプロセスのフローチャートが
示されている。ここで第4図を参照すると、ルーチンに
入った後、ブロック402においてLANサーバ(第3図)か
らのクライアント呼出し要求を待つ。クライアントの呼
出し要求を受信すると、ブロック404において第6図を
呼び出し、このクライアントからの今後の全SMB要求を
取り扱うセッションワーカプロセスを生成する。セッシ
ョンワーカプロセスの生成後、次に、ブロック406にお
いてセッションワーカプロセスの実行を開始する。セッ
ションワーカプロセスは、ホストオペレーティングシス
テムに基づく同時プロセスとして開始されたので、一旦
セッションワーカプロセスが開始すると、監視プログラ
ムの一部においてそれ以上のアクションは不要となる。
セッションワーカプロセスの開始後、ブロック408にお
いてクライアントの呼出し応答を戻し、クライアントの
コンピュータに対して、セッションワーカプロセスが開
始したことを伝える。次に、ブロック408から移行して
ブロック402に戻り、別のクライアントのコンピュータ
からのクライアント呼出しを待つ。 第5図は、セッションワーカプロセスを生成するプロ
セスのフローチャートである。ここで第5図を参照する
と、ルーチンに入った後、ブロック502に対して、通常
は、UNIXオペレーティグシステムであるホストオペレー
ティングシステムに従って、セッション制御ブロックが
割り当てられる。次に、ブロック504において、セッシ
ョンワーカプロセスが、監視プログラムと並行し、独立
したタスクとして働くプロセスとして開始される。次
に、ブロック506において、呼出しを要求した本来のク
ライアントのコンピュータに対してメッセージの送受信
を行う仮想回線に、セッションワーカプロセスが接続さ
れる。セッションワーカプロセスを仮想回線に接続する
と、ブロック506から第4図に戻る。 第6図には、セッションワーカプロセスのフローチャ
ートが示されている。ここで第6図を参照すると、ルー
チンに入った後、ブロック602において、第7図を呼び
出し、セッションワーカプロセス内で用いられる共通ル
ーチンの生成及び初期設定が行われる。共通ルーチンの
初期設定がすむと、セッションワーカプログラムが、共
通ルーチン0で実行される。共通ルーチン0の機能につ
いては、ダッシュライン604によって概要が示されてい
る。共通ルーチン0に入ると、ブロック606において、
クライアントのコンピュータからSMB要求を受信してい
るか否かが確かめられる。こうした要求を受信している
場合、ブロック606からブロック608へ移行し、第11図を
呼び出して、その要求の処理を行う共通ルーチンをセッ
トアップする。共通ルーチンのセットアップがすむと、
或いは、SMBの要求に応じられない場合、制御はブロッ
ク610に移行し、既存の共通ルーチンで作業の実施準備
が整っているものがあるか否かが確かめられる。共通ル
ーチンの準備が整っていれば、制御はブロック612に移
行し、第12図を呼び出して、作業の処理準備が整った共
通ルーチンの1つを実行する。作業の処理準備が整った
共通ルーチンがなければ、制御はブロック614に移行
し、チェックを行って、事象に完了したものがあるか否
かを確かめる。1つ以上の事象が完了している場合、制
御はブロック616に移行し、第15図を呼び出して、事象
の完了した共通ルーチンをアンペンドする。これらの共
通ルーチンのアンペンドがすむと、ブロック616から移
行して、ブロック606に戻り、主ループを完了する。ブ
ロック606、ブロック610、ブロック614、及び、ブロッ
ク616から成る処理ループは、SMB要求を受信するか、あ
るいは、事象が完了したために、共通ルーチンの実行準
備が整うまで、操作が継続される。 一旦共通ルーチンの準備が整った状態になると、即
ち、実行できるようになると、ブロック612は、セッシ
ョンワーカプロセスの状況をスイッチして、準備の整っ
た共通ルーチンを実行する。ブロック608で初めて共通
ルーチンに取りかかった時、その入口点は、ブロック61
8になるようにセットアップされた。従って、最初にSMB
要求を受信すると、ブロック608において共通ルーチン
をセットアップして、該ルーチンを処理し、ブロック61
2からブロック618に移行して、SMB要求の処理を開始す
る。ブロック618では、仮想回線から要求を受け取り、
ブロック620において、その作業の処理を始める。要求
された作業の処理中に、例えば、入力/出力要求の完了
にサービスを行うといった、何等かの事象に対してサー
ビスを行う必要が生じる場合、ブロック622からブロッ
ク624へ移行して、第14図を呼び出し、共通ルーチンを
保留状態にする。共通ルーチンを保留状態にした後、ブ
ロック624から移行してブロック606、即ち、主処理ルー
プに戻る。保留操作が完了し、ブロック616において、
共通ルーチンがアンペンドされると、ブロック612から
移行して、ブロック626の共通ルーチンに戻る。ブロッ
ク626では、共通ルーチンのペンディングが要求されな
かった場合、ブロック622から制御を受け取る。制御を
受け取ると、ブロック626においてSMB応答を生成し、も
とのSMB要求を行ったクライアントのコンピュータに送
り返す。応答を送り出すと、ブロック626からブロック6
28に移行し、第16図を呼び出して、共通ルーチンを出
る。共通ルーチンで、もとのSMB要求に要求されていた
全ての作業が完了したので、第16図では、共通ルーチン
が非活動化され、自由な状態に戻される。次にブロック
628から移行して、主処理ループ606に戻る。 第7図は、セッションワーカプロセス内において共通
ルーチンの初期設定を行うフローチャートである。ここ
で第7図を参照すると、ルーチンに入った後、ブロック
702において、変数NUMCRの値で示される複数の共通ルー
チンに対するスタック空間の割り当てが行われる。この
スタック空間は、セッションワーカプロセスの局部変数
空間内におけるスタックのアレイとして割り当てられ
る。次に、ブロック704において、第6図に関して上述
の主処理ループである、共通ルーチン0に対する共通ル
ーチン状態ベクトル(CSV)の初期設定が行われる。次
に、ブロック706において、カウンタが1にセットさ
れ、ブロック708において、残りの各共通ルーチンに対
しCSVの初期設定プロセスが開始される。ブロック708で
は、共通ルーチンNの状態変数が初期設定され、ブロッ
ク710では、共通ルーチンNのスタックポインタが初期
設定され、ブロック712では、共通ルーチンNのスタッ
クタツーがセットされる。 スタックタツーは、共通ルーチンのスタック空間にお
ける上端と底端に納められる値である。タツーとして選
択される値は、共通ルーチンの通常の操作では、生じそ
うにない値である。タツーは、共通ルーチンに関するス
タック空間の両端に配置されるので、また、タツーの値
は、共通ルーチンの通常の操作時には生じそうにもない
ので、タツー値を定期的にチェックすることによって、
共通ルーチンがそのスタック空間を超えたか否かを確か
めることができる。 タツーのセッティングがすむと、ブロック712からブ
ロック714に移行し、カウンタが1だけインクリメント
する。次に、ブロック716において、カウンタ値が共通
ルーチンの初期設定された最大数になったか、或いは、
この値が共通ルーチンの最大数にまで達していないか確
かめられて、ブロック716から移行してブロック708に戻
り、別の共通ルーチンの初期設定を行う。全ての共通ル
ーチンについて初期設定がすむと、ブロック716から呼
出しルーチンに戻る。 第8図には、共通ルーチンの状態ベクトル(CSV)に
関するメモリレイアイトが示されている。ここで第8図
を参照すると、CSV内の最初の変数は、状態変数802であ
る。状態変数802は、CSV、従って、対応する共通ルーチ
ンが、自由か、実行中か、待機中か、或いは、実行準備
が整っているかを表示する。新しいSMB要求の処理に利
用できる場合、共通ルーチンは自由である。実行中は、
共通ルーチンがプロセッサを制御していることを表すも
のである。待機中は、共通ルーチンがある事象について
保留されており、その事象がまだ完了していないことを
表すものである。準備完了は、ある事象が完了し、共通
ルーチンの処理再開準備が整っていることを表すもので
ある。スタック開始変数806は、共通ルーチンで用いら
れているスタックの開始アドレスである。スタック終了
変数808は、共通ルーチンで用いられているスタックの
終了アドレスである。CRID変数810は、共通ルーチンと
特定のSMB要求を連係させるために用いられる数であ
る。事象変数812は、共通ルーチンが保留になった後、
共通ルーチンが待っている事象のタイプを示すのに用い
られる。事象が完了して、共通ルーチンがアンペンドさ
れると、事象の完了理由がメッセージ変数814に納めら
れる。 第9図は、セッションワーカプロセスに関するスタッ
ク領域の図である。第7図に関連して既述のように、共
通ルーチンの初期設定が行われると、セッションワーカ
プロセスのスタック空間が再分され、共通ルーチン0を
含む各共通ルーチンに割り当てられる。ここで、第9図
を参照すると、共通ルーチン1に関するスタックが902
で示される、共通ルーチン2に関するスタックが904で
示され、共通ルーチンNに関するスタックが906で示さ
れている。共通ルーチン0は、セッションワーカプロセ
スの主プロセスループであるため、また、それはセッシ
ョンワーカプロセスに入る際に入ったため、共通ルーチ
ン0に関するスタックは、参照番号908で示される。他
の共通ルーチンに関するスタック空間の下方に配置され
る。1対のタツー910及び912は、それぞれ、共通ルーチ
ン1のスタック空間902の上部と底部に配置される。同
様のタツーが、共通ルーチン0を除いて、他のスタック
空間に配置される。 第9図には、スタックが高メモリから低メモリへ成長
できるようにするプロセッサに存在するスタック空間が
示されている。スタックが低メモリから高メモリに成長
するプロセッサの場合は、第9図の図は逆になる。第9
図には、共通ルーチンに関するスタックが全て、セッシ
ョンワーカプロセスの記憶空間内に存在することが示さ
れている。従って、共通ルーチンは、全て、セッション
ワーカプロセスのメモリを共用しており、共通ルーチン
のメモリを管理するのに、オペレーティングシステムの
要求が不要又は用いられないということになる。 第10図は、共通ルーチンの様々な状態を示す状態図で
ある。ここで第10図を参照すると、共通ルーチンは、初
期設定がすむと、自由状態1002になる。共通ルーチン0
がSMB要求を受信すると、第11図を呼び出して、共通ル
ーチンに着手する。共通ルーチンに取り掛かるプロセス
において、着手する共通ルーチンは、自由状態1002から
準備完了状態1008に変わる。共通ルーチン0が実行する
共通ルーチンのスケジューリングを行う時、共通ルーチ
ン0は、第12図のRUNCR機能を呼び出し、次に、第13図
のスイッチ機能を呼び出して、共通ルーチンのスケジュ
ーリングが施された状態を準備完了状態1008から実行中
状態1004に変更する。共通ルーチンは、所望の限り実行
中状態1004にとどまる。共通ルーチンが割り当てられた
作業を完了すると、第16図であるEXITCR機能を呼び出し
て実行中状態1004から自由状態1002に移行する。共通ル
ーチンが何等かの操作を待たなければならない場合、第
14図の保留機能を呼び出して、実行中状態1004から待機
中状態1006に移行する。ある事象が完了すると、共通ル
ーチン0の主プロセスループがその事象の完了を検出
し、第15図のアンペンド機能を呼び出して、保留の共通
ルーチンを待機中状態1006から準備完了状態1008に移行
させる。従って、共通ルーチンの典型的なライフにおい
て、共通ルーチンは、自由状態1002から準備完了状態10
08に移行し、次に、実行中状態1004に移行し、次に、保
留にしなければならない各操作毎に待機中状態1006に移
行し、次に、準備完了状態1008に移行し、実行中状態10
04に戻り、最後に、その作業を完了してから、自由状態
1002に戻る。 第11図には、SMB要求の処理を行うため、共通ルーチ
ンの準備を行うLAUNCHCR機能のフローチャートが示され
ている。ここで、第11図を参照すると、ルーチンに入っ
た後、ブロック1102において、CSVを探索して、自由
な、従って、SMBの要求を処理するのに利用できる共通
ルーチンを見つける。CSVを利用できなければ、ブロッ
ク1104からブロック1106に移行し、共通ルーチンを利用
できない旨のメッセージを表示して、呼出しルーチンに
戻る。共通ルーチンが自由であれば、ブロック1104から
ブロック1108へ移行し、自由なCSVの状態を準備完了状
態にセットして、共通ルーチンの実行準備が整ったこと
を示す。ブロック1110では、新しい共通ルーチンに関す
るスタックの初期設定を行って、この新しい共通ルーチ
ンに制御をスイッチする準備を行う。次に、機能はその
呼び出しルーチンに戻る。 第12図は、実行準備の整った次に利用できる共通ルー
チンを確かめ、制御をその共通ルーチンに移行するRUNC
R機能のフローチャートである。ここで、第12図を参照
すると、ルーチンに入った後、ブロック1202において、
全ての共通ルーチンについて全てのCSVを探索し、共通
ルーチンの実行準備が整ったことを表す状態を備えたも
のを見つける。実行準備の整った共通ルーチンがなけれ
ば、ブロック1204から直接呼び出しルーチンに戻る。少
なくとも1つでも実行準備の整った共通ルーチンがあれ
ば、ブロック1204からブロック1206に移行し、最初の共
通ルーチンのCSVが実行されるNEWCSVになる。次に、ブ
ロック1206からブロック1208に移行し、第13図のスイッ
チ機能を呼び出して、NEWCSVにされたばかりのCSVに制
御を移行する。スイッチサブルーチンが制御を新しい共
通ルーチンに移すので、エラーがあると、第13図から第
12図に戻ることになるだけである。 第13図は、制御が1つの共通ルーチンからもう1つの
共通ルーチンに移行するスイッチ機能のフローチャート
である。ここで第13図を参照すると、ルーチンに入った
後、ブロック1302において、現在実行中の共通ルーチン
のスタックのタツーがチェックされる。現在スタックの
タツーが変更されている場合、ブロック1304から呼出し
ルーチンに戻り、セッションワーカプロセスが取り消さ
れる。スタックタツーの変更が行われていなければ、ブ
ロック1304からブロック1306に移行し、現在の共通ルー
チンの状況を現在CSVに保管する。次に、ブロック1308
において、新しいCSVになる、即ち、共通ルーチンのCSV
が現在CSVに移行する。次に、ブロック1310において、
新しい共通ルーチンのスタックに関するタツーのチェッ
クが行われ、これらのタツーが有効でない場合、ブロッ
ク1312から呼び出しルーチンに戻り、セッションワーカ
プロセスが取り消される。新しい共通ルーチンに関する
スタックのタツーが変更されない場合、ブロック1312か
らブロック1314に移行し、現在CSVから状況がロードさ
れるが、これによって、状況の一部が、プロセッサのプ
ログラムカウンタであるため、直接共通ルーチンに移行
することになる。 共通ルーチンに着手するプロセスにおいて、着手され
る共通ルーチンのスタックは、着手される共通ルーチン
が、着手される共通ルーチンの入口点からスイッチ機能
を呼び出したかのように見えるようにセットアップされ
る。従って、ルーチンの入口点に移行するためには、ス
イッチは、プロセッサが着手される共通ルーチンのスタ
ックを指示して、戻るようにするだけですむ。一旦実行
すると、共通ルーチンは、保留機能を呼び出して保留に
なり、スタックが再びセットアップされて、アンペンド
操作の後、スイッチから保留の呼び出しに続く位置へ戻
ることが可能になる。システムは、共通ルーチンがEXIT
CRを呼び出して終了し、その後、共通ルーチンにもはや
制御が与えられなくなるまで、こうして続行される。 第14図には、何等かの事象が完了する間、共通ルーチ
ンを待機状態にする保留機能のフローチャートが示され
ている。ここで第14図を参照すると、ルーチンに入った
後、ブロック1402において、現在CSVの状態が待機中に
セットされる。次に、ブロック1404において、現在CSV
内の事象変数が、保留になっている事象にセットされ
る。次に、ブロック1406において、第13図を呼び出し、
状態をスイッチして、共通ルーチン0及び主処理ループ
に戻る。 第15図は、事象の完了後に、共通ルーチンを準備完了
状態に戻すアンペンド機能のフローチャートである。こ
こで第15図を参照すると、ルーチンに入った後、ブロッ
ク1502において、完了したばかりの事象と整合する事象
を備えた共通ルーチンのCSVを見つけ出す。該CSVを見つ
けた後、ブロック1504において、該CSVの状態が実行可
能な準備の整った状態にセットされ、次に、呼出しルー
チンに戻る。 第16図は、共通ルーチンがSMB要求の処理を完了する
と用いられるEXITCR機能のフローチャートである。ここ
で、第16図を参照すると、ルーチンに入った後、ブロッ
ク1602において、現在CSVの状態が、このCSVに対応する
共通ルーチンが新しいSMB要求の処理に自由に用いられ
ることを表す自由にセットされる。次に、ブロック1604
において、第13図を呼び出して、状況が共通ルーチン0
及び主処理ループにスイッチされる。 第17図は、データを読み取るSMB要求の処理例のフロ
ーチャートである。第17図には、フローチャートのステ
ップが2つのコラム、即ち、見出しが共通ルーチン0と
表記されたコラムと、見出しが共通ルーチンXと表記さ
れたコラムによって示されている。コラム「共通ルーチ
ン0」において生じる処理ステップは、他の共通ルーチ
ンをセットアップし、そのスケジューリングを行うプロ
セスであり、一方、コラム「共通ルーチンX」において
生じる処理ステップは、クライアントのコンピュータの
ために読み取り操作の処理を行うのに必要な実際のステ
ップである。ここで第17図を参照すると、ルーチンに入
った後、ブロック1702において、クライアントのコンピ
ュータから読取り操作を実施するSMB要求を受信する。
次に、ブロック1704では、第11図を呼び出し、要求を処
理する共通ルーチンが準備される。次にブロック1706に
おいて、第12図を呼び出し、要求を処理するために準備
された共通ルーチンが実行される。この時点で、第12図
が第13図を呼び出し、セッションワーカプロセスの状況
がスイッチされて、制御がSMB要求を処理するために準
備された共通ルーチンである共通ルーチン「X」に移行
する。従って、制御は、共通ルーチンXに移行し、ブロ
ック1708において、SMB要求に指定の読取り位置が決ま
る。次に、ブロック1710において、読取り操作が開始さ
れ、読取り操作は、データを得て、メモリへ送り返すの
にかなりの量の時間を必要とするので、ブロック1712に
おいて、データがメモリへ転送されている間、共通ルー
チンXが保留される。第14図の保留操作が、第13図のス
イッチ機能を呼び出し、セッションワーカプロセスの状
況は、共通ルーチンXが保留になったので、スイッチさ
れて、共通ルーチン0に戻る。従って、制御は、共通ル
ーチン0がブロック1714から再開され、次に、作業を実
施できるように準備の整った他の共通ルーチンが実行さ
れる。他の共通ルーチンが完了すると、制御は、ブロッ
ク1716に移行し、読取り操作の完了まで、待つことにな
る。読取り操作が完了すると、事象が完了したので、ブ
ロック1718において、アンペンドを呼び出し、共通ルー
チンXが準備完了状態に戻される。次に、ブロック1720
において、第13図のスイッチ機能を呼び出し、セッショ
ンワーカプロセスの内容が共通ルーチンXにスイッチさ
れる。従って、制御は、共通ルーチンXがブロック1722
から再開され、SMB要求に応答して、読み取ったデータ
を利用し、メッセージを作成する。次に、ブロック1724
において、SMB応答がクライアントのコンピュータに送
り返される。応答を送り返した後、制御はブロック1726
に移行し、第16図のEXITCR機能を呼び出して、共通ルー
チンXによる処理を終了し、共通ルーチンXを自由状態
に戻し、セッションワーカプロセスの状況を共通ルーチ
ン0にスイッチする。従って、制御は、共通ルーチン0
がブロック1702から再開され、クライアントのコンピュ
ータからの次のSMB要求に処理が施される。
【発明の効果】
以上から明らかなように、当該技術においては、ロー
カルエリアネットワークを介して多数のクライアントの
コンピュータに対する高性能な応答を行う、改良された
ホスト資源サーバが必要とされている。また、当該技術
においては、各クライアントのコンピュータからの複数
の同時要求を処理できるシステムが必要とされている。
また、当該技術においては、ホストコンピュータのオペ
レーティングシステムに修正を加えなくても実行される
システムが必要とされている。更に、いくつかのタイプ
のホストコンピュータプロセッサ間における移植性に優
れたシステムが必要とされている。更に、いくつかのコ
ンピュータプログラミング言語間における移植性に優れ
たシステムが必要とされている。更に、ホストコンピュ
ータシステムにおける極めて多くのファイルにアクセス
可能なシステムが必要とされている。 以上から明らかなように、本発明によれば、ホストコ
ンピュータと複数のクライアントのコンピュータの間に
おいてファイルデータを共用するファイル共用システム
が提供される。 さらに本発明によれば、こうしたシステムに高性能な
応答性を与えることにある。 さらに本発明によれば、ホストコンピュータのオペレ
ーティングシステムに修正を加えずに、こうしたシステ
ムが提供される。 さらに本発明によれば、いくつかのタイプのホストコ
ンピュータプロセッサ間における移植性に優れた前記シ
ステムが提供される。 さらに本発明によれば、いくつかのコンピュータプロ
グラミング言語間における移植性に優れた前記システム
が提供される。 さらに本発明によれば、ソフトウェアのクリティカル
セクションなしで実現する前記システムが提供される。 さらに本発明によれば、多重レベルの処理ルーチンを
利用したシステムが提供される。 さらに本発明によれば、クライアントのコンピュータ
からの全ての初期呼び出しを処理する監視プロセスを有
する前記システムが提供される。 さらに本発明によれば、監視プロセスが各クライアン
トのコンピュータ毎に独立したセッションワーカプロセ
スを生成する前記システムが提供される。 さらに本発明によれば、こうした各セッションワーカ
プロセスが、各クライアントのコンピュータ要求毎に独
立した共通ルーチンを生成する前記システムが提供され
る。 さらに本発明によれば、共通ルーチンがセッションワ
ーカプロセスメモリを共用する前記システムが提供され
る。 さらに本発明によれば、同じプログラミング命命が全
てのこうした共通ルーチンによって共用される前記シス
テムが提供される。 さらに本発明によれば、こうした共通ルーチンが、実
行中は強制排除されることがなく、それぞれ、ホストコ
ンピュータの資源又は操作にサービスを行わなければな
らなくなるまで、実行することが可能な前記システムが
提供される。 さらに本発明によれば、高性能で、ブロッキングが生
じないようにデータを要求する並行要求を備えた多くの
アプリケーションに応用可能な前記システムが提供され
る。 本発明の現在のところ望ましい実施例について説明し
てきたが、今や明らかなように、本発明の目的は完全に
達成されており、当該技術の熟練者には分かるように、
構成及び回路要素における多くの変更、及び本発明の多
種多様な実施例及び用途が、本発明の精神及び範囲を逸
脱することなく可能である。本書の開示及び説明は例示
を目的としたものであり、本発明を限定する意図はな
く、範囲は下記クレームによって規定する方が望まし
い。
【図面の簡単な説明】
【図1】 第1図は、ホストファイルサーバと幾つかのクライアン
トのコンピュータを含む本発明のローカルエリアネット
ワークのブロック図である。
【図2】 第2図は、本発明のローカルエリアネットワーク内のホ
ストコンピュータとして用いるに好適な、コンピュータ
システムのブロック図である。
【図3】 第3図は、本発明の資源共用システムのプロセスを示す
ための、第2図のコンピュータの主メモリのブロック図
である。
【図4】 第4図は、本発明の監視プログラムのプロセスを示す流
れ図である。
【図5】 第5図は、セッションワーカを生成するためのプロセス
の流れ図である。
【図6】 第6図は、本発明のセッションワーカ処理の流れ図であ
る。
【図7】 第7図は、セッションワーカ内の複数の共通ルーチンを
生成するプロセスの流れ図である。
【図8】 第8図は、セッションワーカ処理内の共通ルーチンサー
ビスベクトル(CSV)のブロック図である。
【図9】 第9図は、セッションワーカ処理内のスタック機構を示
す図である。
【図10】 第10図は、共通ルーチンの状態を示す状態図である。
【図11】 第11図は、クライアントのコンピュータからのSMB要求
を処理するための共通ルーチンを準備するLAUNCHCR機能
の流れ図である。
【図12】 第12図は、共通ルーチンを実行状態に置くRUNCR機能の
流れ図である。
【図13】 第13図は、活性共通ルーチンをスイッチするためのSWIT
CH機能の流れ図である。
【図14】 第14図は、共通ルーチンを保留にするプロセスの流れ図
である。
【図15】 第15図は、共通ルーチンをアンペンドにするプロセスの
流れ図である。
【図16】 第16図は、要求を実行しそれを不活性化する共通ルーチ
ンのEXITCR機能の流れ図である。
【図17】 第17図は、SMB読みだし要求を処理する共通ルーチンの
例を示す流れ図である。
【符号の説明】
100……LAN 102……ホスト資源サーバ、 104……LAN、 106,108,110……クライアントのコンピュータ、 202……処理素子、 204……システムバス、 206……キーボード、 208……ディスプレイ、 212……LANインタフェース、 214……ディスク、 216……プリンタ、 210……主メモリ、 302……OS、 304……監視プログラム、 306……LANサーバ、 308……仮想回線、 310,312……セッションワーカ、 314,136……ライン、
フロントページの続き (72)発明者 ジョージ・エイチ・ロバート アメリカ合衆国コロラド州80525フォー ト・コリンズ,サウス・リーメイ・ナン バー・419・4470 (72)発明者 ジェイムズ・アール・コンラッド アメリカ合衆国アイダホ州83703ボイス, ノース・ウォーターフロント・ウェイ・ 4773 (56)参考文献 Howard,J.H.,et a l,Scale and Perfor mance in a Distrib uted File System,A CM Trans on Comput er Systems,Vol.6,N o.1,1988年2月,P51−81 Spector,A.Z.,他,広域 ファイルシステム Andrew Fi le System,UNIX MAG AZINE,株式会社アスキ1989年8月 1日,第4巻,第8号,p.54−65 下山智明,Sun Lightwei ght Process プログラミン グ(上),UNIX MAGAZIN E,株式会社アスキー,1988年7月1 日,第3巻,第7号,p.90−100 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 13/00 G06F 15/16

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】ネットワーク上の資源を共有するための資
    源サーバシステムにおいて、 共用すべき前記資源を含み、前記ネットワークに接続さ
    れるホスト処理手段と、 各々が前記ネットワークに接続される複数のクライアン
    トコンピュータと、 前記処理手段により前記資源にアクセスするために、各
    々が前記ホスト処理手段内に配置される複数のセッショ
    ンワーカ手段であって、各セッションワーカ手段の実行
    が、他の全てのセッションワーカタスクと同時に実行す
    るために、前記ホスト処理手段内のオペレーティングシ
    ステムによりスケジューリングされる、複数のセッショ
    ンワーカ手段と、 前記ネットワークを介して複数の呼び出しを受け取るた
    めに、前記ホスト処理手段内に配置される監視手段であ
    って、前記複数のクライアントコンピュータの各々に関
    する第1の呼び出しの受信に基づき、前記複数のセッシ
    ョンワーカ手段のうちの一つを開始し、また、後続する
    全ての呼び出しを、1つのクライアントコンピュータか
    ら、開始された前記複数のセッションワーカ手段のうち
    の前記一つへと向け、前記クライアントコンピュータか
    らの呼び出しを処理する監視手段と、 1つのクライアントコンピュータから受信した呼び出し
    を同時処理するために、前記複数のセッションワーカ手
    段の各々内に配置される複数のコルーチン手段と、 該コルーチン手段の同時実行をスケジューリングするた
    めの複数のスケジューリング手段であって、該スケジュ
    ーリング手段のうちの一つは、前記セッションワーカ手
    段の各々内に配置される、複数のスケジューリング手段
    と、 からなる資源サーバシステム。
  2. 【請求項2】前記複数のスケジューリング手段の各々は
    更に、 1つのコルーチンが、1つの事象が完了するのを待たね
    ばならない場合に、該コルーチンを保留にするための手
    段と、 前記事象が完了した場合に、前記コルーチンの保留を解
    除するための手段と、 前記保留にするための手段が、第1のコルーチンにより
    動作される場合に、該第1のコルーチンを中断処理し
    て、第2のコルーチンの処理を開始するための手段であ
    って、それにより、前記第1のコルーチンの動作が延期
    されて、前記第2のコルーチンの動作が開始される手段
    と、 からなる、請求項1に記載の資源サーバシステム。
  3. 【請求項3】前記セッションワーカ手段に含まれるスタ
    ックを、複数のスタック空間に分割するための手段であ
    って、前記複数のコルーチンの各々に対して1つのスタ
    ック空間が割り当てられるようにする手段をさらに含
    む、請求項1に記載の資源サーバシステム。
  4. 【請求項4】前記複数のスタック空間を超えた場合を判
    断するための手段から更になる、請求項3に記載の資源
    サーバシステム。
  5. 【請求項5】前記判断するための手段は、 1つのスタック空間内に1つのタツーを配置するための
    手段と、 前記スタック空間を用いる前記コルーチンが、実行に際
    しスケジューリングされる度に、前記タツーをチェック
    するための手段と、 前記タツーが変更される場合はいつも前記セッションワ
    ーカを取り消すための手段と、 からなる、請求項4に記載の資源サーバシステム。
  6. 【請求項6】前記セッションワーカ手段は更に、 前記セッションワーカが開始される場合に、前記複数の
    コルーチンを生成するための手段と、 前記セッションワーカが開始される場合に、前記複数の
    スタック空間を生成するための手段と、 前記クライアントコンピュータからの資源アクセス要求
    の受信に基づき、前記複数のコルーチンのうちの一つを
    開始するための手段と、 からなる、請求項3に記載の資源サーバシステム。
  7. 【請求項7】ローカルエリアネットワーク内の複数のク
    ライアントコンピュータの各々からの複数の同時資源ア
    クセス要求を、ホストコンピュータにより処理する方法
    において、 (a)前記複数のクライアントコンピュータの各々と前
    記ホストコンピュータの間で接続を確立し、該接続の各
    々は、前記ホストコンピュータ内の監視ソフトウェアに
    より確立される、ステップ(a)であって、 (a1)前記ホストコンピュータ内で複数の別個のセッシ
    ョンワーカタスクを生成し、前記複数の別個のセッショ
    ンワーカタスクの一つは、前記複数のクライアントコン
    ピュータの各々からの前記同時資源アクセス要求を処理
    して、1つのスタックを前記複数の別個のセッションワ
    ーカタスクの各々に割り当てるために確立され、前記複
    数のセッションワーカタクスの各々は、前記ホストコン
    ピュータ内のオペレーティングシステムによりスケジュ
    ーリングされて、前記複数のセッションワーカタスクの
    うちの他の全てと同時に動作する、ステップと、 (a2)前記複数の別個のセッションワーカタスクの各々
    内で、複数のコルーチンタスクを生成するステップと、 (a3)1つのセッションワーカタスクが、対応する1つ
    のクライアントコンピュータからの資源アクセス要求を
    処理するように、前記複数の別個のセッションワーカタ
    スクの各々を、前記複数のクライアントコンピュータの
    うちの対応する各クライアントコンピュータに接続する
    ステップと、 を含む接続を確立するステップ(a)と、 (b)複数のコルーチンが内部で生成される1つのセッ
    ションワーカタスク内で、前記複数の同時資源アクセス
    要求を同時に処理するステップ(b)であって、 (b1)前記セッションワーカに割り当てられた前記スタ
    ックを、複数のスタック領域のパーティションに分割す
    るステップと、 (b2)前記セッションワーカタスク内で生成された前記
    複数のコルーチンの各々に、前記複数のスタック領域の
    1つを割り当て、前記複数のコルーチンの各々に対して
    スタック空間を設け、資源アクセス要求を処理する際に
    用いるための1つの記憶領域を設けるステップと、 (b3)要求が有効である場合、 (b3a)前記ローカルエリアネットワークから前記要求
    を検索するステップと、 (b3b)前記検索された要求を処理するために、前記セ
    ッションワーカ内で、前記複数のコルーチンのうちの1
    つの自由なコルーチンを準備して、該自由なコルーチン
    に前記要求を供給するステップと、 を含む前記要求を受信するステップと、 (b4)前記複数のコルーチンのうちのいずれかの準備が
    整い、且ついずれも保留状態にない場合、1つの実行コ
    ルーチンとなる前記1つのコルーチンを実行するステッ
    プと、 (b5)前記実行コルーチンが、1つの事象が完了するの
    を待たねばならないと判断した場合、前記実行コルーチ
    ンを保留するステップと、 (b6)1つの事象が完了した場合、該事象に関して保留
    状態にある前記複数のコルーチンのいずれかの保留を解
    除するステップと、 (b7)1つの要求の処理を完了した前記複数のコルーチ
    ンのいずれかを自由にするステップと、 (b8)ステップ(b3)を継続するステップと、 を含む、同時資源アクセス要求を同時に処理するステッ
    プ(b)と、 からなる方法。
  8. 【請求項8】前記ステップ(b4)の前記コルーチンを実
    行するステップは、 任意の以前の実行コルーチンのコンテキストを格納する
    ステップと、 前記準備が整い且つ保留状態にないコルーチンのコンテ
    キストをロードするステップと、 前記準備が整い且つ保留状態にないコルーチンに、プロ
    セッサの制御を移すステップと、 を含む、請求項7に記載の方法。
  9. 【請求項9】前記ステップ(b2)は更に、前記コルーチ
    ンの各々に割り当てられた各スタック領域内に、1つの
    スタックタツーをインストールするステップを含む、請
    求項7に記載の方法。
  10. 【請求項10】前記ステップ(b5)は更に、前記タツー
    を調べて、前記タツーが変更されている場合、前記セッ
    ションワーカを取り消すステップを含む、請求項9に記
    載の方法。
JP29513990A 1989-10-31 1990-10-31 共通ルーチンを用いた移植性の資源共用ファイルサーバ Expired - Fee Related JP3478538B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42968189A 1989-10-31 1989-10-31
US429681 1989-10-31

Publications (2)

Publication Number Publication Date
JPH03147151A JPH03147151A (ja) 1991-06-24
JP3478538B2 true JP3478538B2 (ja) 2003-12-15

Family

ID=23704282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29513990A Expired - Fee Related JP3478538B2 (ja) 1989-10-31 1990-10-31 共通ルーチンを用いた移植性の資源共用ファイルサーバ

Country Status (4)

Country Link
US (1) US5276879A (ja)
EP (1) EP0426323B1 (ja)
JP (1) JP3478538B2 (ja)
DE (1) DE69024753T2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268661A (ja) * 1991-02-22 1992-09-24 Nec Corp ホストコンピュータ
US5317739A (en) * 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5586322A (en) * 1992-06-11 1996-12-17 Beck; Robert E. Workgroup organized network manager with workstation comparison system
US5440739A (en) * 1992-06-11 1995-08-08 Beck Systems, Inc. Method of maintaining updated set-up configurations in workgroups on a network
ATE166984T1 (de) * 1992-10-12 1998-06-15 Leunig Gmbh Einrichtung für die wahlweise datenübertragung und dateiübertragung
JP3408850B2 (ja) 1992-12-09 2003-05-19 三菱電機株式会社 クライアント・サーバシステムおよびその制御方法、並びにクライアント機装置
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5680548A (en) * 1994-12-02 1997-10-21 Xcellenet, Inc. Systems and methods for work assignment and distribution from a server to remote/mobile nodes
US5682478A (en) * 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US5668958A (en) * 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US5745679A (en) * 1996-03-06 1998-04-28 Micron Technology, Inc. Method and device for file transfer by cascade release
US6003068A (en) * 1997-02-14 1999-12-14 Electronic Data Systems Corporation Method and apparatus for portably providing shared removable resources to a plurality of computing devices
WO1998043391A1 (fr) * 1997-03-21 1998-10-01 Hitachi, Ltd. Dispositif electronique, procede d'utilisation et systeme
US6691118B1 (en) * 1997-10-31 2004-02-10 Oracle International Corporation Context management system for modular software architecture
US6623527B1 (en) * 1997-11-19 2003-09-23 International Business Machines Corporation Method for providing a document with a button for a network service
US6615091B1 (en) * 1998-06-26 2003-09-02 Eveready Battery Company, Inc. Control system and method therefor
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
ES2161115B1 (es) * 1998-10-20 2003-02-16 Univ De Alicante Uni D Alacant Sistema de ejecucion de programas sobre recursos remotos.
US6636891B1 (en) 1998-11-06 2003-10-21 Seiko Epson Corporation Methods and apparatus for controlling an input or output device over the internet
US6988123B2 (en) * 1998-11-06 2006-01-17 Seiko Epson Corporation Methods and apparatus for remote execution of an application over the internet
US6609159B1 (en) 1998-11-30 2003-08-19 Semyon Dukach Methods, systems, and machine readable programming for interposing front end servers between servers and clients
US6532448B1 (en) 1999-11-19 2003-03-11 Insightful Corporation Contest server
US7743022B2 (en) 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
US7784057B2 (en) * 2003-08-27 2010-08-24 Intel Corporation Single-stack model for high performance parallelism
JP4507917B2 (ja) * 2005-02-28 2010-07-21 日本電気株式会社 セッション処理システム、セッション処理方法、及びプログラム
US7784051B2 (en) * 2005-11-18 2010-08-24 Sap Ag Cooperative scheduling using coroutines and threads
JP4598022B2 (ja) * 2007-05-31 2010-12-15 株式会社東芝 情報処理装置
US8589925B2 (en) * 2007-10-25 2013-11-19 Microsoft Corporation Techniques for switching threads within routines
US9219733B2 (en) * 2008-06-30 2015-12-22 Microsoft Technology Licensing, Llc Software-based aliasing for accessing multiple shared resources on a single remote host
US8539020B2 (en) 2010-06-14 2013-09-17 Microsoft Corporation Sessions to host processes with special requirements
JP6310260B2 (ja) * 2014-01-20 2018-04-11 株式会社荏原製作所 基板処理装置内の複数の処理ユニットを調整するための調整装置、および該調整装置を備えた基板処理装置
US11789741B2 (en) * 2018-03-08 2023-10-17 Sap Se Determining an optimum quantity of interleaved instruction streams of defined coroutines
US11194629B2 (en) * 2018-12-06 2021-12-07 International Business Machines Corporation Handling expiration of resources allocated by a resource manager running a data integration job
CN112162840B (zh) * 2020-09-29 2024-03-08 曹蕤 一种基于中断重入机制的协程处理及管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2258113A5 (ja) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
FR2253425A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2269150B1 (ja) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
US4379326A (en) * 1980-03-10 1983-04-05 The Boeing Company Modular system controller for a transition machine
US4410940A (en) * 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
US4805097A (en) * 1984-08-03 1989-02-14 Motorola Computer Systems, Inc. Memory management unit with dynamic page allocation
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
US5047925A (en) * 1985-05-06 1991-09-10 Motorola, Inc. Logical ring in a virtual single machine
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
US5060140A (en) * 1986-01-16 1991-10-22 Jupiter Technology Inc. Universal programmable data communication connection system
DE3750171T2 (de) * 1986-08-28 1995-02-02 Nippon Electric Co Multiaufgabenverarbeitungsgerät.
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US4914619A (en) * 1987-10-19 1990-04-03 International Business Machines Corporation Apparatus and method for interconnecting an application of a transparent services access facility to remote source
US4999766A (en) * 1988-06-13 1991-03-12 International Business Machines Corporation Managing host to workstation file transfer
US4975830A (en) * 1988-12-05 1990-12-04 Dayna Communications, Inc. Computer communication system having supplemental formats

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Howard,J.H.,et al,Scale and Performance in a Distributed File System,ACM Trans on Computer Systems,Vol.6,No.1,1988年2月,P51−81
Spector,A.Z.,他,広域ファイルシステム Andrew File System,UNIX MAGAZINE,株式会社アスキ1989年8月1日,第4巻,第8号,p.54−65
下山智明,Sun Lightweight Process プログラミング(上),UNIX MAGAZINE,株式会社アスキー,1988年7月1日,第3巻,第7号,p.90−100

Also Published As

Publication number Publication date
EP0426323A3 (en) 1992-10-21
DE69024753D1 (de) 1996-02-22
DE69024753T2 (de) 1996-05-30
EP0426323A2 (en) 1991-05-08
JPH03147151A (ja) 1991-06-24
US5276879A (en) 1994-01-04
EP0426323B1 (en) 1996-01-10

Similar Documents

Publication Publication Date Title
JP3478538B2 (ja) 共通ルーチンを用いた移植性の資源共用ファイルサーバ
EP0723236B1 (en) System for communicating messages among agent processes
US5230065A (en) Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units
EP0362107B1 (en) Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
US4882674A (en) Apparatus and method for control of one computer system by another computer system
JP3989911B2 (ja) グローバル割込み待ち行列の仮想化
US6044415A (en) System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection
KR100733852B1 (ko) 계산기 시스템
US20040221290A1 (en) Management of virtual machines to utilize shared resources
EP0147574B1 (en) Resource sharing method between workstations
US5251317A (en) Computer system with an access control unit for resource
JPH0628293A (ja) サービス・アクセス・ポイントに接続を分散する通信制御システム
JPH0727503B2 (ja) データ転送制御方法及びインタフェース・システム
JPH07141206A (ja) プロセス境界にまたがってオブジェクト間の通信を行う方法及びシステム
TW200411403A (en) System and method for transferring data between virtual machines or other computer entities
JP2004326755A (ja) 仮想計算機環境におけるディスパッチ機能の管理
JP2004326753A (ja) 仮想計算機環境におけるロックの管理
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
US20160232037A1 (en) Latency-hiding context management for concurrent distributed tasks
EP0193933B1 (en) Apparatus for control of one computer system by another computer system
WO2021095943A1 (ko) 서비스 프로파일을 고려한 컨테이너의 배치 방법
Hitz et al. Using Unix as one component of a lightweight distributed kernel for multiprocessor file servers
US6704765B1 (en) System for allocating resources among agent processes
Fagg et al. Taskers and general resource managers: PVM supporting DCE process management
Gharu Operating system

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees