JPH0713778A - プロセス通信制御装置および方法 - Google Patents

プロセス通信制御装置および方法

Info

Publication number
JPH0713778A
JPH0713778A JP15935393A JP15935393A JPH0713778A JP H0713778 A JPH0713778 A JP H0713778A JP 15935393 A JP15935393 A JP 15935393A JP 15935393 A JP15935393 A JP 15935393A JP H0713778 A JPH0713778 A JP H0713778A
Authority
JP
Japan
Prior art keywords
device driver
counter
application program
value
virtual device
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
JP15935393A
Other languages
English (en)
Inventor
Isao Yoshizawa
功 吉澤
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.)
JFE Steel Corp
Original Assignee
Kawasaki Steel Corp
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 Kawasaki Steel Corp filed Critical Kawasaki Steel Corp
Priority to JP15935393A priority Critical patent/JPH0713778A/ja
Publication of JPH0713778A publication Critical patent/JPH0713778A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】 UNIX上のシステムにおいて、デバイスド
ライバ(70)とカーネル(30)との間に、カウンタ
(86,88または87,89)を備えた仮想デバイス
ドライバ(80)を追加し、カウンタ値を媒介としてデ
バイスドライバとアプリケーションプログラム(10)
との通信を行う。 【効果】 UNIXのカーネルを改造することなく、U
NIXのシグナル機能よりも融通性に富んだインターフ
ェースを、デバイスドライバとアプリケーションプログ
ラムとの間に確立することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、UNIXシステム上で
動作しているアプリケーションプログラムと、本UNI
Xシステムに接続されている入出力デバイスを制御する
デバイスドライバとの間のプロセス通信制御装置および
方法に関する。
【0002】
【従来の技術】図1は、従来のプロセス通信制御方式を
説明するためのブロック図である。アプリケーションプ
ログラム10と複数のデバイスドライバ20とは、UN
IXのカーネル30を介して接続されている。また、各
デバイスドライバ20は、それに接続されたハードウェ
ア(入出力デバイス)40を制御するものである。ま
た、アプリケーションプログラム10は、複数のプロセ
スを備えている。
【0003】ここで、各デバイスドライバ20と、アプ
リケーションプログラム10内のプロセスとの通信は、
一般に、次のような方法で行われている。
【0004】(1) UNIXがもつシグナル機能を利
用して行う。
【0005】(2) UNIXシステムのカーネル30
を改造して、特殊な制御機能を追加して行う。
【0006】
【発明が解決しようとする課題】しかしながら、上述し
た従来の方法では、次のような不都合が存在する。
【0007】(1) 上記(1)の方法では、シグナル
の用途が限定されており、使用できる通信の種類が限ら
れてしまう。
【0008】(2) 上記(2)の方法では、UNIX
のバージョンアップが行われる毎に、そのカーネルを改
造しなければならなず、膨大な工数が発生する。
【0009】本発明は、上記の事情に鑑みてなされたも
のであり、ハードウェアからの事象をアプリケーション
プログラムに通知する、融通性に富んだプロセス通信制
御装置および方法を提供することを目的としている。
【0010】
【課題を解決するための手段】上記問題点を解決するた
めに、本発明は、マルチタスク機能を備えたオペレーテ
ィングシステムと、その上で動作するデバイスドライバ
とを有する計算機システムにおいて、複数のプロセスを
有するアプリケーションプログラムと、前記デバイスド
ライバと前記アプリケーションプログラムの各プロセス
との間に設けられ、前記各プロセスに対応する第1のカ
ウンタ、および前記各デバイスドライバに対応する第2
のカウンタを備えた仮想デバイスドライバとを具備し、
前記プロセスは前記第1のカウンタにある値を設定し、
前記デバイスドライバはデバイスから割り込みを受けた
ときに前記第2のカウンタをインクリメントし、前記仮
想デバイスドライバは前記第2のカウンタの値が前記第
1のカウンタの値と一致したときに前記アプリケーショ
ンプログラムに通知することを特徴とする。
【0011】
【作用】本発明によれば、UNIX上のシステムにおい
て、デバイスドライバとカーネルとの間に、カウンタを
備えた仮想デバイスドライバを追加し、カウンタ値を媒
介としてデバイスドライバとアプリケーションプログラ
ムとの通信を行うので、UNIXのカーネルを改造する
ことなく、UNIXのシグナル機能よりも融通性に富ん
だインターフェースを、デバイスドライバとアプリケー
ションプログラムとの間に確立することができる。
【0012】
【実施例】次に、本発明の実施例を詳細に説明する。
【0013】図2は、本発明が適用される焼却炉の制御
システムの構成を示すブロック図である。
【0014】図において、焼却炉50には、温度センサ
52と圧力センサ54とが取り付けられ、焼却炉50の
温度と圧力とを監視している。焼却炉50に温度の異常
(高温、低温)が発生すると、温度センサ52の接点が
オンとなり、圧力の異常(高圧、低圧)が生じると、圧
力センサ54の接点がオンとなる。これらの出力は、制
御装置60のDIボード62および64を介してコンピ
ュータ66に送られる。コンピュータ66は、DOボー
ド68を介してパトライト69を点滅制御する。
【0015】図3は、この制御システムのソフト構成を
示すブロック図である。ハードウェア40は、具体的に
は、DIボード62,64、およびDOボード68であ
り、デバイスドライバ70の制御を受ける。
【0016】デバイスドライバ70は、各ハードウェア
40と1対1に対応するソフトウェアであり、各ハード
ウェアに命令を出して、その動作を制御する。また、ハ
ードウェア40からの割り込みが生じた場合、カーネル
30の割り込みルーチンから、制御を受けついで、仮想
デバイスドライバ80に通知する。このため、デバイス
ドライバ70は、図1のデバイスドライバ20に、仮想
デバイスドライバ80とのインターフェース部72を付
加した形をとっている。
【0017】仮想デバイスドライバ80は、本発明で新
たに設けられたもので、図4に示すテーブル構造をもっ
ている。すなわち、各ハードウェア40ごとに、デバイ
ス管理テーブル82をもち、各デバイス管理テーブル8
2には、アプリケーションプログラム10中のN個のプ
ロセスにそれぞれ対応するN個のプロセス管理テーブル
84が接続されている。各デバイス管理テーブル82
は、管理するデバイスのデバイス番号や、プロセス管理
テーブル84へのポインタ、2つのベースカウンタ8
6,87などを備えている。仮想デバイスドライバ80
は、対応デバイスからの割り込みの種類に応じて、ベー
スカウンタ86または87のいずれかをインクリメント
する。
【0018】各プロセス管理テーブル84は、各プロセ
スのプロセス番号、次のプロセス管理テーブルへのポイ
ンタ、プロセス構造体90へのポインタ、および2つの
プロセス用カウンタ88,89などを備えている。プロ
セス用カウンタ88,89は、このプロセス管理テーブ
ルに対応するプロセスから書き込み可能である。したが
って、プロセスは、このプロセス用カウンタ88,89
に任意の値を設定することができる。プロセス構造体9
0は、各プロセスのヘッダに相当するものであり、ユー
ザ用のシグナルフラグをもっている。このフラグをオン
にすると、このプロセスのプロセススイッチ時に本プロ
セスが登録した処理ルーチンを起動することができる。
仮想デバイスドライバ80は、UNIXのカーネル30
を通してアプリケーションプログラム10に接続されて
いる。
【0019】図5は、デバイスドライバ70、仮想デバ
イスドライバ80、およびアプリケーションプログラム
10の相互関係を示す図である。
【0020】システム初期化時において、デバイスドラ
イバ70は、仮想デバイスドライバ80に対して、デバ
イス管理テーブル82の確保要求を行う(ステップS
1)。仮想デバイスドライバ80は、この要求に応え
て、デバイス管理テーブル82を確保する(ステップS
2)。次いで、デバイスドライバ70は、仮想デバイス
ドライバ80に対して、デバイス管理テーブル82の設
定要求を行う(ステップS3)。仮想デバイスドライバ
80は、この要求に応えて、デバイス管理テーブル82
を設定する(ステップS4)。こうして、システム初期
化時に、仮想デバイスドライバ80内のテーブル構造が
設定される。ただし、この段階では、プロセス管理テー
ブル84の内容の書き込みや、プロセス管理テーブル8
4のデバイス管理テーブル82への接続は行わない。
【0021】次に、システム運用時には、ステップS5
−S15の動作が行われる。
【0022】先ず、ステップS5−S6において、デバ
イスドライバ70とアプリケーションプログラム10と
のカウンタ通信インターフェースを確立する。すなわ
ち、ステップS5において、アプリケーションプログラ
ム10は、仮想デバイスドライバ80に対して、デバイ
スドライバ70とアプリケーションプログラム10との
カウンタ通信インターフェースの確立を要求する。これ
によって、仮想デバイスドライバ80は、プロセス管理
テーブル84に必要なデータを書き込んで、これらのテ
ーブル84を作成するとともに、デバイス管理テーブル
82への接続を行う(ステップS6)。ただし、この段
階では、プロセス用カウンタ88,89への書き込みは
行わない。
【0023】デバイスドライバ70とのカウンタ通信イ
ンターフェースが確立すると、アプリケーションプログ
ラム10は、ステップS8において、カウンタ値に基づ
いて実行されるプロセスを登録するように、仮想デバイ
スドライバ80に対して要求する。具体的には、仮想デ
バイスドライバ80に対して、このプロセスのプロセス
用カウンタ88または89の値を指定し、それをカウン
タに書き込むように要求する。このカウンタ値は、プロ
セスが実行する処理に応じて決められる。たとえば、温
度異常を5回検出したときに、アプリケーションプログ
ラム10中の異常処理プロセスが起動されるようにする
には、この異常処理プロセスのプロセス管理テーブル中
のプロセス用カウンタ88を5にセットする。また、ア
プリケーションプログラム10は、仮想デバイスドライ
バ80に対して、このプロセスが同期処理を行うか、非
同期処理を行うかを指定する。この指定は、後述のステ
ップS12で必要となるものである。
【0024】アプリケーションプログラム10からの要
求を受けた仮想デバイスドライバ80は、ステップS9
において、対応プロセスのプロセス管理テーブル84の
プロセス用カウンタ88(または89)に、アプリケー
ションプログラム10が指定したカウンタ値を設定す
る。こうして、アプリケーションプログラム10は、仮
想デバイスドライバ80からの通知を受けることのでき
る状態となる。
【0025】デバイスドライバ70は、ハードウェア4
0からの割り込みが発生する毎に、仮想デバイスドライ
バ80に通知する(ステップS10)。仮想デバイスド
ライバ80は、この通知を受けると、デバイス管理テー
ブル82のベースカウンタ86(または87)のカウン
タ値をインクリメントする(ステップS11)。
【0026】次いで、ステップS12において、仮想デ
バイスドライバ80は、ベースカウンタ86のカウンタ
値とプロセス用カウンタ88のカウンタ値とを比較し、
両カウンタの値が同一である場合には、次の処理を行
う。すなわち、要求プロセスが同期処理を行っている場
合は、スリープ(sleep)中のプロセスを起動し、
要求プロセスが非同期処理を行っている場合は、このプ
ロセス管理テーブルに接続されているプロセス構造体9
0のユーザ用シグナルフラグをオンに設定する。アプリ
ケーションプログラム10は、仮想デバイスドライバ8
0からの通知を受けると、ステップS8で登録したプロ
セスを実行する(ステップS13)。すなわち、同期処
理の場合は、起動されたプロセスが待状態からプログラ
ムの実行状態に移る。一方、非同期処理の場合は、ユー
ザ用シグナルフラグがオンになったことを検知し、あら
かじめ定められた処理を実行する。アプリケーションプ
ログラム10の処理が終了すると(ステップS14)、
仮想デバイスドライバ80に終了通知が送られる。仮想
デバイスドライバ80は、すべてのプロセス管理テーブ
ル84を消去して(ステップS15)、処理を終了す
る。
【0027】図6は、このようなプロセス通信制御方式
を、図2の焼却炉の制御に適用した場合の動作を示すフ
ローチャートである。
【0028】ステップS21において、上記ステップS
8と同様にして、焼却炉の温度異常が発生した場合の処
理を実行するプロセス(異常処理プロセス)を登録す
る。同様に、ステップS22において、焼却炉の圧力異
常が発生した場合の処理を実行するプロセスを登録す
る。この状態で、焼却炉の温度監視および圧力監視を連
続的に行い(ステップS23およびS25)、温度異常
または圧力異常が発生したならば(ステップS24およ
びS26)、パトライト69を点灯する。この処理は、
図5を参照して、すでに説明したようにして実行され
る。この場合、使用するカウンタの種類(カウンタ88
を使うか89を使うか)や、設定するカウント値を変え
ることによって、融通性に富んだ制御を行うことができ
る。
【0029】なお、上述した実施例では、ベースカウン
タおよびプロセス用カウンタの数を2つとしたが、これ
らの数を増やすことによって、デバイスからのさらに多
くの事象に対処することが可能となる。また、焼却炉の
制御だけでなく、UNIX上に構築されたあらゆるシス
テムに適用することができる。
【0030】
【発明の効果】以上説明したように、本発明によれば、
UNIX上のシステムにおいて、デバイスドライバとカ
ーネルとの間に仮想デバイスドライバを追加するだけ
で、UNIXのカーネルを改造することなく、UNIX
のシグナル機能よりも融通性に富んだインターフェース
を、デバイスドライバとアプリケーションプログラムと
の間に確立することができる。
【図面の簡単な説明】
【図1】従来のプロセス通信制御方式を説明するための
ブロック図である。
【図2】本発明が適用される焼却炉の制御システムの構
成を示すブロック図である。
【図3】図2に示す制御システムのソフト構成を示すブ
ロック図である。
【図4】図2の仮想デバイスドライバ内のテーブル構造
を示すブロック図である。
【図5】デバイスドライバ70、仮想デバイスドライバ
80、およびアプリケーションプログラム10の動作の
相互関係を示す図である。
【図6】本発明によるプロセス通信制御方式を、図2の
焼却炉の制御に適用した場合の動作を示すフローチャー
トである。
【符号の説明】
10 アプリケーションプログラム 20 デバイスドライバ 30 カーネル 40 ハードウェア 50 焼却炉 52 温度センサ 54 圧力センサ 60 制御システム 62,64 DIボード 66 コンピュータ 68 DOボード 69 パトライト 70 デバイスドライバ 72 デバイスドライバと仮想デバイスドライバとのイ
ンターフェース部 80 仮想デバイスドライバ 82 デバイス管理テーブル 84 プロセス管理テーブル 86 ベースカウンタ1 87 ベースカウンタ2 88 プロセス用カウンタ1 89 プロセス用カウンタ2 90 プロセス構造体

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 マルチタスク機能を備えたオペレーティ
    ングシステムと、その上で動作するデバイスドライバと
    を有する計算機システムにおいて、 複数のプロセスを有するアプリケーションプログラム
    と、 前記デバイスドライバと前記アプリケーションプログラ
    ムの各プロセスとの間に設けられ、前記各プロセスに対
    応する第1のカウンタ、および前記各デバイスドライバ
    に対応する第2のカウンタを備えた仮想デバイスドライ
    バとを具備し、 前記プロセスは前記第1のカウンタにある値を設定し、
    前記デバイスドライバはデバイスから割り込みを受けた
    ときに前記第2のカウンタをインクリメントし、前記仮
    想デバイスドライバは前記第2のカウンタの値が前記第
    1のカウンタの値と一致したときに前記アプリケーショ
    ンプログラムに通知することを特徴とするプロセス通信
    制御装置。
  2. 【請求項2】 マルチタスク機能を備えたオペレーティ
    ングシステムと、その上で動作するデバイスドライバ
    と、複数のプロセスを有するアプリケーションプログラ
    ムとを有する計算機システムにおいて、 前記プロセスが、第1のカウンタにある値を設定する過
    程と、 前記デバイスドライバが、デバイスから割り込みを受け
    たときに、第2のカウンタをインクリメントする過程
    と、 前記第2のカウンタの値が前記第1のカウンタの値と一
    致したときに前記アプリケーションプログラムに通知す
    る過程とを具備することを特徴とするプロセス通信制御
    方法。
JP15935393A 1993-06-29 1993-06-29 プロセス通信制御装置および方法 Pending JPH0713778A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15935393A JPH0713778A (ja) 1993-06-29 1993-06-29 プロセス通信制御装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15935393A JPH0713778A (ja) 1993-06-29 1993-06-29 プロセス通信制御装置および方法

Publications (1)

Publication Number Publication Date
JPH0713778A true JPH0713778A (ja) 1995-01-17

Family

ID=15691996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15935393A Pending JPH0713778A (ja) 1993-06-29 1993-06-29 プロセス通信制御装置および方法

Country Status (1)

Country Link
JP (1) JPH0713778A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030065911A (ko) * 2002-02-01 2003-08-09 삼성전자주식회사 임베디드 시스템에서 사용자 어플리케이션과 디바이스드라이버간의 독립성을 보장하는 인터페이스 방법
JP2010257099A (ja) * 2009-04-23 2010-11-11 Fujitsu Ltd ドライバ・プログラム、デバイス管理方法及びコンピュータ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030065911A (ko) * 2002-02-01 2003-08-09 삼성전자주식회사 임베디드 시스템에서 사용자 어플리케이션과 디바이스드라이버간의 독립성을 보장하는 인터페이스 방법
JP2010257099A (ja) * 2009-04-23 2010-11-11 Fujitsu Ltd ドライバ・プログラム、デバイス管理方法及びコンピュータ装置

Similar Documents

Publication Publication Date Title
JP3600095B2 (ja) 割り込み管理装置及び割り込み管理方法
WO1997010549A1 (fr) Systeme de calcul electronique
US7523229B2 (en) Memory protection during direct memory access
JPH04256030A (ja) 情報処理装置の割り込み方式
JPH02230455A (ja) 外部記憶装置の割込み制御方式
JPH02156334A (ja) 情報処理装置
JPS62184544A (ja) 仮想計算機システム
EP0290942B1 (en) Guest machine execution control system for virtual machine system
JPH0713778A (ja) プロセス通信制御装置および方法
JP2823230B2 (ja) 処理の継続実行方法
JPH04227547A (ja) 情報処理装置
JPH0212531A (ja) 仮想計算機の割込み制御方式
JP2746796B2 (ja) ハードウェアシステム試験のi/o管理システムと、そのi/o管理方法
JPS61184644A (ja) 仮想計算機システム制御方式
JPH04251340A (ja) 情報処理装置の保守制御方法
JPH0283743A (ja) 情報処理装置
JPS6349944A (ja) 演算処理装置
JPS6394339A (ja) 仮想計算機システム
JPH0370810B2 (ja)
JPH05337854A (ja) ロボット制御装置
JPS6349946A (ja) 演算処理装置
JPS6349942A (ja) 演算処理装置
JPH02184935A (ja) デバッガの入出力支援方法
JPH01185733A (ja) 入出力エミュレーション方式
JPS6349941A (ja) 演算処理装置