JPH11242641A - ノード及びノード間通信方法及びプログラム記憶媒体 - Google Patents

ノード及びノード間通信方法及びプログラム記憶媒体

Info

Publication number
JPH11242641A
JPH11242641A JP4325898A JP4325898A JPH11242641A JP H11242641 A JPH11242641 A JP H11242641A JP 4325898 A JP4325898 A JP 4325898A JP 4325898 A JP4325898 A JP 4325898A JP H11242641 A JPH11242641 A JP H11242641A
Authority
JP
Japan
Prior art keywords
network
hardware
message
reception
node
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.)
Withdrawn
Application number
JP4325898A
Other languages
English (en)
Inventor
Asako Katayama
朝子 片山
Mitsuhiro Kishimoto
光弘 岸本
Keisuke Fukui
恵右 福井
Masayuki Naito
雅行 内藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4325898A priority Critical patent/JPH11242641A/ja
Publication of JPH11242641A publication Critical patent/JPH11242641A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 本発明は、ノード及びノード間通信方法に関
し、CPUのオーバヘッドの小さい通信を行うノードを
提供することを目的とする。 【解決手段】 プロセス2は、メッセージ11の受信待
ちの状態の場合に、ネットワークドライバ6に対して直
接所定の制御信号を発行して休眠すると共に、ネットワ
ークドライバ6からの受信割込みにより休眠から復帰し
てネットワークハードウェア8に対して直接メッセージ
到着確認を発行する。ネットワークドライバ6は、ネッ
トワークハードウェア8からのハードウェア割込みの内
のハードウェア受信割込みのみを受け取り、受信待ちプ
ロセス2に対して受信割込みを生じる。ネットワークハ
ードウェア8は、メッセージ11を受信した場合にハー
ドウェア受信割込みをネットワークドライバ6に発生さ
せる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ノード及びノード
間通信方法及びプログラム記憶媒体に関し、特に、プロ
セスがネットワークハードウェアを用いて通信を行うノ
ード及びノード間通信方法及びプログラム記憶媒体に関
する。
【0002】
【従来の技術】複数のプロセスの間において情報(メッ
セージ)の送受信を行うプロセス間通信が、同一のコン
ピュータ上に限らず、コンピュータネットワークに接続
されたノードである異なるコンピュータ間においても、
ネットワークを介して行われている。
【0003】一般に、コンピュータネットワークにおい
て、これを構成するノード間の通信はTCP/IPを利
用した通信(TCP/IP通信)によって行われる。T
CP/IP通信において、通信を行うプロセスはメッセ
ージの受信待ち合わせをする必要がある。TCP/IP
通信におけるメッセージの受信待ち合わせは、例えば、
受信待ちの状態のプロセス(受信待ちプロセス)の発行
するポールシステムコールと呼ばれるシステムコールを
用いてカーネル内で実行される。
【0004】この方式によれば、図7に示すように、受
信待ちプロセス102はOS104に対してポールシス
テムコールを発行して休眠(スリープ)する。メッセー
ジがネットワークハードウェア108に到着すると、ネ
ットワークハードウェア108はOS104に対してハ
ードウェア割込み110を起こす。このハードウェア割
込み110に応じて、OS104は種々のドライバ10
6及び107を順に呼び出す。呼び出されたドライバ1
06及び107の内のネットワークドライバ106は、
自己への割込みであることを認識して、OS104に応
答を返すと共に、カーネル105に制御を渡す。カーネ
ル105は、そのTCP/IP(プロセス)111にお
いてメッセージ処理を行った後、受信待ちプロセス10
2を調べて、待っている全ての受信待ちプロセス102
を受信割込みによって起こす。これにより、メッセージ
の受信の待ち合わせを実現する。
【0005】また、TCP/IP通信とは別に、ノード
間通信におけるメッセージの受信の待ち合わせには、例
えば、受信待ちプロセス102によるビジーウェイト処
理による方式がある。
【0006】ノード間通信ではユーザのプロセス102
がカーネル105を介することなくネットワークハード
ウェア108を直接用いて通信を行う。そこで、この方
式によれば、受信の待ち合わせも、プロセス102がカ
ーネル105を介することなくネットワークハードウェ
ア108を直接用いる。即ち、受信待ちプロセス102
がビジーウェイト状態になり、ネットワークハードウェ
ア108に対して直接メッセージ到着確認を送り、ネッ
トワークハードウェア108からメッセージ未到着が返
されると、メッセージが到着するまでメッセージ到着確
認の送信を繰り返す。
【0007】更に、カーネル105を介することなく受
信待ち合わせをする他の方式として、ネットワークドラ
イバ106からのシグナルにより受信待ちプロセス10
2がメッセージ到着通知を受ける方式もある。
【0008】この方式によれば、ネットワークドライバ
106からのシグナルの受信までの間、受信待ちプロセ
ス102は休眠状態に入る。このため、休眠の間は受信
待ちプロセス102がCPUを使用しない。メッセージ
が到着すると、ネットワークハードウェア108からネ
ットワークドライバ106に対して割込みを生じ、これ
に応じてネットワークドライバ106が受信待ちプロセ
ス102にシグナルを送信する。
【0009】
【発明が解決しようとする課題】TCP/IP通信にお
けるポールシステムコールを用いた受信待ち合わせ方式
によれば、カーネル105を介してメッセージ受信を行
うため、この分CPUのオーバヘッドが大きくなる。
【0010】また、ノード間通信におけるビジーウェイ
ト処理による受信待ち合わせ方式によれば、メッセージ
到着までの時間が長い場合には、当該到着までCPUを
無駄に使用することになる。
【0011】更に、ネットワークドライバ106からの
シグナルによる受信待ち合わせ方式によれば、当該シグ
ナル受信までの間は受信待ちプロセス102が休眠状態
でよいため、CPUの使用効率は良い。しかし、1回に
1プロセスしか受信待ち合わせをすることができない。
また、ネットワークハードウェア108からネットワー
クドライバ106に対して割込みを生じる場合に、ネッ
トワークドライバ106が割込みの種類に関係なく全て
の割込みを受信していたため、ネットワークドライバ1
06で処理できない割込み(エラー割込み)まで受信し
てしまっていた。このため、ネットワークドライバ10
6はハードウェアに対して無駄なアクセスを行うことに
なり、CPUのオーバヘッドを大きくする原因になって
いた。
【0012】本発明は、CPUのオーバヘッドの小さい
通信を行うノードを提供することを目的とする。また、
本発明は、通信の状態に応じて適切な通信モードでの通
信を行うノードを提供することを目的とする。
【0013】また、本発明は、CPUのオーバヘッドの
小さいノード間通信方法を提供することを目的とする。
また、本発明は、CPUのオーバヘッドの小さい通信を
行うノードを実現するプログラムを記憶したプログラム
記憶媒体を提供することを目的とする。
【0014】
【課題を解決するための手段】図1は本発明の原理構成
図であり、本発明によるノードの構成を示す。本発明の
ノードは、プロセス2、ネットワークドライバ6及びネ
ットワークハードウェア8とを備える。
【0015】プロセス2は、メッセージの受信待ちの状
態の場合に、ネットワークドライバ6に対して直接所定
の制御信号(入出力制御関数又はioctl)を発行し
て休眠すると共に、ネットワークドライバ6からの受信
割込みにより休眠から復帰してネットワークハードウェ
ア8に対して直接メッセージ獲得要求を発行する。ネッ
トワークドライバ6は、ネットワークハードウェア8か
らのハードウェア割込みの内のハードウェア受信割込み
を受け取り、受信待ちプロセス2に対して受信割込みを
生じる。ネットワークハードウェア8は、メッセージを
受信した場合にハードウェア受信割込みをネットワーク
ドライバ6に生じる。
【0016】本発明のノードによれば、受信待ちのプロ
セス2は、当該メッセージの到着まで休眠するので、メ
ッセージの到着までCPUを使用しない。従って、メッ
セージ到着までの時間が長い場合でも、受信待ちのプロ
セス2が当該到着までCPUを無駄に使用することがな
いので、この分CPUのオーバヘッドを小さくできる。
また、ネットワークドライバ6からの受信割込みにより
休眠から復帰するので、カーネル5を介することがな
い。従って、カーネル5を介してのメッセージ受信は行
なわないため、この分CPUのオーバヘッドを小さくで
きる。更に、ネットワークドライバ6は、ハードウェア
受信割込みを受け取り、自己が処理できない割込みは受
信しない。従って、ネットワークドライバ6がネットワ
ークハードウェア8に対して無駄なアクセスを行うこと
がなく、この分CPUのオーバヘッドを小さくできる。
【0017】
【発明の実施の形態】図2はノード説明図であり、本発
明の適用されるノード30の構成を示す。ノード30の
各々は、ネットワーク40に接続されたネットワークハ
ードウェア8と、ネットワークハードウェア8上で動作
するOS(オペレーティングシステム)4と、OS4上
で動作するアプリケーション1とを備える。
【0018】ノード30はネットワークハードウェア8
を介してネットワーク40と接続される。ネットワーク
ハードウェア8は、コンピュータネットワーク又はデー
タ網を構成するネットワーク40に接続され、このネッ
トワーク40を介して他のノード30(のネットワーク
ハードウェア8)と接続され、これとの間でのデータ
(メッセージ11)の送受信を行うハードウェアであ
る。
【0019】OS4は、当該ノード30であるコンピュ
ータの制御プログラムである。当該ノード30であるコ
ンピュータは、図示しないが、CPU、メモリ、入出力
装置等を備える。OS4はこのメモリ上に常駐し、CP
U上において実行される。OS4はネットワークハード
ウェア8とアプリケーション1との間に位置する。
【0020】カーネル5は、OS4の主要な部分(核)
であり、カーネル5のプロセスはCPU上で実行され
る。カーネル5は複数のドライバ6及び7を有する。ド
ライバ6及び7はデータの入出力(io)を実行するネ
ットワーク40、ハードディスク、入出力装置等の各種
の機器(デバイス)毎に設けられ、対応する各種の機器
を制御するためのモジュールである。ネットワークドラ
イバ6は、カーネル5内のデバイスドライバの1つであ
り、ネットワークハードウェア8を制御するデバイスド
ライバである。なお、説明の便宜上、ネットワークドラ
イバ6とそれ以外の他のドライバ7とを区別して説明す
る。
【0021】OS4又はカーネル5とネットワークハー
ドウェア8との間において、ネットワークハードウェア
8側からのインタフェースは割込みである。後述するハ
ードウェア受信割込みはこの割込みの一種である。OS
4又はカーネル5側からのインタフェースは各種の制御
信号である。
【0022】アプリケーション1は、複数のユーザのプ
ロセス2及び3からなる。プロセス2及び3は、ユーザ
プログラムであり、例えばあるノード30であるコンピ
ュータ上で実行され、当該プログラムに記述された所定
の処理を実行する。なお、説明の便宜上、他のノード3
0(のプロセス3)からのメッセージ11の受信待ちの
状態にある(又はサーバである)プロセス2とそれ以外
の(又はクライアントである)他のプロセス3とを区別
して説明する。プロセス2は、他のノード30上のプロ
グラムである他のプロセス3から、あるメッセージ11
を受信し読み込む処理を実行する。他のプロセス3は、
他のノード30上のプログラムであるプロセス2へ、メ
ッセージ11を送信する。
【0023】プロセス2とOS4又はカーネル5との間
において、プロセス2又は3側からのインタフェースは
システムコール9である。後述する入出力制御関数はシ
ステムコール9の一種であり、データの入出力(io)
を実行するネットワークハードウェア8を制御するネッ
トワークドライバ6へのインタフェースである。OS4
又はカーネル5側からのインタフェースは割込みであ
る。後述する受信割込みもこの一種である。
【0024】ノード30(ノード#0及び#1)の間に
おいてノード間通信が行われる。このノード間通信はソ
ケットを用いて行うネットワーク40を介したプロセス
間通信であり、プロセス2及び3が直接ネットワークハ
ードウェア8を用いて行う通信である。
【0025】例えば、当該コンピュータネットワークが
サーバクライアントシステムであり、ノード#0(又は
プロセス2)がサーバとして働き、ノード#1(又はプ
ロセス3)がクライアントである。クライアントである
ノード#1におけるプロセス3は、サーバであるノード
#0におけるプロセス2に対して、プロトコルに従って
所定のサービスを要求するメッセージ(リクエスト)1
1を送信する。サーバであるプロセス2は、クライアン
トであるプロセス3からの要求のメッセージ11の受信
を待つ。即ち、サーバであるプロセス2は、クライアン
トであるプロセス3からの要求のメッセージ11を受信
するまで、受信待ちの状態にある。受信待ちの状態にお
いて、プロセス2は他のノード#1上のプロセス3にア
クセスすることはできない。
【0026】受信待ちの状態において、プロセス2は、
自ノード#0のOS4のカーネル5を介することなく、
直接、自ノード#0のネットワークハードウェア8にメ
ッセージ到着確認又はメッセージ獲得要求を発行する。
その時点で、当該メッセージ11がネットワークハード
ウェア8に到着していれば、プロセス2はこれを受信す
る。当該メッセージ11を受信すると、サーバであるプ
ロセス2は、当該要求のメッセージ11に応じて所定の
処理を行い、必要に応じてプロトコルに従って所定の返
答をクライアントであるプロセス3に返す。
【0027】なお、図2において、クライアントである
ノード#1はサーバであるノード#0と同様の構成を有
するので、その詳細な図示は省略した。従って、ノード
#1におけるプロセス3は、ノード#0におけるプロセ
ス2に対してメッセージ(リクエスト)11を送信した
後、プロセス2からの返答を待つ受信待ちの状態にあ
る。即ち、ノード#1におけるプロセス3は、受信待ち
プロセス2となり、ノード#0におけるプロセス2と全
く同様の処理を同様の順で実行する。これにより、ノー
ド#0(のプロセス2)とノード#1(のプロセス3)
との間で本発明のノード間通信が行われる。
【0028】図3は、ノード説明図であり、本発明のノ
ード30の構成の概略を示す。なお、このノード30
は、図2に示すノード#0であり、サーバである。ま
た、ノード30において、カーネル5及びネットワーク
ドライバ6等はプロセスとして、プロセス2及び3と同
様に、そのCPUとメモリとからなる処理装置31にお
いて実行される。
【0029】サーバであるノード30の所定のプロセス
3は、予め定められた所定のサービスをクライアントに
提供するために、クライアントからのサービス要求のメ
ッセージ11の受信待ちの状態に入る。即ち、受信待ち
プロセス2となる。受信待ちプロセス2は、ビジーウェ
イト処理又は休眠処理のいずれかを実行する。即ち、受
信待ちの状態においては、ビジーウェイトモード又は休
眠モードのいずれかで動作する。このために、プロセス
2はビジーウェイト処理手段12及び休眠処理手段14
を備える。
【0030】ビジーウェイト処理手段12又はビジーウ
ェイトモードは、ネットワークハードウェア8に対して
直接メッセージ到着確認を発行するビジーウェイト処理
を実行する。ビジーウェイト処理手段12は、メッセー
ジ到着確認を発行した後、予め定められた所定の時間内
にネットワークハードウェア8からメッセージ到着の返
答があったか否かを調べ、メッセージ到着の場合にはネ
ットワークハードウェア8に到着しているメッセージ2
2を受信待ちプロセス2の有するメモリ空間15内に複
写してメッセージ18として保持する。
【0031】プロセス2は、ネットワークドライバ6か
らの受信割込みにより休眠から復帰して、メッセージ獲
得要求を発行する。この時点で、後述するように、メッ
セージ11はネットワークハードウェア8に到着してい
る。従って、休眠後の受信待ちプロセス2は、メッセー
ジ獲得要求発行後、直ちにネットワークハードウェア8
から当該メッセージ11(22)を受信することができ
る。これにより、プロセス2は、休眠から復帰後、直ち
に所定のサービスを提供することができる。
【0032】メモリ空間15上のメッセージ18は、受
信待ちの状態から脱出したプロセス2(その時点ではプ
ロセス3)によって参照される。プロセス2(3)は、
例えば、メッセージ18がサービス要求であれば、当該
要求の内容に従って、当該要求を発行したノード#1上
のプロセス3に対する所定のサービスを実行する。な
お、メモリ空間15は、ノード30の有するメモリ上に
当該プロセス2(その時点ではプロセス3)の生成の際
に、これと同時に獲得される。
【0033】休眠処理手段14又は休眠モードは、ネッ
トワークドライバ6に対して直接所定の制御信号である
入出力制御関数を発行して休眠(スリープ)し、ネット
ワークドライバ6からの受信割込みにより休眠から復帰
する休眠処理を実行する。休眠処理手段14が休眠から
復帰すると、プロセス2はネットワークハードウェア8
に対して直接メッセージ獲得要求及びメッセージ複写要
求を発行する。
【0034】受信待ちプロセス2が、ビジーウェイト処
理又は休眠処理のいずれを実行するかは、プロセス2自
体が定める。この例においては、プロセス2は、ビジー
ウェイト処理手段12によるビジーウェイト処理を所定
の回数だけ繰り返した後、休眠処理手段14による休眠
処理に入る(移行する)。このために、プロセス2は判
定処理手段13を備える。
【0035】判定処理手段13は、判定処理を行うため
に、受信待ちプロセス2の有するメモリ空間15内に、
カウンタ16及びシステムパラメータ17を有する。カ
ウンタ16は、その初期値を「0」として、判定処理手
段13によってインクリメントされリセットされる。シ
ステムパラメータ17の値(パラメータ値)は、当該コ
ンピュータネットワークの性能等を考慮して予め所定の
値に設定され、例えば100以下の整数値とされる。な
お、パラメータ値は各ノード30毎に同一でも異なって
いても良い。
【0036】ビジーウェイト処理手段12においてネッ
トワークハードウェア8からメッセージ到着の返答がな
い場合、ビジーウェイト処理に続けて、判定処理手段1
3による判定処理が実行される。判定処理手段13は、
カウンタ16内のカウント値をインクリメント(+1)
した後、インクリメントしたカウント値とシステムパラ
メータ17内のパラメータ値とをメモリ空間15から読
み出してこれらを比較する。
【0037】カウント値がパラメータ値以下である場
合、判定処理手段13は、直ちにビジーウェイト処理の
実行を命令する。これにより、ビジーウェイト処理が繰
り返される。カウント値がパラメータ値よりも大きい場
合、判定処理手段13は、直ちに休眠処理の実行を命令
する。従って、判定処理の結果に応じて休眠処理手段1
4が実行され、この結果、プロセス2はCPUの使用権
を解放して休眠状態(CPUを使用せずに所定の割込み
を待つ状態)に入る。従って、プロセス2は休眠から復
帰するまで処理装置31のCPUを占有することはな
い。なお、休眠処理に入る前に、判定処理手段13(又
は休眠処理手段14)は、カウンタ16のカウント値を
リセットする(「0」とする)。
【0038】ネットワークドライバ6は受信待ちプロセ
ス2からの入出力制御関数を受信する。受信待ちプロセ
ス2は、図示しないが、アプリケーション1内において
同時に複数個存在する。ネットワークドライバ6は、複
数の受信待ちプロセス2から受信した入出力制御関数を
格納するために、自己(又はカーネル5)の有するメモ
リ空間20内にプロセスキュー21を有する。ネットワ
ークドライバ6は、入出力制御関数を受信すると、これ
らを発行した受信待ちプロセス2をその受信の順にプロ
セスキュー21に繋ぐ。
【0039】なお、受信した入出力制御関数を格納でき
るものであれば、プロセスキュー21に代えて、テーブ
ル等どのような形式のものを採用しても良い。また、メ
モリ空間20は、ノード30の有するメモリ上に当該ネ
ットワークドライバ6の生成の際に、これと同時に獲得
される。
【0040】ネットワークドライバ6はネットワークハ
ードウェア8からのハードウェア受信割込みを受け取
る。この時、ネットワークドライバ6は、ネットワーク
ハードウェア8からのハードウェア割込みの内、ハード
ウェア受信割込みのみを受け取り、他のハードウェア割
込みを受け取らない。これにより、ネットワークドライ
バ6におけるエラー割込みの発生を防止できる。
【0041】ネットワークドライバ6は、ハードウェア
受信割込みを受け取ると、入出力制御関数を発行して休
眠している複数の受信待ちプロセス2に対して受信割込
みを発生する。このために、ネットワークドライバ6
は、プロセスキュー21に繋がれている複数の受信待ち
プロセス2をその先頭から順に読み出して、当該プロセ
ス2に対して受信割込みを発生する。従って、ネットワ
ークドライバ6は、入出力制御関数を発行して休眠して
いる複数の受信待ちプロセス2に代わって、メッセージ
11の到着確認を行う。入出力制御関数は、当該到着確
認の監視の交替のために、これを望むプロセス2が発行
する制御信号である。
【0042】この受信割込みの発生したプロセス2は、
前述したように、休眠処理から復帰する。但し、処理の
複雑化を避けるために、プロセス2は到着を待っている
メッセージ11の内容毎に異なる入出力制御関数を発行
することはなく、一方、ネットワークドライバ6もネッ
トワークハードウェア8からのハードウェア受信割込み
を区別できない。即ち、入出力制御関数は各プロセス2
に共通の1種類のみであり、ハードウェア受信割込みも
1種類のみである。
【0043】従って、受信割込みの発生したプロセス2
は、自己のメモリ空間15にメッセージ18を獲得して
始めて、それが到着を待っていたメッセージか否かを知
る。到着を待っていたメッセージ11である場合、プロ
セス2は当該メッセージ18に従った処理を実行する。
到着を待っていたメッセージ11でない場合、プロセス
2は、再度、ビジーウェイト処理をパラメータ値に定め
られた回数だけ実行した後休眠処理に入る。
【0044】ネットワークハードウェア8は、ネットワ
ーク40を介して他のノード30からのメッセージ11
を受信した場合、これを自己の有するメモリ(図示せ
ず)に複写してメッセージ22として保持し、この後、
ハードウェア受信割込みをネットワークドライバ6に生
じる。このハードウェア受信割込みは、メッセージ11
を受信した場合にのみ発生され、ネットワークハードウ
ェア8が他のドライバ7に対して生じる他のハードウェ
ア割込みと区別される。一方、ネットワークハードウェ
ア8は、メッセージ11の受信によりハードウェア受信
割込みを発生させるのみで、メッセージ11の内容の判
別は行わない。
【0045】ネットワークハードウェア8は、受信待ち
プロセス2の発行するメッセージ到着確認を受信する
と、メッセージ11が到着していれば(メッセージ22
があれば)到着の返答を、到着していなければ未到着の
返答を返す。ネットワークハードウェア8は、プロセス
2からのメッセージ獲得及びメッセージ複写の要求があ
ると、各々、メッセージ22のアドレス(又はポイン
タ)及び到着しているメッセージ22をプロセス2に対
して送信する。
【0046】本発明のノード30及びノード30間にお
けるノード間通信は、以上に述べた処理を当該ノード3
0であるコンピュータに実現させるプログラムによって
実現される。従って、本発明は当該プログラムを格納し
たプログラム記憶媒体をも提供する。
【0047】本発明に従うノード30は当該プログラム
をノード30にインストールすることによって実現され
る。当該プログラムのインストールは、各ノード30毎
に、別個独立に行われる。従って、ノード間通信を行っ
ている相手方のノード30が本発明に従うか否かにかか
わらず、当該プログラムをインストールされたノード3
0は、本発明に従って以上に述べた処理を実行する。
【0048】図4は、ノード間通信説明図であり、本発
明のノード30におけるノード間通信の概略をその実行
の順に示す。サーバであるノード30(#0)のプロセ
ス3は受信待ちの状態に入り、受信待ちプロセス2とな
る。受信待ちプロセス2のビジーウェイト処理手段12
は、カーネル5及びネットワークドライバ6を介するこ
となく、直接、ネットワークハードウェア8に対してメ
ッセージ到着確認を発行する。プロセス2は、メッセー
ジ11(22)が到着していれば、ネットワークハード
ウェア8から当該メッセージ11(22)を受け取り複
写してメッセージ18を得る。
【0049】一方、メッセージ11(22)が到着して
いなければ、プロセス2は、判定処理手段13により、
システムパラメータ17において定められた回数だけメ
ッセージ到着確認の発行を繰り返す。この後、プロセス
2の休眠処理手段14は、カーネル5を介することな
く、直接、ネットワークドライバ6に対して入出力制御
関数を発行して休眠する。この入出力制御関数を発行し
た受信待ちプロセス2はプロセスキュー21の最後尾に
繋がれる。
【0050】その後、ネットワークハードウェア8が、
他のノード30(#1)のプロセス3からのメッセージ
11を受信した場合、ハードウェア受信割込みをネット
ワークドライバ6に生じる。ネットワークハードウェア
8は、他のハードウェア割込みを受け付けないので、エ
ラー割込みは発生しない。ハードウェア受信割込みの発
生に応じて、ネットワークドライバ6は、プロセスキュ
ー21に繋がれた入出力制御関数を発行して休眠してい
る複数のプロセス2に対して、順に受信割込みを生じ
る。
【0051】休眠している受信待ちプロセス2は、ネッ
トワークドライバ6からの受信割込みにより休眠から復
帰して、ネットワークハードウェア8に対して直接メッ
セージ獲得要求を発行する。
【0052】この時点では、メッセージ11がネットワ
ークハードウェア8に到着しているので、プロセス2の
ビジーウェイト処理手段12は、メッセージ11(2
2)の複写を行いメッセージ18を自己のメモリ空間1
5に得ることができる。この処理はプロセスキュー21
に繋がれた入出力制御関数を発行した複数のプロセス2
に対して順に連続して実行される。従って、複数のプロ
セス2が、実質的に同時にメッセージ11(18)を受
信することができる。
【0053】図5は、ノード間通信処理フローであり、
当該通信においてノード30(#0)のプロセス2、ネ
ットワークドライバ6、ネットワークハードウェア8が
実行する処理を示す。
【0054】受信待ちプロセス2が、ネットワークハー
ドウェア8に対してメッセージ到着確認を発行して、メ
ッセージの到着の有無を問い合わせる(ステップ1)。
これを受けたネットワークハードウェア8は、メッセー
ジ11(22)が到着していれば到着の返答を返し、到
着していなければ未到着の返答を返す。
【0055】この返答を受信したプロセス2は、これを
調べてメッセージ11が到着したか否かを知る(ステッ
プ2)。メッセージ11が到着している場合、プロセス
2は、ネットワークハードウェア8に対してメッセージ
獲得要求を発行する(ステップ3)。これを受けたネッ
トワークハードウェア8は、当該メッセージ22(1
1)の自メモリ内のアドレス(又はポインタ)を返す。
【0056】プロセス2は、ネットワークハードウェア
8に対して当該アドレス(又はポインタ)を指定してメ
ッセージ22についてのメッセージ複写要求を発行する
(ステップ4)。
【0057】プロセス2は、当該メッセージ22(1
1)を複写してメッセージ18を得て処理を終了する
(ステップ5)。この後、プロセス2はメッセージ18
の内容に応じたサービスを他のノード30(#1)のプ
ロセス3に提供する。
【0058】一方、ステップ2においてメッセージ11
が到着していない場合、プロセス2は、カウンタ16を
インクリメントする(ステップ6)。プロセス2は、イ
ンクリメントした最新のカウント値とシステムパラメー
タ17のパラメータ値とを比較する(ステップ7)。
【0059】カウント値がパラメータ値以下である場
合、プロセス2は、ステップ1以下を繰り返す。即ち、
カウント値がパラメータ値より大きくなるまで、ビジー
ウェイト処理が繰り返される。
【0060】一方、ステップ7においてカウント値がパ
ラメータ値より大きい場合、プロセス2は、ネットワー
クドライバ6に対して入出力制御関数を発行する(ステ
ップ8)。この入出力制御関数を発行したプロセス2は
プロセスキュー21に繋がれる。
【0061】この後、プロセス2はCPUの使用権を解
放して休眠状態に入る(ステップ9)。ネットワークハ
ードウェア8にメッセージ11が到着すると、ネットワ
ークハードウェア8がネットワークドライバ6にハード
ウェア受信割込みを発生する(ステップ10)。
【0062】このハードウェア割込みの発生に応じて、
ネットワークドライバ6は、プロセスキュー21に繋が
れた入出力制御関数を発行した(メッセージ11の受信
待ちをしている)複数のプロセス2に受信割込みを発生
する(ステップ11)。この受信割込みを受けたプロセ
ス2は、休眠状態から復帰して、ステップ2以下を繰り
返す。即ち、プロセス2は、休眠状態からの復帰により
ステップ2において常にメッセージ11が到着している
状態となるので、メッセージ獲得要求を発行し(ステッ
プ3)、メッセージ22(11)のアドレスを受け取
り、メッセージ複写要求を発行し(ステップ4)、メッ
セージ22(11)を複写してメッセージ18を得て処
理を終了する(ステップ5)。
【0063】図6は、ノード間通信手順説明図であり、
図5のノード間通信処理フローに従って実行されるノー
ド通信における処理手順を示す。サーバであるノード3
0(#0)上のプロセス2が、クライアントである他の
ノード30(#1)上の他のプロセス3からのサービス
要求のメッセージ11の受信を待つ。受信待ちプロセス
2は、最初、ビジーウェイト処理を実行する。
【0064】ビジーウェイト処理において、受信待ちプ
ロセス2は、ネットワークドライバ6を介することな
く、直接、ネットワークハードウェア8に対してメッセ
ージ到着確認を発行する。メッセージ11が未到着だと
すると、これを受けたネットワークハードウェア8は、
未到着の返答を返す。
【0065】そこで、再び、受信待ちプロセス2は直接
ネットワークハードウェア8に対してメッセージ到着確
認を発行する。この時点でも、当該メッセージが未到着
だとすると、ネットワークハードウェア8は、再び、未
到着の返答を返す。
【0066】このビジーウェイト処理をシステムパラメ
ータ17のパラメータ値の定める回数まで繰り返した
後、受信待ちプロセス2はビジーウェイト処理から脱出
して休眠処理に入る。
【0067】休眠処理において、まず、受信待ちプロセ
ス2は、ネットワークドライバ6に対して入出力制御関
数(ioctl)を発行して休眠する。これにより、受
信待ちプロセス2がCPUを占有することが防止でき
る。一方、受信待ちプロセス2の休眠中にネットワーク
ハードウェア8からハードウェア割込みがあっても、ネ
ットワークドライバ6はこれを受信しない。これによ
り、ネットワークドライバ6におけるエラー割込みの発
生を防止できる。
【0068】メッセージ11(22)がネットワークハ
ードウェア8に到着すると、これを受けたネットワーク
ハードウェア8は、ネットワークドライバ6において受
信割込みを発生させる。ネットワークドライバ6はメッ
セージの到着を確認すると、プロセスキュー21に繋が
れている入出力制御関数を発行した休眠している受信待
ちプロセス2に受信割込みを発生させる。
【0069】この受信割込みに応じて、休眠していた受
信待ちプロセス2は、休眠状態から復帰して、ネットワ
ークドライバ6を介することなく、ネットワークハード
ウェア8に対してメッセージ獲得要求を発行する。
【0070】この時点では、メッセージ22(11)が
到着しているので、これを受けたネットワークハードウ
ェア8は、メッセージ22のアドレスを返す。そこで、
受信待ちプロセス2は直接ネットワークハードウェア8
に対して当該アドレスを指定してメッセージ複写要求を
発行する。ネットワークハードウェア8は到着している
メッセージ22(11)を受信待ちプロセス2に複写さ
せる。受信待ちプロセス2はメッセージ22(11)を
自己のメモリ空間15に複写してメッセージ18として
保持する。
【0071】この後、受信待ちプロセス2は、メッセー
ジ18の内容に応じたサービスを、クライアントである
他のノード30(#1)上の他のプロセス3提供する。
なお、休眠処理に入る前のビジーウェイト処理の実行中
に、ネットワークハードウェア8にメッセージ11が到
着し、メッセージ到着確認に対して到着の返答が受信待
ちプロセス2に帰って来る場合がある。この場合、受信
待ちプロセス2は、上記の場合と同様に、ネットワーク
ハードウェア8に対してメッセージ獲得要求及びメッセ
ージ複写要求を発行し、ネットワークハードウェア8に
到着しているメッセージ22(11)を複写してメッセ
ージ18として保持し、その内容に応じたサービスをク
ライアントである他のノード30(#1)上の他のプロ
セス3提供する。
【0072】以上、本発明をその実施の態様により説明
したが、本発明はその主旨の範囲において種々の変形が
可能である。例えば、前述したように、プロセス2にお
いてビジーウェイト処理と休眠処理のいずれを実行する
かは、プロセス2自体が決定する。従って、プロセス2
が、ビジーウェイト処理と休眠処理とを、相互に移行す
ることなく独立に実行するようにしても良い。即ち、同
一のアプリケーション1において、あるプロセス2はビ
ジーウェイト処理のみを実行し、あるプロセス2は休眠
処理のみを実行するようにしても良い。なお、この場合
でも、プロセス2が自己の都合により、適宜、ビジーウ
ェイト処理と休眠処理とを相互に移行するようにしても
良い。
【0073】また、プロセス2のビジーウェイト処理か
ら休眠処理への移行は、カウンタ16等を用いた判定処
理によらずに、タイマを用いて切り換えることによって
実現しても良い。即ち、プロセス2が、自己のメモリ空
間15にタイマを備え、ビジーウェイト処理の開始によ
りタイマをスタートし、このタイマのタイムアップによ
りビジーウェイト処理から休眠処理に移行するようにし
ても良い。なお、タイマは休眠処理に移行する際にリセ
ットされる。
【0074】更に、プロセス2においてビジーウェイト
処理と休眠処理のいずれを実行するかを、カーネル5が
ノード間通信の状態に応じてプロセス2に指示しても良
い。例えば、ネットワーク40が混雑している場合に
は、重要なサービスを提供するプロセス2のみにビジー
ウェイト処理の実行を許し、他のプロセス2については
休眠処理を実行させて必要なメッセージが到着した時に
のみ復帰させるようにしても良い。
【0075】また、本発明は、以上に述べた処理を当該
ノード30であるコンピュータに実現させるプログラム
を格納したプログラム記憶媒体を提供する。従って、当
該プログラム記憶媒体も本発明の技術的範囲に属するも
のである。
【0076】
【発明の効果】以上説明したように、本発明によれば、
プロセスがネットワークハードウェアを用いて通信を行
うノードにおいて、ネットワークハードウェアからのハ
ードウェア受信割込みを生じたネットワークドライバか
らの受信割込みにより休眠から復帰したプロセスがネッ
トワークハードウェアに対して直接メッセージ獲得要求
を発行することにより、受信待ちのプロセスが当該メッ
セージの到着までCPUを無駄に使用することを防止す
ることができ、カーネルを介してのメッセージ受信を無
くすことができ、更に、ネットワークドライバがネット
ワークハードウェアに対して無駄なアクセスを行うこと
を防止できるので、この分CPUのオーバヘッドを小さ
くでき、ノード間通信の性能を向上することができる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】ノード説明図である。
【図3】ノード説明図である。
【図4】ノード間通信説明図である。
【図5】ノード間通信処理フローである。
【図6】ノード間通信手順説明図である。
【図7】従来技術説明図である。
【符号の説明】 1 アプリケーション 2 (受信待ち)プロセス 3 他のプロセス 4 OS(オペレーティングシステム) 5 カーネル 6 ネットワークドライバ 7 他のドライバ 8 ネットワークハードウェア 9 システムコール 10 割込み 11 メッセージ
フロントページの続き (72)発明者 福井 恵右 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 内藤 雅行 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 メッセージの受信待ちの状態の場合にネ
    ットワークドライバに対して直接所定の制御信号を発行
    して休眠すると共に、前記ネットワークドライバからの
    受信割込みにより休眠から復帰してネットワークハード
    ウェアに対して直接メッセージ獲得要求を発行するプロ
    セスと、 前記ネットワークハードウェアからのハードウェア割込
    みの内のハードウェア受信割込みを受け取り、受信待ち
    の状態のプロセスに対して受信割込みを発生させるネッ
    トワークドライバと、 メッセージを受信した場合にハードウェア受信割込みを
    ネットワークドライバに発生させるネットワークハード
    ウェアとを備えることを特徴とするノード。
  2. 【請求項2】 前記ネットワークドライバが前記所定の
    制御信号を発行して休眠している複数の受信待ちの状態
    のプロセスに対して当該受信割込みを発生させることを
    特徴とする請求項1に記載のノード。
  3. 【請求項3】 前記受信待ちの状態のプロセスが、 ネットワークハードウェアに対して直接メッセージ到着
    確認を発行するビジーウェイト処理を実行するビジーウ
    ェイト処理手段と、 ネットワークドライバに対して直接所定の制御信号を発
    行して休眠し、ネットワークドライバからの受信割込み
    により休眠から復帰する休眠処理を実行する休眠処理手
    段とを備えることを特徴とする請求項1に記載のノー
    ド。
  4. 【請求項4】 受信待ちの状態の前記プロセスが、前記
    ビジーウェイト処理を所定の回数だけ繰り返した後、前
    記休眠処理に入り、ネットワークドライバからの受信割
    込みにより休眠から復帰して、ネットワークハードウェ
    アに対して直接メッセージ獲得要求を発行することを特
    徴とする請求項3に記載のノード。
  5. 【請求項5】 各々が、ネットワークに接続されたネッ
    トワークハードウェアと、前記ネットワークハードウェ
    ア上で動作するカーネルに設けられ前記ネットワークハ
    ードウェアを制御するネットワークドライバと、前記カ
    ーネル上で動作するプロセスとを備える複数のノードの
    間において行われるノード間通信であって、 受信待ちの状態のプロセスが、ネットワークドライバに
    対して直接所定の制御信号を発行して休眠し、 ネットワークハードウェアが、他のノードからのメッセ
    ージを受信した場合にハードウェア受信割込みをネット
    ワークドライバに発生させ、 ネットワークドライバが、ネットワークハードウェアか
    らのハードウェア割込みの内ハードウェア受信割込みを
    受け取り、前記所定の制御信号を発行して休眠している
    受信待ちの状態のプロセスに対して受信割込みを発生さ
    せ、 受信待ちの状態のプロセスが、ネットワークドライバか
    らの受信割込みにより休眠から復帰して、ネットワーク
    ハードウェアに対して直接メッセージ獲得要求を発行す
    ることを特徴とするノード間通信方法。
  6. 【請求項6】 プロセスが、受信待ちの状態の場合に、
    ネットワークドライバに対して直接所定の制御信号を発
    行して休眠する処理と、 ネットワークハードウェアが、他のノードからのメッセ
    ージを受信した場合にハードウェア受信割込みをネット
    ワークドライバに発生させる処理と、 ネットワークドライバが、ネットワークハードウェアか
    らのハードウェア割込みの内ハードウェア受信割込みを
    受け取り、前記所定の制御信号を発行して休眠している
    受信待ちの状態のプロセスに対して受信割込みを発生さ
    せる処理と、 受信待ちの状態のプロセスが、ネットワークドライバか
    らの受信割込みにより休眠から復帰して、ネットワーク
    ハードウェアに対して直接メッセージ獲得要求を発行す
    る処理とを当該ノードであるコンピュータに実現させる
    プログラムを格納したことを特徴とするプログラム記憶
    媒体。
JP4325898A 1998-02-25 1998-02-25 ノード及びノード間通信方法及びプログラム記憶媒体 Withdrawn JPH11242641A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4325898A JPH11242641A (ja) 1998-02-25 1998-02-25 ノード及びノード間通信方法及びプログラム記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4325898A JPH11242641A (ja) 1998-02-25 1998-02-25 ノード及びノード間通信方法及びプログラム記憶媒体

Publications (1)

Publication Number Publication Date
JPH11242641A true JPH11242641A (ja) 1999-09-07

Family

ID=12658839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4325898A Withdrawn JPH11242641A (ja) 1998-02-25 1998-02-25 ノード及びノード間通信方法及びプログラム記憶媒体

Country Status (1)

Country Link
JP (1) JPH11242641A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045305A (ja) * 2015-08-27 2017-03-02 京セラドキュメントソリューションズ株式会社 電子機器および割り込み処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045305A (ja) * 2015-08-27 2017-03-02 京セラドキュメントソリューションズ株式会社 電子機器および割り込み処理プログラム
CN106484505A (zh) * 2015-08-27 2017-03-08 京瓷办公信息系统株式会社 电子设备以及中断处理方法

Similar Documents

Publication Publication Date Title
JP3384686B2 (ja) 通信ネットワークから情報を受信するための方法および装置
US6006017A (en) System for determining the frequency of repetitions of polling active stations relative to the polling of inactive stations
US6603744B2 (en) Connection establishment method, communication method, state change transmission method, state changing method, wireless apparatus, wireless device, and computer
US7444537B2 (en) System and method for communicating a software-generated pulse waveform between two servers in a network
JPH10207822A (ja) 高速i/oコントローラにおける割り込み処理方法
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
US6256660B1 (en) Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts
JPH11327815A (ja) 通信制御方法及び装置及び通信システム
JP2002208981A (ja) 通信方法
US7343432B1 (en) Message based global distributed locks with automatic expiration for indicating that said locks is expired
JP2002518765A (ja) 通信コントローラメッセージングシステム
JPH11242641A (ja) ノード及びノード間通信方法及びプログラム記憶媒体
JP3189269B2 (ja) ネットワークプリンタ
JP4123712B2 (ja) 通信処理方法ならびに通信処理プログラムが記録される記録媒体
JP2924783B2 (ja) リモートリード処理方法およびその装置
JPH09311843A (ja) クライアントサーバ型通信方法及びクライアントサーバ型通信装置
KR0169037B1 (ko) 전기 통신 관리망의 에이전트에서의 메시지 제어 방법
JP2820942B2 (ja) 通信プロトコル処理方法
JPH11327938A (ja) フロー制御方法
KR100212450B1 (ko) 이동 통신 시스템 기지국 제어계의 메시지 수신부 최적 처리 방법
JP2002051107A (ja) 装置切替え方法、通信制御装置、および、通信システム
JPH11328130A (ja) ネットワークジョブ実行システム
JP2002244873A (ja) 通信処理方法ならびに通信処理プログラムが記録される記録媒体
JP2001202216A (ja) プリンタサーバレス方式を用いたプリンタ自動選択システム
JPS6263348A (ja) リモ−トフアイルコピ−方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050510