JPH07225728A - 通信制御装置 - Google Patents

通信制御装置

Info

Publication number
JPH07225728A
JPH07225728A JP6017108A JP1710894A JPH07225728A JP H07225728 A JPH07225728 A JP H07225728A JP 6017108 A JP6017108 A JP 6017108A JP 1710894 A JP1710894 A JP 1710894A JP H07225728 A JPH07225728 A JP H07225728A
Authority
JP
Japan
Prior art keywords
area
data
application program
communication
reception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6017108A
Other languages
English (en)
Inventor
Kiyotaka Kibo
清隆 木保
Shunichi Torii
俊一 鳥居
Hirofumi Inomata
宏文 猪股
Kazuhiko Komuro
和彦 小室
Shigemasa Furuya
茂政 古屋
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Computer Peripherals Co Ltd
Hitachi Ltd
Hitachi Information and Control Systems Inc
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 Hitachi Computer Peripherals Co Ltd, Hitachi Ltd, Hitachi Information and Control Systems Inc filed Critical Hitachi Computer Peripherals Co Ltd
Priority to JP6017108A priority Critical patent/JPH07225728A/ja
Publication of JPH07225728A publication Critical patent/JPH07225728A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】ノード間の通信においてアプリケーションプロ
グラムの仮想記憶領域を利用し、効率よくデータの送受
信を行う。 【構成】デバイスドライバ151は受信用物理ページア
ドレスリストの任意の物理ページ503を受信用物理ペ
ージとして登録し、データ受信450によりデータを受
信する。受信データのヘッダ部は通信制御を持つワーク
領域504へ受信し、データ部は受信用物理ページとし
て登録された物理ページ503に受信する。受信待ちプ
ロセスリストに登録されたプロセスリストとヘッダ50
4から受信したデータの移動受信先が決定され、プロセ
スの受信仮想記憶に対応するページ表上の物理アドレス
情報へ受信した物理ページアドレスを設定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は異なる処理装置間でのデ
ータ送受信を効率良く実現する通信制御装置に関する。
【0002】
【従来の技術】図4により従来技術の概要を説明する。
従来技術における通信のメモリ管理は通信バッファと呼
ばれる送受信専用のメモリを設け、その通信バッファを
介して送受信を行う。
【0003】図4では、OS181内に配置されたデバ
イスドライバ151が通信網からのデータを受信450
をすると、そのデータを一度通信用バッファ領域440
へ転送する。通信バッファ上に配置された受信データ
は、ヘッダ430とデータ431からなる。ヘッダには
受信アプリケーションプログラムを特定する情報が設定
されており、この情報から特定のアプリケーションプロ
グラム、例ではアプリケーションプログラム110が選
択される。アプリケーションプログラムが特定される
と、受信要求の領域へ通信用バッファ領域からアプリケ
ーションプログラムの仮想領域へデータ431をデータ
420へ複写451する。この時、上位アプリケーショ
ンプログラムは通信バッファの状態(受信可能領域等)
は感知できない。
【0004】上記の具体的な例はレファー(S.J.L
effer)他著、中村 明他訳「UNIX4.3BS
D の設計と実装」丸善株式会社 平成3年6月30日
発行の第10章プロセス間通信(第295ページから第
325ページ)、第11章ネットワーク通信(第326
ページから第357ページ)に詳しい。
【0005】UNIX 4.3BSD がサポートしてい
る主な通信インタフェースはソケット(socket)と呼ば
れ、実際に通信を行うプロトコルはTCP/IPと呼ば
れる。socketを利用した通信における通信バッファの管
理では同書第301ページから第307ページに詳細が
説明されている。この通信バッファはmbufと呼ばれる1
28バイト長の構造を複数持つ。また一つのページ一つ
のmbufにマップできるのでメモリ間コピーなしでデータ
移動が可能である。
【0006】上記文献の第352ページから第356ペ
ージではVAX UNIBUSインターフェースを利用してmbuf通
信用バッファ管理構造を直接通信機器の入出力空間にマ
ッピングする方法が紹介されている。
【0007】また、同部分ではトレイラプロトコルと呼
ばれる通信バッファからアプリケーションプログラムへ
複増を行わないプロトコルが紹介されている。同部分の
記述では「ページ境界に沿ってページサイズと同じ大き
さのデータを保持し、システムはデータをコピーする代
り、ページテーブルのエントリを変えることによってメ
モリ内でデータを移動できる。」とある。しかし本機能
はmbuf構造を前提としているため、つまり既存のメモリ
管理機能を利用するため、カーネルのアドレス空間へ、
つまりmbuf構造へ複写する必要がある。
【0008】トレイラプロトコルのデータ形式は同第3
55ページに示されるように1ページ目の終端にイーサ
ネットの物理情報を配置し、データを2ページ目からペ
ージ長*n個、n+2ページ以降に可変部分(トレイ
ラ)を配置する。これにより、トレイラプロトコルのヘ
ッダ情報は別れたmbufに複写され、データ部分は受信バ
ッファのページに残され、新しいページが受信バッフア
用に割り当てられる。
【0009】ノード間のデータ転送では、データを転送
するためにプロトコルを決める。タネンバウム(Andrew
S.Tanenbaum)著 斉藤他 訳「コンピュータネットワ
ーク」の第242ページから271ページではOSIの
データリンク層における通信プロトコルの基本的なアル
ゴリズムが紹介されている。また同書第356ページか
ら第369ページではネットワークにおける輻輳を回避
するためのアルゴリズムが紹介されている。
【0010】一般に輻輳が起こる要因は、ネットワーク
上のパケット量の増大である。パケット量が増えると各
ネットワーク上のノードの通信バッファが満杯となり、
パケットを自分自身で破棄する。破棄を起こさないため
には、 (1)バッファの先行割当 (2)パケット破棄による再送指示時の転送パケット量制
限即ちフロー制御の導入 (3)チョークパケットによるパケット転送量制限 等の方式が説明されている。
【0011】バッファ管理はさまざまなシステムでその
特性に応じて管理される。データベース管理システムや
UNIXファイルシステムでは処理装置のメモリ上にバ
ッファ領域を設けバッファ上にアクセスしたいデータが
存在すれば、ディスク装置をアクセスすることなく目的
のデータを取得することが可能である。前記した「UN
IX 4.3BSDの設計と実装」の第217ページから
第222ページにはBSDにおけるバッファ管理方式が
紹介されている。
【0012】
【発明が解決しようとする課題】一般のOSの通信制御
プログラムはOS空間内に通信制御用のバッファを設
け、それを介して通信を行う。データベース管理システ
ムやUNIXファイルシステムはディスク装置とのアク
セス効率を改善するためにデータベースバッファやバッ
ファキャッシュを設ける。従来技術では、例えばデータ
ベースアクセス結果を異なるノードへ転送する場合、デ
ータベースバッファから通信バッファを介してデータの
送受信を行わなければならない。しかし、同一データを
異なる機能コンポ間(通信制御とデータベース管理シス
テム)で重複して保持するため、メモリ資源が無駄とな
る。このため通信バッファとデータベースバッファを機
能単位で分けずに、どちらの機能も利用できるバッファ
領域として管理する必要がある。
【0013】異なるノードにジャーナル機能や入出力機
能が存在する構成のデータベース管理システムにおい
て、あるデータベース処理ノードの入出力ページバッフ
ァやジャーナルバッファ上のデータは、あるタイミング
で異なるノードへ大量転送する必要がある。例えばジャ
ーナル機能を有するノードへ複数のノードからジャーナ
ルを大量転送すると特定のノードへ処理が集中する。従
来技術ではあるノードへ処理集中した場合のバッファ満
杯等による輻輳を避けるために、通信制御プログラムが
輻輳制御を行う。しかし上述のように通信バッファとデ
ータベースバッファを共通利用するとすれば、その領域
を管理するのは通信制御プログラムではなく、データベ
ース管理システムである。つまり通信を利用する上位の
アプリケーションがその送受信バッファ領域の状態を管
理する。ゆえに、輻輳状態が発生する状況下において、
輻輳状態を制限する為に上位アプリケーションプログラ
ムが意識してバッファ状態を判断し、送信側プログラム
になんらかの制御情報を送らなければならない。
【0014】
【課題を解決するための手段】上記を解決する手段とし
て、本発明は (1)通信網で接続された複数の処理装置間で、ある処理
装置において複数のアプリケーションプログラムの持つ
論理領域の大きさを指定して通信用受信領域として通信
制御に渡す手段と、渡された論理領域を物理領域に変換
し受信用物理領域として管理する手段と、前記管理され
た受信用物理領域中の任意の物理領域を用いて通信網か
らデータを受信する手段と、受信したデータに付加され
た情報から受信するアプリケーションプログラムを特定
する手段と、特定されたアプリケーションプログラムが
登録した論理領域へ受信したデータの物理領域を対応さ
せる手段と、受信結果を上位アプリケーションプログラ
ムに報告する手段と、その報告によりアプリケーション
プログラムの論理領域容量に対応した次受信領域の大き
さを決定する手段と、決定された領域量と受信報告を送
信アプリケーションプログラムへ応答する手段、により
データの送受信を行う。
【0015】(2)通信網で接続された複数の処理装置間
で、ある処理装置において複数のアプリケーションプロ
グラムの持つ論理領域の大きさを開始時は特定の大きさ
に固定化し、開始以後は双方のアプリケーションプログ
ラムで合意された大きさを指定して通信受信領域として
通信制御に渡す手段と、渡された論理領域を物理領域に
変換し、受信用物理領域として管理する手段と、前記管
理された受信用物理領域中の任意の物理領域を用いて通
信網からデータを受信する手段と、受信したデータに付
加された情報から受信するアプリケーションプログラム
を特定する手段と、特定されたアプリケーションプログ
ラムが登録した論理領域へ受信したデータの物理領域を
対応させる手段と、論理領域の残容量に対応した次受信
領域の大きさを決定し、送信アプリケーションプログラ
ムへ応答する手段によりデータの送受信を行う。
【0016】(3)通信網で接続された複数の処理装置間
で、ある処理装置において複数のアプリケーションプロ
グラムの持つ論理領域の大きさを指定して通信用受信領
域として通信制御を渡す手段と、渡された論理領域を物
理領域に変換し、受信用物理領域として管理する手段
と、前記管理された受信用物理領域中の任意の物理領域
を用いて通信網からデータを受信する手段と、受信した
データに付加された情報から受信するアプリケーション
プログラムを特定する手段と、特定されたアプリケーシ
ョンプログラムが登録した論理領域へ受信したデータの
物理領域を対応させる手段と、特定されたアプリケーシ
ョンが指定した論理領域の大きさを越えて送信されたデ
ータを破棄する手段と、破棄された受信データの情報を
送信側アプリケーションプログラムへ応答する手段によ
りデータの送受信を行うことを特徴とする。
【0017】(4)上記(1)(2)(3)における通信制御方
式とそのシステムによってアプリケーションプログラム
において転送領域の管理とデータ転送制御を行うことを
特徴とする。
【0018】
【作用】本発明はこのように構成されるので、従来、同
一データを異なる機能コンポ間(通信制御とデータベー
ス管理システム)で重複して保持しメモリ資源が無駄と
なっていたものを、上位アプリケーションプログラムの
持つバッファ領域をそのまま通信用バッファとして利用
できる。また同バッファの管理元が輻輳を避ける制御を
意識して行うことが可能となる。
【0019】
【実施例】図1から図16を用いて本発明の概要を説明
する。
【0020】(実施例その1)図5により本発明の概要
を説明する。アプリケーションプロセス110がデータ
受信をする場合、OSの通信制御機能を呼び出し(41
0)、仮想記憶上のページ510をOS内通信制御プロ
グラムに渡す。この時、OS内の通信制御プログラムは
渡された受信用仮想記憶ページを受信用物理ページとし
て受信用物理ページアドレスリスト505へ登録すると
共に受信待ち通信路リスト242へアプリケーションプ
ログラムの識別子を登録する。また受信する仮想記憶領
域の情報も同通信路リストへ登録する。
【0021】デバイスドライバ151は受信用物理ペー
ジアドレスリストの任意の物理ページ503を受信用物
理ページとして登録する。デバイスドライバ151はデ
ータ受信450によりデータを受信する。受信データの
ヘッダ部は通信制御を持つワーク領域504へ受信し、
データ部は受信用物理ページとして登録された物理ペー
ジ503に受信する。
【0022】受信待ちプロセスリストに登録されたプロ
セスリストとヘッダ504から受信したデータの移動受
信先が決定され、該当プロセスの受信仮想記憶に対応す
るページ表上の物理アドレス情報へ受信した物理ページ
アドレスを設定する(転送プロセス決定とページテーブ
ル変換処理511)。OSは受信完了報告をアプリケー
ションプログラム110に報告する。アプリケーション
プログラムはその報告を受け、次に受信可能な領域の大
きさを決定(510)し、受信応答にその領域量を設定
し、送信アプリケーションプログラムへ応答を返す(5
20)。
【0023】(実施例その2)次により詳細な発明の構
成を図1から図3,図6から図16を用いて以下に説明
する。
【0024】図1は本発明を実装するために必要となる
システムの構成である。ノード101,102は処理装置
を示す。ノードには複数または1つの中央処理装置があ
り、各プログラムの指示する命令を実行する。
【0025】通信制御装置161,162はノード上の
処理装置を持つ記憶領域から指定されたノードへデータ
を転送する。通信網170は通信制御装置から送出され
るデータを相手ノードへ実際に転送する物理的な線であ
る。
【0026】OS181,182は各処理装置上のアプ
リケーション実行環境並びに後述するアプリケーション
プログラムが必要とする基本的なサービス(例えばデー
タのファイル機能,通信機能等)を提供する。
【0027】通信制御プログラム131,132は上位
アプリケーションプログラムから要求されたデータの送
受信要求を制御し、後述する仮想記憶制御機能並びにデ
バイスドライバ機能を用いて相手ノードへ転送するため
の通信プロトコルを実行する。
【0028】仮想記憶制御141,142は物理的なメ
モリを仮想的なメモリとして扱うOSの基本機能であ
る。
【0029】デバイスドライバ151,152は通信制
御プログラムが要求したデータの送受信要求を通信制御
装置に対して要求する。
【0030】アプリケーションプログラム110,11
1,112は実際の業務を行うプログラムであったり、
データベース管理システムやオンライントランザクショ
ン処理システムである。尚UNIX等のOSではアプリ
ケーションプログラムが実行される環境を一般にプロセ
スと呼ぶ。以降でプロセスといった場合、アプリケーシ
ョンプログラムの実行環境とアプリケーションプログラ
ムそのものを指す。
【0031】次に図2を用いて本発明が必要とする管理
表の概要を示す。OS制御表210はOSが管理する各
管理表の親表である。同表には装置管理表へポインタ2
11や、プロセス管理表へのポインタ212が設定され
ている。これらのポインタは各表を実際に操作する場合
にその管理表が処理装置のメモリ上のどこに存在するか
を示すアドレス情報である。
【0032】装置管理表220はそのOSが稼働する処
理装置に接続されている周辺機器例えば通信制御装置や
ハードディスク装置などの、個々の装置の属性情報や名
前等を管理する。同表には装置識別子222や通信制御
装置管理表221が管理される。装置識別子222は個
々の周辺装置に一意に付与された名称であり、UNIXでは
/dev /周辺装置名で表現される名称である。本発明で
の通信制御装置も一意の名前、例えば/dev /port01
のような名称が付与される。
【0033】通信制御装置管理表230は本発明におけ
る通信制御装置の属性情報や通信制御装置に付随して制
御されるいくつかの管理情報に関する情報を保持する。
受信用物理ページアドレスリストへのポインタ231は
受信用物理ページアドレスリスト234の最初に登録さ
れたアドレスリストへのポインタである。通信路管理表
へのポインタ232は通信路管理表240へのポインタ
である。その他の情報は通信制御装置の属性情報例え
ば、通信制御装置が稼働状態にあるか否か等の状態情報
やその通信制御装置を使っているプロセスの数などの情
報が設定される。
【0034】受信用物理ページアドレスリスト234は
通信制御装置が通信網からデータを受信した時にそのデ
ータを格納する処理装置上の物理的なメモリ領域の先頭
アドレスである。同リストには受信用物理ページアドレ
ス235と次のアドレスリストへのポインタ236が保
持される。本実施例では受信するデータ長をヘッダを除
いたデータ部をそのOSのページ長の受信に制限してい
る。しかし、本アドレスリストに任意の物理アドレスと
その領域長を指示することにより上記制限を排除した通
信制御方式をとることも可能である。
【0035】通信路管理表240は各アプリケーション
プログラムが利用する通信路を管理する。通信路は異な
る処理装置(ノード)上のプロセス(アプリケーション
プログラム)間に仮想的に張られた通信路である。アプ
リケーションプログラムはこの通信路を指定して相手と
の通信を行う。各通信路は一意の識別子を持つ。通信路
管理表240は実際の通信路の情報を持たず、通信路の
情報は受信待ち通信路リスト241の1エントリに管理
される。
【0036】受信待ち通信路リスト241は通信路識別
子249,受信待ちプロセス識別子243,受信ページ
数244,受信ページリストへのポインタ245,次の
受信待ち通信路リストへのポインタ246から構成され
る。通信路識別子は各通信路に一意に付与された識別子
である。受信待ちプロセス識別子はこの処理装置上で通
信路識別子を用いて通信を行っているプロセス(アプリ
ケーションプログラム)を識別する識別子である。受信
ページ数はそのプロセスが受信用仮想ページとして供給
しているページの数で、後述する受信ページリスト24
2の数である。
【0037】受信ページリスト242は本通信路を利用
しているプロセスが供給したページの仮想記憶ページア
ドレス247と次の受信ページリストのポインタ248
から構成される。
【0038】プロセス管理表250はOSが生成,実行
単位としているプロセスに関する各種情報を管理する管
理表である。本管理表にはセグメント管理表へのポイン
タ251がある。
【0039】セグメント管理表260は各プロセスの仮
想記憶を管理するセグメントと呼ばれるページ群の対応
表である。同ページ群を管理するのがページ表270で
あり、セグメント管理表の1エントリにはそのページ表
へのポインタ261が管理される。
【0040】ページ表270は物理アドレス271とペ
ージ状態情報272から構成される。物理アドレスは仮
想記憶上のページとその仮想記憶上のページが処理装置
上の物理メモリに存在する場合にその物理ページアドレ
スを保持する。状態情報はページが物理メモリ上に存在
するか、スワッピング装置に存在するかを管理する情報
であり、もし該当仮想ページを利用しようとした時に、
物理メモリ上に該当ページが無い時にはスワッピング装
置から該当ページをページインする。また当該仮想ペー
ジがページアウトされるのを抑止するページ固定化に関
する情報も保持する。
【0041】次に図3を用いてアプリケーションプログ
ラム並びにOS、通信制御プログラム間で送受信される
電文の形式を示す。電文301は以下の情報から構成さ
れる。
【0042】転送先アドレスタグ305は通信制御装置
が通信網上の処理装置の物理アドレスを指定した情報
で、通信網上のスイッチング装置へのアドレス指示情報
である。
【0043】ヘッダ302はユーザデータの転送先情報
や転送するページの数が指定される。ヘッダは二つの種
類がある。
【0044】ノード間通信ヘッダ303(以後H1と略
す。)はノード間のデータ転送情報を持つ。
【0045】プロセス間通信ヘッダ304は異なるノー
ド上のプロセス間での配送情報を持つ。
【0046】各ヘッダの詳細な内容を以下に示す。
【0047】ノード間ヘッダ303は以下から構成され
る。電文長307はこの電文の長さを示す。送信先ノー
ドアドレス308は送信先ノードを一意に識別する情報
である。受信先ノードアドレス309は受信先ノードを
一意に識別する情報である。ノード間受信ページ数31
0は受信可能ページ数である。
【0048】プロセス間通信ヘッダ304は以下から構
成される。通信路識別子312は該当の送受信プロセス
が利用している仮想通信路を一意に識別する識別子であ
る。送信プロセス識別子312は送信アプリケーション
プログラムを一意に識別する。受信プロセス識別子は受
信アプリケーションプログラムを一意に識別する。電文
長314はプロセス間通信で送信されるデータ量であ
る。ack 応答情報323は受信に対する応答を行う時、
受信が成功したか否かの情報(ack/nak種別)と失敗時
の未転送ページ数316を保持する。ユーザ要求321
はプロセス間通信ヘッダのユーザ定義領域であり、後に
続くデータの操作に関する情報または受信側アプリケー
ションプログラムに要求する操作内容を持つ。
【0049】データ318はプロセス間通信で送信する
データである。
【0050】CRC319は通信制御装置が付加する情報で、
受信側通信制御装置が正常にデータが転送されたか否か
を判断するための制御情報である。
【0051】電文形式330は実際にプロセス間で複数
ページを転送する場合のH1とH2とデータの構成であ
る。
【0052】次に上記で説明した各構成により本発明の
動作について述べる。
【0053】図6は本システムのプログラム構成を初期
化するシステム開始処理である。システム開始処理は処
理装置に電源が投入された後に実行する。一般にはブー
ト処理と呼ばれる。システム開始601が起動される
と、OSの初期化602を実行後、通信制御の初期化6
03が行われ、その他の初期化604が行われる。各処
理が完了するとシステムはューザからの要求またはアプ
リケーションプログラムの実行を受け付ける事が可能に
なる。
【0054】図7はOSの初期化である。OSの初期化
処理では図3でOSが管理する管理表の初期化処理が行
われる。
【0055】OS初期化を実行すると、OS管理表21
0のメモリ割当と初期化が行われ、装置管理表220の
初期化702が行われる。装置管理表の初期化ではノー
ドに接続された周辺装置を物理的に初期化する。またO
Sが管理する装置管理表に関して初期化を行う。装置管
理表初期化の延長で本発明で使用する通信制御装置も初
期化703される。
【0056】各処理装置の初期化が完了するとアプリケ
ーションプログラムを管理するためのプロセス管理表の
初期化704を行い、アプリケーションプログラムの実
行が可能となる。上記以外の各環境の初期化処理705
を行い、OSの初期化が完了する。
【0057】図8は通信制御の初期化である。通信制御
装置の初期化では、通信路管理表の初期化801が行わ
れ、通信路管理表240のメモリ割当と通信路管理表の
初期化を行う。次に通信制御装置の初期化802が行わ
れ、通信制御装置のハードウァアが初期化される。その
後、通信制御のその他の初期化803を行い、通信制御
の初期化が完了する。
【0058】図6から図8により本発明で利用する管理
表の初期化と通信制御装置の初期化が完了する。
【0059】次にアプリケーションプログラムの初期化
について述べる。
【0060】図9はアプリケーションプログラムの開始
である。アプリケーションプログラムは端末からのコマ
ンド投入または初期起動パラメータ、時間起動等の方法
により起動される。コマンド投入による起動の場合、U
NIXではシェルと呼ばれるコマンドプロセッサが、自
分自身をfork( )902し、投入されたコマンドに対
応するアプリケーションプログラムをexec( )システ
ムコール903で起動する。fork( )システムコール
で起動された時点で、新しいプロセスとして実行するた
めにプロセス識別子を割当910、セグメント表とペー
ジ表のOS管理領域へメモリ割当,初期化911し、そ
の後、fork( )したプロセス自体のプロセス環境を複
写912する。これによりプロセスの基本環境が設定さ
れる。
【0061】上記アプリケーションプログラムの環境作
成により本発明に必要な管理表(図2)の基本部分が作
成された。
【0062】次に実際にアプリケーションプログラム間
において本発明がどのように動作するかを示す。
【0063】図10はアプリケーションプログラムにお
ける送信アプリケーションプログラムである。送信アプ
リケーションプログラム(プロセス)はあるデータを異
なる処理装置上のアプリケーションプログラム(プロセ
ス)へ転送する。図10を用いて送信アプリケーション
プログラムの例を示す。
【0064】送信アプリケーションプログラムは転送デ
ータを準備し、それを通信路を通して受信アプリケーシ
ョンプログラムへ転送する。
【0065】送信アプリケーションプログラムは最初に
アプリケーションプログラムが作業するための作業領域
を確保する(1002)。この領域はプロセス内の仮想
領域であってもよいし、共用メモリと呼ばれるプロセス
間で共用することの可能なメモリであってもよい。UN
IXではshmmatと呼ばれるシステムコールで共用メモリ
の確保が可能である。
【0066】次に受信アプリケーションプログラムへの
送信を行う為に通信路のオープン処理を行う(100
3)。オープン処理によりデータ送信に必要な制御構造
表の確保が行われる。この詳細は図12を用いて後述す
る。
【0067】オープン処理の結果、最初に送信できるペ
ージ数が通信制御プログラムにより決定される。送信ア
プリケーションプログラムはこの送信可能ページ数を最
初の転送数として保持する(1004)。
【0068】送信アプリケーションプログラムは各種の
データ処理を行う(1005)。このデータ処理はファ
イルやデータベースのアクセス,送信アプリケーション
プログラム以外のプログラムが生成するデータの併合等
の処理である。データ処理中に処理されたデータで、受
信アプリケーションプログラムに転送される対象のデー
タは先に取得した作業領域に保存される。データ処理の
結果、送信ページ数が決定される。このページ数が転送
対象ページである。この転送ページ群は通信制御プログ
ラムが返す送信可能ページ数に従い指定数ずつ転送する
(1006,1007)。
【0069】転送対象ページを転送するには、送信対象
ページのアドレスリストを作成する(1008)。この
アドレスリストは仮想ページアドレスの組みであり、送
信ページ数作成しなければばらない。ここで作成したア
ドレスリストをページ転送のパラメタとして指定するこ
とにより、ページ転送が可能となる。
【0070】ページ転数(1009)はオープン時に返
された通信路記述子と上記アドレスリスト,送信可能ペ
ージ数を転送用ライブラリとしてパラメタに指定する。
ページ転送の詳細に関しては図13を用いて後述する。
【0071】ページ転送ライブラリコールの結果、次に
転送可能なページ数が返却される。この値は受信値アプ
リケーションプログラムが次に受信できるページ数であ
り、送信の応答に併合されて送信側アプリケーションプ
ログラムが受信する。この数から残り転送ページ数を計
算(1010)し、次のページ転送に指定する。
【0072】上記を送信データ完了まで繰り返す。送信
処理が完了すると、通信路のクローズ処理(1012)
を行い送信アプリケーションプログラムは完了する。
【0073】図11はアプリケーションプログラムにお
ける受信アプリケーションプログラムである。
【0074】受信アプリケーションプログラムも開始処
理において、作業領域を確保する。この作業領域は送信
アプリケーションプログラムが転送するページ数分確保
するが、ページ数が足らない場合、後述するページ受信
の繰り返しの中で領域を増分する。もし、増分する領域
が無い場合、データ処理を行った後、作業領域を解放し
て次の作業用に利用する。
【0075】次に送信アプリケーションプログラムから
データを受信する為に通信路をオープンする(110
3)。このオープン処理の延長で、通信に必要な資源が
確保される。通信路オープン後、通信制御が最初に受信
可能なページ数を切却するのでそのページ数分の受信領
域を確保する(1104,1105)。
【0076】受信データ分のアドレスリストを作成し
(1107)、実際にページ受信(1108)を行う。
ページ受信は通信路オープン時に返される通信路識別子
と、受信領域のアドレスリスト並びに受信可能ページ数
を指定して、実際のデータが転送されるまで待つ。
【0077】ページ受信がデータ受信を完了すると、次
に受信できる領域長と領域を決定する(1109)。こ
の領域長は受信アプリケーションプログラムが管理する
領域があるか否かを判断し決定される。受信可能領域が
決定されると、ページ受信が正常に行われた旨の応答を
返す(1110)。この時、上で決定した次受信データ
量値を応答に併合して返す。
【0078】この処理を受信データが無くなるまで繰り
返す(1106)。
【0079】受信したデータはデータ処理を行う(11
11)。この処理は実際にはデータベース管理システム
が処理したページやジャーナルバッファのページであ
る。
【0080】データ処理が完了すると、通信路をクロー
ズし通信に利用した領域を解放(1112)し、その他
に取得した資源を解放して処理を完了する(111
3)。
【0081】図12は通信制御プログラムに対して通信
路のオープン要求時の処理である。
【0082】通信路のオープン処理は通信を行う為の資
源を確保とそのアプリケーションプログラムが通信路を
利用して通信を行うことを通信制御プログラムに認識す
るため行う。
【0083】まず通信路をオープンしたアプリケーショ
ンプログラムのプロセス番号をシステムコールで取得
(1201)し、受信待ちプロセス管理表の特定エント
リを決定(1202)後、受信プロセスリストの1エン
トリのメモリの場合を割り当て並びに初期化を行い(1
203)、特定した受信待ちプロセス管理表の受信プロ
セスリストに割り当てたエントリを登録する(120
4)。次に開始受信可能ページ数(または送信可能)を
設定(実施例の場合、開始ページ数は1)(1205)す
る。次に割り当てたエントリを通信路ハンドルとして扱
い、それを通信路記述子として返却する。
【0084】図13は通信制御プログラムにおけるペー
ジ送信機能である。
【0085】この機能は図10の送信アプリケーション
プログラムが通信制御に対してページ転送要求を要求し
た場合に実行される。最初に転送データが自ノード内の
他のプロセスへの転送か否か判定する(1301)。自
ノードの場合通信制御装置と通信制御網を利用して相手
ノードへ転送する必要は無く、共用メモリやOS内共用
通信バッファまたは仮想記憶の管理テーブルを書き換え
ることでプロセス間の転送ができる。この自ノード内プ
ロセス間転送機能を利用して他プロセスへ転送を行う
(1302)。
【0086】自ノード以外の転送、すなわち、他のノー
ドへ通信網を介して転送する場合、以下の処理を行う。
【0087】まず他ノードへデータを転送する為に図3
で示した電文の形式にデータを編集する必要がある。最
初にヘッダを作成する(1303)。次に送信要求に指
定された送信電文数分OSページ送信を呼び出す(13
04,1305,1306,1307)。
【0088】指定電文数分送信が完了すると他ノードか
らの応答(ack )を待つ(1308)。他ノード上の受信
アプリケーションプログラムがデータ受信後、正常にデ
ータを受信した場合、このack応答に対して応答電文が
送信される。このackを受信してOSのページ転送が完
了する。もし、データ受信時に受信失敗が発生すると、
nak応答が返される。応答がnakか否か判断し(130
9)。転送に失敗していた場合、転送に失敗したページ
のみ選択して未転送ページのアドレスリストを作成して
再度転送する(1310)。
【0089】図14は通信制御プログラムにおけるペー
ジ受信機能である。
【0090】ページ受信で自ノード内の他のプロセスか
らページ受信をする場合、ページ送信同様、自ノード内
におけるプロセス間転送機能を利用してデータの受信を
行う(1401,1403)。
【0091】他ノードからのデータ受信の場合受信アプ
リケーションプログラムから渡されたページをデバイス
ドライバが管理する物理ページリスト化するためにカー
ネルページ登録(1402)をコールする。その後、受
信アプリケーションプログラムから渡された通信路識別
子から特定される受信プロセスリストの受信ページリス
トへ受信用仮想記憶アドレスを登録する(1404)。
登録後、受信待ち状態となる(1405)。
【0092】受信待ちが解除されると、受信ページの受
信状態を判断する。この時点で受信したページ内に障害
等が発生すると図15はOS内でのページ送信機能(1
306)である。
【0093】OSのページ送信は送信アプリケーション
プログラムから通信制御プログラムへ渡された仮想記憶
ページをデバイスドライバが転送する。通信制御プログ
ラムから渡された仮想記憶ページの物理アブレスを求め
る(1501)。これはプロセスの仮想記憶に関する制
御情報(セグメント表とページ表)から該当仮想記憶ペ
ージアドレスに対応するエントリを探し、物理ページア
ドレス(271)を参照する。デバイスドライバはペー
ジ送信時ページが実メモリ上に存在することを仮定して
データ転送をするので、該当ページが実メモリ上に無い
場合、ページインを行い実メモリ上にロードする必要が
ある。またOSによりページアウトされるのを避けるた
めに物理メモリ上にページ固定する。
【0094】この後、通信制御装置がデータを転送する
ために必要な通信制御装置用のヘッダ(図3における転
送先アドレスタグ301とノード間通信ヘッダ303)
を作成し(1502)、通信制御装置へ出力を行う(1
503)。通信制御装置は出力の過程でCRCと呼ばれ
る付加情報を転送データの最後に付加し、送信を完了す
る。
【0095】図16はOS内での受信用ページの管理表
でのページ登録機能である。
【0096】図3の受信用物理ページアドレスリスト2
34を作成する。この受信用ページアドレスリストは複
数のプロセスから受信要求されたページを物理ページと
してキュー登録し、通信制御装置が通信網からのデータ
を受信する場合、その受信用物理ページキューの任意の
ページを引き出して通信制御装置に渡す目的で通信制御
装置管理表に管理される。
【0097】受信アプリケーションプログラムが受信要
求を行うと、OSページ受信1108の延長でこのページ登
録が呼び出される。要求されたページアドレスをページ
送信同様、仮想記憶アドレスから物理アドレスへ変換す
る(1601)。対象仮想記憶アドレスのページ表の状
態情報を一時切り離し状態にする(1602)。これは
受信アプリケーションプログラムのプロセス上の当該ペ
ージの制御が通信制御装置に委譲されたことを示す。故
に該当アプリケーションプログラムはページ受信完了ま
では当該ページにアクセスすることはできない。
【0098】物理アドレスに変換されると通信制御装置
管理表の受信用物理ページアドレスリスト(234)へ
登録される(1603)。
【0099】図17はデバイスドライバがページ受信時
に動作するデバイスページ受信機能である。
【0100】この機能は通信制御装置が通信網からデー
タを受信した段階で通信制御装置により直接メモリ転送
(DMA)機能により受信用物理ページアドレスリスト
のキューの任意に選択された物理ページへ転送される。
つまり通信制御装置に指定された物理アドレスに受信デ
ータを転送(1701)し、次のデータを受信する物理
ページを用意する為に、受信用物理ページアドレスの任
意の受信用物理アドレスを通信制御装置へ渡す(170
2)。これを送信データ完了まで繰り返す(170
2)。全データを受信した後、受信データが正常に受信
されたか否か判断するために送信時にデータの終端に付
与されたCRCを判定する。この時にエラーが発生すれ
ば、通信制御装置が再行を行う。
【0101】上記で正常にデータを受信すると、受信ヘ
ッダ中のプロセス間通信ヘッダ(304)中の送信プロ
セス情報を解析(1706)し、通信路識別子(322)
で特定される受信待ち通信路リストを走査し、受信デー
タ中の受信プロセス識別子313に対応する受信待ち通
信路を探し、受信プロセスを特定する(1707)。特
定した受信待ち通信路情報の受信ページリストに指定さ
れた仮想アドレスに対応するページ表のエントリを特定
し、現受信物理ページのアドレスを設定する。設定後、
ページ表のページ状態情報をページイン状態とし(17
09)、受信待ちプロセス識別子で特定される受信待ち
プロセスを起動する(1710)。
【0102】
【発明の効果】本発明により従来、同一データを異なる
機能コンポ間(通信制御とデータベース管理システム)
で重複して保持しメモリ資源が無駄となっていたもの
を、上位アプリケーションプログラムの持つバッファ領
域をそのまま通信用バッファとして利用できる。また同
バッファの管理元が輻輳を避ける制御を意識して行うこ
とが可能となる。
【図面の簡単な説明】
【図1】本発明のシステムのブロック図。
【図2】本発明で利用する管理表のブロック図。
【図3】本発明における送受信データの形式の説明図。
【図4】従来技術の説明図。
【図5】本発明の概要の説明図。
【図6】本システムのプログラム構成を初期化するシス
テム開始処理のフローチャート。
【図7】OSの初期化のフローチャート。
【図8】通信制御プログラムの初期化のフローチャー
ト。
【図9】アプリケーションプログラムの開始のフローチ
ャート。
【図10】アプリケーションプログラムにおける送信ア
プリケーションプログラムのフローチャート。
【図11】アプリケーションプログラムにおける受信ア
プリケーションプログラムのフローチャート。
【図12】通信制御プログラムに対して通信路のオープ
ン要求時の処理のフローチャート。
【図13】通信制御プログラムにおけるページ送信機能
のフローチャート。
【図14】通信制御プログラムにおけるページ受信機能
のフローチャート。
【図15】OS内でのページ送信機能のフローチャー
ト。
【図16】OS内での受信用ページの管理表でのページ
登録機能のフローチャート。
【図17】デバイスドライバがページ受信時に動作する
デバイスページ受信機能のフローチャート。
【符号の説明】
101,102…ノード、110,111,112…ア
プリケーションプログラム、131,132…通信制御
プログラム、141,142…仮想記憶制御、151,
152…デバイスドライバ、161,162…通信制御
装置、170…通信網、181,182…OS。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鳥居 俊一 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 猪股 宏文 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 小室 和彦 茨城県日立市大みか町五丁目2番1号 株 式会社日立情報制御システム内 (72)発明者 古屋 茂政 神奈川県小田原市国府津2880番地 日立コ ンピュータ機器株式会社内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】通信網で接続された複数の処理装置間で、
    ある処理装置において複数のアプリケーションプログラ
    ムの持つ論理領域の大きさを指定して通信用受信領域と
    して通信制御に渡す手段と、渡された前記論理領域を物
    理領域に変換し受信用物理領域として管理する手段と、
    前記管理された受信用物理領域中の任意の物理領域を用
    いて前記通信網からデータを受信する手段と、受信した
    前記データに付加された情報から受信するアプリケーシ
    ョンプログラムを特定する手段と、特定された前記アプ
    リケーションプログラムが登録した論理領域へ受信した
    前記物理領域を対応させる手段と、受信結果を上位アプ
    リケーションプログラムに報告する手段と、その報告に
    より前記アプリケーションプログラムの前記論理領域の
    容量に対応した次受信領域の大きさを決定する手段と、
    決定された領域量と受信報告を送信アプリケーションプ
    ログラムへ応答する手段によりデータの送受信を行うこ
    とを特徴とする通信制御装置。
  2. 【請求項2】通信網で接続された複数の処理装置間で、
    ある処理装置において複数のアプリケーションプログラ
    ムの持つ論理領域の大きさを開始時は特定の大きさに固
    定化し、開始以後は双方の前記アプリケーションプログ
    ラムで合意された大きさを指定して通信受信領域として
    通信制御に渡す手段と、渡された論理領域を物理領域に
    変換し、受信用物理領域として管理する手段と、前記管
    理された受信用物理領域中の任意の物理領域を用いて通
    信量からデータを受信する手段と、受信した前記データ
    に付加された情報から受信する前記アプリケーションプ
    ログラムを特定する手段と、特定された前記アプリケー
    ションプログラムが登録した前記論理領域へ受信したデ
    ータの前記物理領域を対応させる手段と、前記論理領域
    の容量に対応した次受信領域の大きさを決定し、決定さ
    れた領域量と受信報告を送信アプリケーションプログラ
    ムへ応答する手段によりデータの送受信を行うことを特
    徴とする通信制御装置。
  3. 【請求項3】通信網で接続された複数の処理装置間で、
    ある処理装置において複数のアプリケーションプログラ
    ムの持つ論理領域の大きさを指定して通信用受信領域と
    して通信制御に渡す手段と、渡された前記論理領域を物
    理領域に変換し、受信用物理領域として管理する手段
    と、前記管理された受信用物理領域中の任意の物理領域
    を用いて通信網からデータを受信する手段と、受信した
    前記データに付加された情報から受信するアプリケーシ
    ョンプログラムを特定する手段と、特定された前記アプ
    リケーションプログラムが登録した前記論理領域へ受信
    したデータの物理領域を対応させる手段と、特定された
    アプリケーションが指定した論理領域の大きさを越えて
    送信されたデータを破棄する手段と、破棄された受信デ
    ータの情報を送信側アプリケーションプログラムへ応答
    する手段によりデータの送受信を行うことを特徴とする
    通信制御装置。
  4. 【請求項4】請求項1において、前記アプリケーション
    プログラムで転送領域の管理とデータ転送制御を行う通
    信制御装置。
JP6017108A 1994-02-14 1994-02-14 通信制御装置 Pending JPH07225728A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6017108A JPH07225728A (ja) 1994-02-14 1994-02-14 通信制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6017108A JPH07225728A (ja) 1994-02-14 1994-02-14 通信制御装置

Publications (1)

Publication Number Publication Date
JPH07225728A true JPH07225728A (ja) 1995-08-22

Family

ID=11934842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6017108A Pending JPH07225728A (ja) 1994-02-14 1994-02-14 通信制御装置

Country Status (1)

Country Link
JP (1) JPH07225728A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320124B2 (en) 2001-11-19 2008-01-15 Nec Corporation Apparatus and method for analyzing and displaying operations of computer and computer program for the same
US8180842B2 (en) 2003-12-19 2012-05-15 Fujitsu Limited Communication device management program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320124B2 (en) 2001-11-19 2008-01-15 Nec Corporation Apparatus and method for analyzing and displaying operations of computer and computer program for the same
US8180842B2 (en) 2003-12-19 2012-05-15 Fujitsu Limited Communication device management program

Similar Documents

Publication Publication Date Title
Tezuka et al. Pin-down cache: A virtual memory management technique for zero-copy communication
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
JP3512910B2 (ja) 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US7461160B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US5617424A (en) Method of communication between network computers by dividing packet data into parts for transfer to respective regions
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
US6697878B1 (en) Computer having a remote procedure call mechanism or an object request broker mechanism, and data transfer method for the same
US5909553A (en) Systems and methods for controlling the transmission of relatively large data objects in a communications system
US6308238B1 (en) System and method for managing connections between clients and a server with independent connection and data buffers
CA1321654C (en) Remote boot
US7992149B2 (en) Virtual machine connection to a tangible network
CA2573156C (en) Apparatus and method for supporting memory management in an offload of network protocol processing
US6009478A (en) File array communications interface for communicating between a host computer and an adapter
US6799200B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system
JP3384686B2 (ja) 通信ネットワークから情報を受信するための方法および装置
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
EP0889623B1 (en) System and method for efficient remote disk I/O
US20060015618A1 (en) Apparatus and method for supporting received data processing in an offload of network protocol processing
US6195688B1 (en) Computer system, program product and method of communicating internetworking data over a master-slave communication link
EP0780768A1 (en) Direct programmed I/O device control method using virtual registers
EP0381645A2 (en) System and method for communicating between a plurality of processors
JPH07225728A (ja) 通信制御装置
Bie et al. Vhost-User
US5862332A (en) Method of data passing in parallel computer
KR19980086588A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴