JPH05127928A - サービス・リクエスト処理方法 - Google Patents

サービス・リクエスト処理方法

Info

Publication number
JPH05127928A
JPH05127928A JP4118062A JP11806292A JPH05127928A JP H05127928 A JPH05127928 A JP H05127928A JP 4118062 A JP4118062 A JP 4118062A JP 11806292 A JP11806292 A JP 11806292A JP H05127928 A JPH05127928 A JP H05127928A
Authority
JP
Japan
Prior art keywords
icon
block
thread
processing
service request
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.)
Granted
Application number
JP4118062A
Other languages
English (en)
Other versions
JP3313396B2 (ja
Inventor
Douglas C Beethe
ダグラス・シー・ビース
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 JPH05127928A publication Critical patent/JPH05127928A/ja
Application granted granted Critical
Publication of JP3313396B2 publication Critical patent/JP3313396B2/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】アイコン・ネットワーク・システムでサービス
・リクエスト等の非同期事象も記述できるようにする。 【構成】このアイコン・ネットワークには時分割で実行
される複数のスレッドが存在でき、またサービス・リク
エスト(SRQ)を待つアイコンを書くことができる。
サービス・リクエストを受信すると(420)、SRQ
待ちになっているスレッドを探し、もしあった場合には
その優先順位を最大にする(422)。これによって、
SRQの処理をアイコン・ネットワーク中に記述し実行
することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ・システム
に関するものであり、とりわけアイコン式プログラミン
グ・システム(iconic programming system)に関する
ものである。更に具体的には本発明はこのようなシステ
ムにおける各アイコンの処理順序の決定に関するもので
ある。
【0002】
【従来技術及びその問題点】アイコン式プログラミング
・システムは、ツールのグラフィクス・イメージ(アイ
コン)を接続線と共に接続して有向グラフを形成し、ソ
フトウエア・プログラムを表したアイコン・ネットワー
ク(iconic network)を生成することによってプログラ
ミングが行われる「プログラミング不要」環境である。
アイコン式プログラミング・システムは、システムや装
置のテストのためいくつかの異なる電子測定器が接続さ
れる研究/開発テスト環境で使うことができる。このよ
うなシステムのプログラミングには、システムとして動
作させるため、各種測定器に所望の機能を実行させる命
令が必要になる。
【0003】アイコン式プログラミング・システムを使
用するときには、各測定器はグラフィクス・オブジェク
トとも呼ばれるグラフィクス・アイコンによって表さ
れ、測定器間の接続はグラフィクス・イメージ間の線に
よって表される。このようなシステム中で、測定器を表
すグラフィクス・アイコン以外に、ルーピング、IF−
THENステートメント等のようなプログラミング機能
のためのグラフィクス・アイコンも与えられる。ユーザ
は、測定器アイコンとプログラミング・アイコンを組み
合わせることによって、いくつかの測定器のプログラム
された動作に関するアイコン・ネットワークを生成する
ことができる。
【0004】アイコン・システムは、どのアイコンの処
理が他のアイコンより先に実行されるかという順序を特
定せずに処理を行うように設計されている。ただし、各
アイコンは自分の処理に必要な全てのデータが使えるよ
うになるまでは通常は処理を行わないようになってい
る。いくつかのアイコンが全てのデータを入手した場
合、それらのアイコンは同時に処理を行うことが可能で
ある。現実の世界の測定器を使って使って動作し、また
単一プロセッサ上で動作するアイコン・システムを作成
するには、そこにおけるアイコンは何らかの定義された
順序で処理を行う必要がある。アイコンの処理順序の定
義の1つが、データ・フロー・ダイヤグラムに関連する
従来の規則によって与えられる。
【0005】しかしながら、このようなシステムの重大
な限界は、データ・フロー・ダイヤグラムの従来の規則
では、割り込みやサービス・リクエストのような非同期
操作への手当がないという点である。アイコン・システ
ムが現実の世界の装置に用いられる場合、例えばアイコ
ン式プログラミング・システムの処理を行うコンピュー
タが信号発生器または電圧計のような外部装置に接続さ
れる場合、この接続はコンピュータ内のインターフェイ
ス・カード(回路)によって行われる。このようなイン
ターフェイスの1つに、ヒューレット・パッカード・イ
ンターフェイス・バス(HPIB)としても知られるI
EEE488バスがある。このような現実の世界の装置
の1つがホスト・コンピュータからのサービスを要求す
る状態を検出すると、この装置はバス上でサービス・リ
クエスト(SRQ)イベントを開始し、ホスト・コンピ
ュータに通知する。これらの状態はごく短い時間しか起
こらないかもしれず、またサービスを要求する装置はサ
ービスを受けるまで他の機能を果たすことができないと
いう場合が良くあるので、アイコン式プログラミング・
システムはこれらのサービス・リクエストを処理する方
法を提供しなければならない。
【0006】また、装置内のサービス・リクエストはそ
の装置にアクセスすることによってクリアされることが
ある。従ってアイコン式プログラミング・システムは、
サービス・リクエストが所望のサービス・リクエスト・
スレッドによって処理できるようになる前には、その装
置に対して余計な参照を行うことが絶対にないようにし
なければならない。
【0007】例えばマルチタスク・オペレーティング・
システムのような先行技術によるシステムには、サービ
ス・リクエストの処理と類似しているところの割り込み
の処理を行うように設計されたものもある。ただし、こ
のようなシステムでは、割り込みサービス・ルーチンに
高い優先順位が与えられるだけで、割り込みサービス・
ルーチンがアイドル状態になると、他の処理が続行され
るのが普通である。従ってこのようなアイドル期間中は
このシステムの他の処理によってこの装置が参照される
可能性があり、それにより、割り込みサービス・ルーチ
ンの処理を受ける前にクリアされる可能性がある。
【0008】この技術においては、アイコン・システム
のプログラマがサービス・リクエストの処理を行うため
の方法を提供する必要がある。更にこのようなシステム
は、他の処理を一時停止してサービス・リクエストを即
座に処理する必要がある。本発明はこれらの必要を満た
すものである。
【0009】下記の米国特許出願にはアイコン・ネット
ワーク・システムのさまざまな特徴及び構成要素に関す
る開示がある。 (A)1990年2月22日にBailey、Beethe、Wolber
及びWilliamsにより出願された出願第07/483,4
78号、PROGRMMING ESCAPE FROM AN ICONICSYSTEM19
90年2月22日に提出の出願第07/483,478
号、 (B)1991年2月28日にWolberにより出願された
出願第07/661,936号、LINE PROBE IN AN ICO
NIC PROGRAMMING SYSTEM (C)1991年3月12日にWolber及びBeetheにより
出願された出願第07/668,286号INPUT AND OU
TPUT CONSTRAINTS ON DEVICES IN AN ICONIC PROGRAMMI
NG SYSTEM (D)1991年3月12日にWolber及びBeetheにより
出願された出願第07/668,285号A SYSTEM FOR
ENTERING AND MODIFYING VARIABLE NAMES FORTERMIALS
OF ICONS IN AN ICONIC PROGRAMMING SYSTEM
【0010】
【目的】本発明の目的はアイコン式プログラミング・シ
ステムにサービス・リクエスト処理を組み込むための手
段をもたらすシステムを提供することである。
【0011】本発明のもう1つの目的はこのような手段
をアイコン化された装置の形で提供することである。
【0012】本発明のもう1つの目的は、アイコン・シ
ステムのプログラマがインターフェイス・カードのサー
ビス・リクエストを検出してこれに応答するため、その
インターフェイス・カードのモニタを行うアイコン・プ
ログラムを生成できるようにするシステムを提供するこ
とである。
【0013】本発明の更にもう1つの目的は、サービス
・リクエストが生じたとき、アイコン装置に対して、ア
イコン・プログラミング・システムによる排他的制御を
行うことである。
【0014】
【概要】本発明の以上の及びその他の目的は、アイコン
・ネットワークのスレッドに「SRQ待ち」アイコン
(wait for service request (SRQ) icon)を置くこと
のできるアイコン式プログラミング・システム・プロセ
スによって達成される。SRQ待ちが入っているスレッ
ドを含むスレッドのそれぞれについて、保留待ち行列
(pending queue)及び処理済みスタック(done stac
k)が生成される。スレッド内で1つあるいはもっと多
くの開始アイコンが見つかると、それらを実行開始の保
留待ち行列に入れることによって開始アイコンのスケジ
ューリングが行われる。フィードバック・ループがな
く、また開始アイコンもない場合、スレッドの全てのア
イコンがランダムな順序で保留待ち行列に入れられる。
保留待ち行列が確立されると、このシステム内の第1の
スレッドの保留待ち行列内の先頭のアイコンを選択する
ことによって、実行が開始される。
【0015】各アイコンを処理する毎に、アイコン式プ
ログラミング・システムは保留中のサービス・リクエス
トがないかどうかチェックする。あるサービス・リクエ
ストが保留されている場合、SRQ待ちアイコンによっ
てホストされるサブスレッドが最も高い優先順位にセッ
トされている。この結果、SRQ待ちアイコンによって
ホストされるサブスレッドの処理が行われる間、他の全
てのスレッドの処理が一時停止される。SRQ待ちアイ
コンによってホストされるサブスレッドの処理が完了す
ると、他のスレッドの処理が続行される。
【0016】
【実施例】以下の説明は現在のとこる最良と考えられる
本発明の実施態様である。この説明は制限の意味にとる
べきではなく、単に、本発明の一般原理を解説するため
のものにすぎない。本発明の範囲は付属の請求項を基準
に判定するのが望ましい。
【0017】図1には本発明を取り入れたコンピュータ
・システムのブロック図が示されている。ここで図1を
参照すると、コンピュータ・システム100にはシステ
ム・バス104を介してシステムの他の構成要素とつな
がった処理要素102が含まれている。ユーザは、キー
・ボード106を使ってテキスト・データをシステムに
入力し、またマウス110を使ってグラフィクス・デー
タをシステムに入力することができる。このコンピュー
タ・システムは、グラフィクス・ディスプレイ108を
使ってユーザに対してテキスト及びグラフィクス情報を
出力することができる。コンピュータ・システム100
は、ディスク112を用いて、アイコン式プログラミン
グ・システム環境のソフトウエア並びにユーザが定義し
たアイコン・ネットワークを記憶することができる。ア
イコン式プログラミング・システムは、バス116、一
般にはIEEE488バスを用いて、テスト用測定器と
通信することができる。メモリ114はアイコン式プロ
グラミング環境のソフトウエアとユーザ・データを入れ
ておくのに使用される。マルチタスク・オペレーティン
グ・システム120はここではタスク122及びタスク
124で示されている、プロセスとも呼ばれる複数のタ
スクを有することができる。タスク122は、図示した
ように、本発明のアイコン式プログラミング・プロセス
を含んでいる。
【0018】図2にはオーディオ・フィルタをテストす
るためのアイコン・ネットワークが示されている。ここ
で図2を参照すると、有向グラフであるアイコン・ネッ
トワーク202は、そのシーケンス出力205が繰り返
しアイコン206のシーケンス入力207に接続された
開始アイコン204を有する。繰り返しアイコン206
のデータ出力220は周波数発生器(FGEN)アイコ
ン210のデータ入力226に接続されている。データ
出力220はX−Yディスプレイ216のX入力222
にも接続されている。周波発生器アイコン210のシー
ケンス出力232はディジタル電圧計アイコン212の
シーケンス入力234に接続されている。ディジタル電
圧計アイコン212はレンジ・セレクタ・スイッチ21
4のデータ出力228から接続されているデータ入力2
30を持っている。ディジタル電圧計212のデータ出
力223はX−Yディスプレイ216のY入力224に
接続されている。
【0019】FGENアイコン210はテストを受ける
オーディオ・フィルタ(図示せず)の入力に接続された
現実の外部掃引周波数発生器を表している。ディジタル
電圧計アイコン212はテストを受けるオーディオ・フ
ィルタの出力に接続された現実の外部ディジタル電圧計
を表している。アイコン式プログラミング・システム
は、測定器バス116を介して、これらの現実の装置を
制御する。開始アイコン204が起動すると、繰り返し
アイコン206にシーケンス信号が送られ、繰り返しル
ープが開始される。最初の繰り返しにおいて、繰り返し
アイコン206はデータ出力220を介してデータ値”
100”を周波数発生器210に送る。これによって、
オーディオ・フィルタに接続された現実の周波数発生器
から100Hzの周波数が出力される。周波数発生器
は、100Hzの周波数を出力した後、その信号が出力
されたことをFGENアイコン210に知らせ、FGE
Nアイコン210はシーケンス出力232を介してディ
ジタル電圧計アイコン212のシーケンス入力にシーケ
ンス信号を送る。ディジタル電圧計アイコン212は、
レンジ・スイッチ214からレンジ・セッティングを得
ると、外部ディジタル電圧計に信号を送り、テストを受
けるオーディオ・フィルタの出力を読み取らせる。測定
器バス116を介してディジタル電圧計から読み取った
出力は、データ出力223を介してX−Yディスプレイ
のY入力224に送られる。X−Yディスプレイはデー
タ入力222で100HzのX入力を、またデータ入力
224でディジタル電圧計の読み取り値が入っているY
入力を受信しているので、X−Yディスプレイ上に1つ
の点をプロットする。この最初の繰り返しが完了する
と、繰り返しアイコン206が周波数を100Hzだけ
ステップさせ、データ出力220に200Hzの周波数
を出力する。上述のステップが同じシーケンスで働き、
第2のプロット点がX−Yディスプレイ216によって
プロットされる。繰り返しアイコン206が1000H
zの周波数に達するまでこの動作が続けられる。その時
点において、プロットされた多数の点によりグラフ21
8がX−Yディスプレイに描かれる。次に繰り返しアイ
コン206が終了アイコン208にシーケンス信号を送
り、処理が終了する。
【0020】表1にはグラフィクス・ネットワークにお
ける全てのアイコンが従わなければならないアイコン装
置の規則が示されている。表2にはグラフィクス・ネッ
トワーク内の特定のスレッド上のアイコンの処理に関連
した規則が示されている。これらの規則については、グ
ラフィクス・ネットワークにおけるアイコンの分析及び
実行のプロセスを解説した後掲のフロー・チャートにも
っとよく説明されている。
【0021】図3には本発明の実行前(pre-run)プロ
セスに関するフロー・チャートが示されている。このフ
ロー・チャートは、ユーザが実行コマンドを入力した
際、あるいはグラフィクス入力装置110(図1)を用
いてグラフィクス・ネットワーク中の開始アイコンを
「押した」際には、必ず呼び出される。次に図3を参照
すると、ここに入った後、ブロック302においてアイ
コン装置規則1(表1)を満たすため、全てのアイコン
の全ての入力ピンが接続されているか否かが確かめられ
る。接続されていない入力があれば、ブロック302か
らブロック316に移行し、エラー・メッセージを表示
してリターンする。全ての入力ピンが接続されている場
合にはブロック302からブロック304に移行し、ア
イコン装置規則の規則2(表1)が満たされているか否
かを判定するため、入力に多重接続があるか否かが確か
められる。いずれかの入力に多重接続があれば、ブロッ
ク304からブロック316に移行し、エラー・メッセ
ージを表示してからリターンする。どの入力ピンにも複
数のの接続がなければ、ブロック304からブロック3
06に移行し、グラフィクス・ネットワークに開始アイ
コンが存在するか否かが確かめられる。開始アイコンが
存在すれば、ブロック306からブロック308に移行
する。このブロックでは、スレッド規則(表2)の内
の、全ての開始アイコンをスレッド中の他のいかなる装
置よりも先に起動(処理)しなければならないというこ
とを定義したスレッド規則6の部分を満たすため、開始
アイコンをそれぞれのスレッドの保留待ち行列に入れて
開始アイコンをスケジューリングする。開始アイコンが
存在しなければ、ブロック306からブロック310に
移行し、チェックを行って、アイコンに対するフィード
・バック入力が存在するか否かが確かめられる。ブロッ
ク306において、開始アイコンの存在しないことが既
に確かめられているので、フィード・バック入力が存在
する場合、ブロック310からブロック316に移行
し、スレッド規則5(表2)を満たすため、エラー・メ
ッセージが表示される。フィード・バック入力が存在し
ない場合は、ブロック310からブロック312に移行
する。グラフには開始アイコンが見つからず、またフィ
ード・バック・ループも見つからなかったので、ブロッ
ク312では、スレッド規則7(表2)を満たすため、
グラフの全てのアイコンが同時に開始待ち行列に入れら
れる。次にブロック312からブロック314に移行
し、図4を呼び出して、グラフ内のアイコンの処理を行
う。グラフィクス・ネットワークの処理が完了すると、
図4の処理はリターンし、次にブロック314から呼び
出し元に戻る。
【0022】図4には実行プロセスのフロー・チャート
が示されている。このプロセスは、図3においてグラフ
の処理が可能であると判定された後、図3によって呼び
出される。ここで図4を参照すると、ここにに入った
後、ブロック401においてスレッドの初期設定を行
い、全ての処理フラグをリセットしてアイコンがまだ起
動されていないことを示す。ブロック420においてサ
ービス・リクエストがアクティブであるか否かの判定が
行われ、アクティブであればブロック420からブロッ
ク422に移行する。ブロック422において、アクテ
ィブになっているSRQ待ちアイコンを有するスレッド
を見つけ出し、このスレッドを選択して直接にブロック
404に移行することによって、このスレッドの優先順
位を最高にする。保留中のサービス・リクエストがなけ
れば、ブロック420からブロック404に移行する。
ブロック404はグラフィクス・ネットワーク内におけ
る最初の(または次の)スレッドを指示する。グラフィ
クス・ネットワークの各スレッドはそれ自身の保留待ち
行列及びそれ自身の処理済みスタックを有しており、こ
れら2つのデータ構造によって、次に処理するのがグラ
フ内のどのアイコンになるかが判定される。スレッド規
則8を満たすため、グラフィクス・ネットワークに複数
のスレッドが存在する場合、これらのスレッドの処理は
ラウンド・ロビン・スタイルで行われ、各サイクルで各
スレッドで1つずつのアイコン処理が行われる。最初の
スレッドまたは次のスレッドを指示した後、ブロック4
02からブロック404に移行し、そのスレッドに関す
る保留待ち行列が空か否かが判定される。待ち行列が空
でなければ、ブロック404からブロック406に移行
し、そのスレッドに関する待ち行列から最初のアイコン
が取り出される。次にブロック408において図5を呼
び出し、保留待ち行列から取出されたばかりのアイコン
が処理される(起動される)。そのアイコンの処理が済
むと、図5からブロック420に戻り、保留中のサービ
ス・リクエストがなければ、制御はブロック402に移
行して次のスレッドを指示する。
【0023】特定のスレッドに関する保留待ち行列が空
の場合、ブロック404からブロック410に移行し、
そのスレッドに関する処理済みスタックが空か否かの判
定が行われる。処理済みスタックが空でなければ、ブロ
ック410からブロック412に移行し、処理済みスタ
ックからその一番上にあるアイコンがポップアップさ
れ、次にブロック414において、このアイコンがシー
ケンス出力を持っているか否かが確かめられる。このア
イコンがシーケンス出力を持っていなければ、ブロック
414からブロック410に戻り、もう一度処理済みス
タックのチェックが行われる。ポップアップされたアイ
コンがシーケンス出力を持っている場合は、ブロック4
14からブロック415に移行して、そのシーケンス出
力に接続された全てのアイコンにシーケンス信号を送
り、次にブロック416において、このシーケンス出力
に接続された各アイコンを取り出してそのスレッドに関
する保留待ち行列に入れる。このブロックでは、装置規
則5(表1)を満たすために、通常の出力線に沿ってで
きるだけ遠くまで伝搬を行った後に全てのアイコンのシ
ーケンス出力を付勢することによって、装置規則5(表
1)が満たされる。ブロック410において、特定のス
レッドに関する処理済みスタックが空と判定された場
合、ブロック418に移行して、チェックを行い、全て
のスレッドについて処理が完了したか否かが確認され
る。スレッドが依然として処理中の場合には、ブロック
418からブロック420に戻り、そのスレッドの処理
が続行される。全てのスレッドが完了するとブロック4
18から図3にリターンする。
【0024】図5にはアイコンを処理する(起動する)
方法のフロー・チャートが示されている。次に図5を参
照すると、ここ入った後、ブロック501において処理
済みフラグ(processed flag)のチェックが行われ、こ
のフラグがセットされていれば、アイコンは1度だけし
か処理されないことから、制御がブロック518に移行
する。処理済みフラグがセットされていなければブロッ
ク501からブロック502に移行し、アイコンに対し
てシーケンス入力が接続されているか否かが判定され
る。シーケンス入力が接続されていれば、装置規則4
(表1)の定義によって、シーケンス入力で信号を受信
した場合に限り、装置の処理(実行)が可能になる。従
ってシーケンス入力が接続されている場合、ブロック5
02からブロック504に移行して、シーケンス入力に
おいて信号を受信したか否かが確かめられる。シーケン
ス入力がまだ信号を受信していなければこのアイコンを
処理することはできず、従ってブロック504からブロ
ック508に移行してシーケンス信号を送り出していな
いアイコンを保留待ち行列に入れ、保留待ち行列からい
ままで処理中だったアイコンを除去してから図4に戻
る。シーケンス信号を受信していた場合にはブロック5
04からブロック506に移行する。
【0025】シーケンス入力が接続されていない場合に
はブロック502からブロック506に移行し、装置規
則3が満たされているか否かを判定するため、全ての入
力データ・ピンでデータが受信されているか否かの確認
が行われる。1つまたは複数の入力ピンでデータがまだ
受信されていなければ、ブロック506からブロック5
08に移行する。ブロック508では、スレッド規則3
を満たすため、まだデータを供給していないアイコンを
「引き込(pull)」もうとする。この引き込みは、
このアイコンに対してデータをまだ供給していない全て
のアイコンをこのスレッドに関する保留待ち行列に入れ
ることによって行われる。次にブロック508からブロ
ック518に移行し、保留待ち行列からいままで処理中
だったアイコンが除去される。このアイコンは「引き込
み」中のアイコンの処理が済むと保留待ち行列に再び現
れる。
【0026】全ての入力ピンでデータ受信が完了してい
る場合は、ブロック506からブロック510に移行
し、アイコンの機能が実行される。また、シーケンス入
力で信号を受信していた場合は、ブロック504からブ
ロック510に移行する。アイコンが繰り返しアイコン
の場合は、ブロック510において、この繰り返しアイ
コンのデータ出力に接続された全てのアイコンについて
の仮想サブスレッドが生成される。繰り返しアイコンを
含む(ホストする)スレッドの処理が阻止され、仮想サ
ブスレッド中の全てのアイコンの処理済みフラグをリセ
ットして仮想サブスレッドが初期設定される。次に仮想
サブスレッドは処理が完了するまで実行され、その後繰
り返しスレッド(ホスト・スレッド)の処理の阻止が解
除される。
【0027】アイコンがサブプログラムを実行するアイ
コンの場合は、サブプログラム(呼び出し元)アイコン
を含むスレッドの処理が阻止され、サブスレッド中の全
てのアイコンの処理済みフラグをリセットしてサブスレ
ッドが初期設定される。次にサブスレッドは処理が完了
するまで実行され、その後サブプログラム(呼び出し
元)スレッドの処理の阻止が解除される。
【0028】この機能が実行された後、当該アイコンが
2回処理されないようにブロック510でそのアイコン
に関する処理済みフラグがセットされ、ブロック512
に移行する。ブロック512では、データ出力ピンに接
続された全てのアイコンに対して、そのアイコンの機能
を処理することによって生成された出力データが送られ
る。次にブロック514では、データ出力に接続された
全てのアイコンについて、それらがまだ待ち行列に入っ
ておらず、また処理済みスタックにも入っていなけれ
ば、そのスレッドに関する保留待ち行列にこのアイコン
を入れることによってそのスケジューリングが行われ
る。アイコンが複数の出力ピンを持っている場合、最初
に上側のピンに接続されたアイコンを待ち行列に入れ、
次にすぐ下に続くピンを入れ、・・・のような形で行わ
れる。同じピンに接続された複数のアイコンを待ち行列
に入れる順序は定義されておらず、どのような順序でも
そこに入れる可能性がある。更にブロック516におい
てこのアイコンは処理済みスタックに入れられ、ブロッ
ク518においてこのアイコンを保留待ち行列から除去
した後、図4に戻る。
【0029】図6には、アイコン・ネットワークの例が
示されている。図6を用いて、図3、図4及び図5のフ
ロー・チャートを通じてのフローを説明し、更に表1の
アイコン装置規則及び表2のスレッド規則について説明
する。ここで、図6、並びに図3、図4及び図5を参照
すると、ユーザがマウス110(図1)を使って開始ア
イコン602を「プッシュ」すると、図3が呼び出され
て、図6のグラフィクス・ネットワークについての実行
前プロセスが実行される。ブロック302において全て
の入力ピンが接続されていることが確認され、ブロック
304では多重接続されたピンのないことが確かめられ
る。ブロック306では開始アイコン602を見つけ出
し、ブロック308において開始アイコン602を保留
待ち行列に入れる。次にブロック314において図4を
呼び出し、図6のグラフィクス・ネットワークの処理が
行われる。
【0030】ブロック402では、グラフィクス・ネッ
トワークに含まれている唯一のスレッドである図6のス
レッドのための保留待ち行列及び処理済みスタックが指
示される。ブロック404において保留待ち行列が空で
ないことを確かめ、ブロック406で保留待ち行列から
開始アイコン602を取り出し、ブロック408では図
5を呼び出して開始アイコンを処理する。ブロック50
2において開始アイコンに対するシーケンス入力がない
と判定され、ブロック506では接続されている入力ピ
ンはないと判定される。入力ピンがないということは、
全ての入力ピンでデータが得られているるということと
同じである。従ってブロック510では実際の動作は何
もない開始機能が実行される。ブロック512及び51
4では開始アイコンから出力されるデータがないので、
機能はなにも実行されない。ブロック516においては
開始アイコンが処理済みスタックにプッシュされ、ブロ
ック518では保留待ち行列から開始アイコンが除去さ
れる。次に制御がブロック420に戻り、更にブロック
402に戻って、同じスレッドが指示される。ブロック
404では保留待ち行列が空であることを確かめて、制
御がブロック410に移行し、処理済みスタックが空で
ないことを確認の上、ブロック412において開始アイ
コンが処理済みスタックからポップアップされる。ブロ
ック414において開始ブロックが矢印付きの接続線6
03によって表示されたシーケンス出力を持っているこ
とを確認して、ブロック415でアイコンA604のシ
ーケンス入力にシーケンス信号を送り、ブロック416
においてアイコンA604を保留待ち行列に入れる。次
に制御がブロック420に戻り、アイコンA604の処
理が行われる。
【0031】この時点で、保留待ち行列に入っているエ
ントリはアイコンA604だけであり、処理済みスタッ
クは空である。サービス・リクエストは関与しないの
で、制御はブロック402に移行し、同じスレッドが指
示され、ブロック404において保留待ち行列が空でな
いことを確認し、ブロック406で保留待ち行列からア
イコンA604を取り出し、ブロック408において図
5を呼び出し、このアイコンの処理が行われる。ブロッ
ク502ではアイコンA604にシーケンス入力が接続
されていることを確かめる。ブロック412で処理済み
スタックから開始アイコンをポップアップした際にこの
アイコンに信号が与えられているので、ブロック504
ではそのシーケンス入力が信号を受信したことが確認さ
れる。制御はブロック510に移行し、アイコンA60
4が表す機能をそれがなんであれ実行し、ブロック51
2においてデータ出力をアイコンB606、アイコンD
610及びアイコンC608に対して送信する。次にブ
ロック514においてアイコンB606、アイコンC6
08及びアイコンD610を保留待ち行列に入れる。ス
レッド規則2(表2)の下では、アイコンB606、ア
イコンC608及びアイコンD610を保留待ち行列へ
入れる順序は定義されていない。それはこれらのアイコ
ンが並列に接続されているからである。従って、上述の
順序はたまたまそうなっただけである。次にブロック5
16においてアイコンA604が処理済みスタックにプ
ッシュされ、ブロック518で保留待ち行列からアイコ
ンA604が除去される。次に制御はブロック420に
リターンする。
【0032】この時点で、保留待ち行列に入っているの
はアイコンB606、アイコンC608及びアイコンD
610であり、処理済みスタックにはアイコンA604
が入っている。次にブロック402で同じスレッドが指
示されると、ブロック404において保留待ち行列が空
でないことを確かめ、ブロック406で保留待ち行列か
ら次の要素、すなわちアイコンB606を取り出す。次
にブロック408において図5を呼び出して、アイコン
E612にデータを送り、アイコンE612を保留待ち
行列に入れ、アイコンB606を処理済みスタックにプ
ッシュして、保留待ち行列からアイコンB606を削除
する。次に制御がブロック420にリターンされる。
【0033】この時点で、保留待ち行列に入っているの
はアイコンC608、アイコンD610及びアイコンE
612である。処理済みスタックにはアイコンA604
及びアイコンB606が入っている。保留待ち行列が空
でないので、ブロック406において保留待ち行列から
アイコンC608を引き出し、ブロック408で図5を
呼び出してアイコンC608を処理する。図5では、デ
ータをアイコンD610に送ることによってアイコンC
608を処理する。ただし、アイコンD610は既に保
留待ち行列に入っているので、図5のブロック514で
はアイコンD610を保留待ち行列に入れない。アイコ
ンC608を処理済みスタックにプッシュし、また保留
待ち行列から削除し、ここで制御をブロック420にリ
ターンする。
【0034】この時点で、保留待ち行列に入っているの
はアイコンD610及びアイコンE612である。処理
済みスタックにはアイコンA604、アイコンB606
及びアイコンC608が入っている。再び、ブロック4
02でこのスレッドが指示され、ブロック404で保留
待ち行列が空でないことを確かめ、ブロック406にお
いて保留待ち行列からアイコンD610を引き出し、ブ
ロック408では図5を呼び出してアイコンD610を
処理する。ブロック502ではアイコンD610にシー
ケンス入力が接続されていることを確かめ、ブロック5
04に移行する。ブロック504においてアイコンD6
10のシーケンス入力がまだ信号を受信していないこと
を確かめて制御がブロック508に移行し、アイコンB
606を保留待ち行列に入れた後、ブロック518に移
行し、保留待ち行列からアイコンD610を除去する。
次に制御をブロック420にリターンする。
【0035】ブロック402において現在のスレッドが
選択され、ブロック404で保留待ち行列が空でないこ
とを確かめ、ブロック406では保留待ち行列からアイ
コンE612を引き出し、ブロック408で図5を呼び
出してアイコンE612を処理する。ブロック502で
はアイコンE612にシーケンス入力が接続されていな
いことを確かめて制御をブロック506に移行する。ブ
ロック506で、アイコンE612の入力ピンのうちで
まだデータが利用できるようになっていないものがある
と判定する。アイコンB606は既に起動済みである
が、アイコンD610はまだ起動されていないので、ア
イコンE612には、そのデータが全て揃ってはいな
い。従ってブロック506からブロック508に移行
し、アイコンD610がまだアイコンE612にデータ
を供給していないので、アイコンD610を保留待ち行
列に入れる。制御をブロック508に移行し、保留待ち
行列からアイコンEを除去し、制御をブロック420に
リターンする。
【0036】ブロック402において現在のスレッドが
選択され、ブロック404で保留待ち行列が空でないこ
とを確かめ、ブロック406では保留待ち行列からアイ
コンB606を引き出し、ブロック408で図5を呼び
出して、アイコンB606を処理する。ブロック502
でアイコンB606の処理が既に終わっていることを確
かめ、ブロック501からブロック518に移行する。
ブロック518では保留待ち行列からアイコンB606
を単に除去する。
【0037】この時点で保留待ち行列に入っている要素
はアイコンD610だけであり、処理済みスタックには
アイコンA604、アイコンB606及びアイコンC6
08が入っている。ブロック402においてこのスレッ
ドが選択され、ブロック404で保留待ち行列が空でな
いことを確かめ、ブロック406では保留待ち行列から
アイコンD610を引き出し、ブロック408で図5を
呼び出してもう一度アイコンD610を処理する。今回
の処理はアイコンD610に関して上述したものと同じ
であるが、そのシーケンス入力には信号がないので、何
もすることがなく、ただ保留待ち行列から除去されるだ
けであり、その後制御はブロック420にリターンされ
る。
【0038】この時点で、保留待ち行列は空であり、処
理済みスタックにはアイコンA604、アイコンB60
6及びアイコンC608が入っている。ブロック402
において現在のスレッドが選択され、ブロック404で
保留待ち行列が空であることを確かめ、制御がブロック
410に移行し、処理済みスタックが空でないことが明
らかになり、ブロック412において処理済みスタック
からアイコンC608をポップアップし、ブロック41
4ではアイコンC608にシーケンス出力のないことを
確認して、制御がブロック410に移動し、更にブロッ
ク412に戻る。次にブロック412において処理済み
スタックからアイコンB606をポップアップし、ブロ
ック414でアイコンB606がシーケンス出力である
矢印付きの接続線620を持っていることを確かめ、ブ
ロック415では矢印付き接続線620を介してアイコ
ンD610にシーケンス信号を送り、ブロック416に
おいてアイコンD610を保留待ち行列に入れた後、制
御はブロック420に戻る。
【0039】この時点で保留待ち行列に入っているのは
アイコンD610であり、処理済みスタックにはアイコ
ンA604が入っている。ブロック402において同じ
スレッドが指示され、ブロック404で保留待ち行列が
空でないことが明らかになると、ブロック406におい
て保留待ち行列からアイコンD610を引き出し、ブロ
ック408では図5を呼び出してアイコンD610を処
理する。ブロック502においてアイコンD610には
シーケンス入力が接続されていことを確かめてブロック
504に移行し、上述のように処理済みスタックからア
イコンB606をポップアップするプロセスのためにそ
のシーケンス入力が信号を受信したことを確認する。従
って制御がブロック510に移行してアイコンD610
の機能が実行され、ブロック512においてアイコンE
612に対してデータ出力が送り出される。次にブロッ
ク514ではアイコンE612を保留待ち行列に入れ、
ブロック516においてアイコンD610を処理済みス
タックに入れ、ブロック518で保留待ち行列からアイ
コンD610を削除した後、制御がブロック420にリ
ターンする。
【0040】ブロック402において同じスレッドが指
示され、ブロック404で保留待ち行列が空でないこと
を確かめると、ブロック406において保留待ち行列か
らアイコンE612を取り出し、ブロック408では図
5を呼び出してアイコンE612を処理する。図5によ
れば、アイコンE612がその全ての入力ピン上でデー
タを利用できるようになったことを確かめてその機能を
実行し、処理済みスタックに入れて保留待ち行列から削
除した後、ブロック420にリターンする。
【0041】ブロック402においてこのスレッドが指
示され、ブロック404で保留待ち行列が空であること
を確かめると、制御がブロック410に移行し、処理済
みスタックが空でないことを確認する。次にブロック4
12において処理済みスタックからアイコンE612を
ポップアップし、ブロック414においてアイコンE6
12にシーケンス出力のないことを確かめて、制御がブ
ロック410に移行する。ブロック410では処理済み
スタックがまだ空でないことを確かめ、ブロック412
において処理済みスタックからアイコンD610をポッ
プアップし、ブロック414でアイコンD610にシー
ケンス出力のないことを確認して、ブロック414から
ブロック410に戻る。再び、ブロック410において
処理済みスタックが空でないことを確認し、ブロック4
12で処理済みスタックからアイコンA604をポップ
アップし、ブロック614においてアイコンA604に
シーケンス出力のないことを確かめてブロック414か
らブロック410に制御を戻す。ブロック410は今度
は処理済みスタックが空であることを確認し、制御がブ
ロック418に移行する。ブロック418では、今は図
6のスレッドだけしか完了していないことを確かめ、図
3にリターンする。図3またその呼び出し元にリターン
する。
【0042】図7にはアイコン・ネットワークのもう1
つの例が示されている。図7の例にはアイコンのいくつ
かを処理するための特定のシーケンスが示されている。
ここで図7を参照すると、ユーザが開始アイコン702
を「プッシュ」すると、アイコンA704にシーケンス
信号が送り出される。アイコンA704は更にアイコン
B706、アイコンC708及びアイコンD710に対
してその信号を送り出す。このプロセスは図3、図4及
び図5に関連して既述の方法で実行される。アイコンB
706とアイコンC708の間の矢印付きシーケンス接
続線720があるため、アイコンB706の処理はアイ
コンC708より前に行わねばならない。シーケンス接
続線720がなければ、処理順序は不定になる。同様
に、アイコンB708とアイコンC710の間に矢印付
きシーケンス接続線722があるので、アイコンB70
8の処理はアイコンC710より前に行わなければなら
ない。アイコンB706、アイコンC708及びアイコ
ンD710の処理が全て完了すると、アイコンE712
を処理することができる。
【0043】図8のダイヤグラムには2つのスレッドを
持つアイコン・ネットワークが示されている。次に図8
を参照すると、スレッド802は開始アイコン805、
アイコンA1 806、アイコンB1 808、アイコン
C1810から構成される。もう1つのスレッド804
は開始アイコン812、アイコンA2 814、アイコ
ンB2 816、アイコンC2 818及びアイコンD2
820から構成される。本発明はこれら2つのスレッ
ドを循環リストとして扱い、スレッド804のアイコン
の1つを処理すると、次にスレッド802のアイコンの
1つについて処理を行う。これらのスレッドの処理順序
は不定であり、どちらのスレッドの処理を最初に開始し
ても構わない。以下では、先ずスレッド802の処理か
ら始めるものと仮定する。図8のアイコン・ネットワー
クを処理している間には、ブロック402(図4)では
スレッド802からのアイコンを処理し、次にスレッド
804を指示することによって、スレッド規則8(表
2)が満たされる。スレッド804のアイコンについて
処理が済むと、ブロック402における指示に従ってス
レッド802の保留待ち行列及び処理済みスタックに戻
り、このスレッドからのアイコンの1つについて処理を
行う。この交互処理はアイコンC1 810の処理が済
むまで続行される。この時点でスレッド802の処理が
完了し、ブロック402ではその処理が完了するまでス
レッド804の指示を続け、その時点で処理が終了す
る。
【0044】図6、図7及び図8に関連した上述の例に
示すように、アイコンはその入力データの全て及び/ま
たはそのシーケンス入力が満たされた時、一回だけ起動
される」。ただし、図2のアイコン306のような繰り
返しアイコンの場合にはこの規則を変更しなければなら
ない。繰り返しアイコンに出会うと、そのデータ出力に
接続された全てのアイコンが「仮想サブスレッド(virt
ual subthread)」にコピーされる。繰り返しアイコン
の繰り返し毎に、繰り返しアイコンを含むスレッドの処
理を阻止して、図3、図4及び図5に関連して既に述べ
た方法で仮想サブスレッドの処理を行うことができるよ
うにする。仮想サブスレッドに関する処理が完了する
と、仮想サブスレッドは非活性化される。次の繰り返し
時にはこの仮想サブスレッドが再度活性化され、処理さ
れ、そしてまた非活性化される。このサイクルは繰り返
しアイコンの全ての繰り返しが完了するまで続けられ、
その時点で繰り返しアイコンのシーケンス出力が付勢さ
れ、このシーケンス出力に接続されたアイコンが通常の
方法で処理される。
【0045】サブプログラム・アイコンに出会うと、サ
ブプログラム・アイコン以下の全てのアイコンが、サブ
スレッドに入れられる。サブプログラム(呼び出し)ア
イコンを含むスレッドの処理が阻止され、図3、図4及
び図5に関連して既に述べた方法でサブスレッドを処理
できるようにする。サブスレッドの処理が完了すると、
サブプログラム(呼び出し)アイコンを含むスレッドの
阻止が解除される。
【0046】図9には2つのアイコンを有するアイコン
・ネットワークが示されており、アイコンはその起動前
に、その全てのデータ入力に新しいデータが得られるよ
うになっていなければならないという規則に対する例外
を示している。ここで図9を参照すると、ユーザがネッ
トワークを活性化すると、開始アイコン902がシーケ
ンス信号を繰り返しアイコン904に対して送り出す。
繰り返しアイコン904は接続線910を介してアイコ
ン908にデータを送り、また繰り返しアイコン906
のシーケンス入力914にも送る。これらの繰り返しア
イコン間の接続により、繰り返しアイコン904が1回
起動される毎に、繰り返しアイコン906はその全ての
繰り返しの処理を行う。従ってアイコン908は2つの
仮想サブスレッド、すなわち繰り返しアイコン904か
らの仮想サブスレッド及び繰り返しアイコン906から
の仮想サブスレッドの上にある。アイコン908はアイ
コン904とアイコン906の両方が起動された後にし
かデータを得ることができないので、上述の規則によ
り、アイコン908は繰り返しアイコン904の各繰り
返しであってかつ繰り返しアイコン906の最初の繰り
返し毎に1回だけしか起動されない。繰り返しアイコン
906は繰り返しアイコン904の各繰り返しについて
何回も起動されるが、接続線910からのデータはアイ
コン908を最初に起動する際に使い尽くされてしま
い、繰り返しアイコン904がもう1度起動されるまで
アイコン908の再起動はない。このシステムではこの
ような状態を検出して、アイコン908が接続線910
のデータを再利用できるようにするので、アイコン90
8は繰り返しアイコン906がデータを供給する毎に、
起動が可能になる。例えば繰り返しアイコン904が5
回起動され、繰り返しアイコン906が(それがシーケ
ンス入力914で信号を受信する毎に)4回の繰り返し
を行うと、アイコン908は20回起動される。
【0047】図10にはサービス・リクエストの処理を
説明する極めて単純なアイコン・ネットワークが示され
ている。ここで図10を参照すると、3つのスレッドが
示されている。第1のスレッドには、常時起動される
「ブレークまで」アイコン1002が含まれている。こ
のアイコンの出力によってSRQ待ちアイコン1004
がコンピュータ・システムに取り付けられたバスのサー
ビス・リクエストについてチェックする。アイコン10
04はサービス・リクエストを受け取るまでスリープし
ており、この時点で出力を送り出す。SRQ待ちアイコ
ン1004の出力はカウンタ・アイコン1006に接続
される。
【0048】第2のスレッドには、常時起動される第2
の「ブレークまで」アイコン1008が含まれている。
これによって第2のカウンタ・アイコン1010が絶え
ずカウント・アップする。第3のスレッドには、第3の
カウンタ・アイコン1014に接続された第3の「ブレ
ークまで」アイコン1012が含まれている。
【0049】アイコン・ネットワークが開始されると、
「ブレークまで」アイコン1002によって、SRQ待
ちアイコン1004がサービス・リクエスト待ちを開始
する。アイコン・ネットワークはサービス・リクエスト
を待つ間も中断されているわけではないので、アイコン
1008が起動してカウンタ・アイコン1010に値1
だけカウント・アップさせる。アイコン1012また起
動して、カウンタ・アイコン1014にカウント・アッ
プを起こさせる。このカウント動作はサービス・リクエ
ストを受け取るまで続けられる。
【0050】サービス・リクエストを受け取ると、第2
と第3のスレッドは中断され、SRQ待ちアイコン10
04が起動される。アイコン1004が起動されると、
カウンタ・アイコン1006が起動されてカウンタ値を
インクリメントし、サービス・リクエストを処理する。
この単純な例では、第2と第3のスレッドがそれぞれ値
31と30までカウントした後、サービス・リクエスト
を受け取った。
【0051】図11にはサービス・リクエストの処理に
関する更に複雑なアイコン・ネットワークが含まれてい
る。ここで図11を参照すると、単一のスレッドしか示
されていない。他の図に関連して上述のように、複数ス
レッドでも処理できる。
【0052】各サービス・リクエストを処理する毎に、
「ブレークまで」アイコン1102を用いてサービス・
リクエスト・スレッドを再度活性化する。「ブレークま
で」アイコン1102の出力がSRQ待ちアイコン11
04のシーケンス入力に接続される。「ブレークまで」
アイコンは起動されるとSRQ待ちアイコン1104を
活性化するが、サービス・リクエストを受け取るまでは
何もすることがない。サービス・リクエストを検出する
と、SRQ待ちアイコン1104が起動され、サービス
・ポーリング・アイコン(spoll icon)1106を起動
させる。サービス・ポーリング・アイコン1106は測
定器バス116のスコープ装置をポーリングし、スコー
プに対してサービスを要求したか否かを提示するように
求める。スコープ装置がサービスを要求していれば、サ
ービス・ポーリング・アイコン1106に戻されるデー
タのビット7をセットする。
【0053】サービス・ポーリング・アイコン1106
は戻されたデータをif/thenアイコン1108に
送り、アイコン1108はそのビットを評価してスコー
プ装置がサービスを要求したか否かを判定する。ビット
7がセットされていると、if/thenアイコン11
08はカウンタ・アイコン110に対して情報を送り、
カウンタがインクリメントされる。カウンタがインクリ
メントされると、アイコン1110は情報を送って
「次」アイコン1112を活性化する。「次」アイコン
1112はスレッド全体をリセットし、アイコン110
2から開始させる。スコープ装置へのサービスは済んで
いるので、これはスレッドの処理を終了させるために行
われる。
【0054】スコープ装置がサービスを要求していなけ
れば、if/thenアイコン1108が起動された後
(この場合は、カウンタ・アイコン1110にデータを
送らない)、シーケンス情報がサービス・ポーリング・
アイコン1114に送られ、このアイコンが、ディジタ
ル電圧計(DVM)装置をポーリングしてこの装置がサ
ービスの要求を行ったか否かを確認する。戻された情報
はif/thenアイコン1116に送られ、この新し
いデータのビット7がテストされる。ビット7がセット
されていればDVMはサービスを要求しており、データ
がカウンタ・アイコン1118に送られてカウンタがイ
ンクリメントされる。次にシーケンス信号が「次」アイ
コン1120に送られ、スレッドがリセットされる。上
述のようにして、バスの全ての装置についてサービスを
行うことが可能である。
【0055】これで本発明の現在のところ望ましい実施
例に関する説明を終えるが、本発明の目的が完全に達成
されたことは今や明らかであり、また当業者であれば分
かるように、本発明の精神及び範囲を逸脱することなく
本発明の構造及び回路構成上の多くの変更及び多種多様
な実施例及び用途を思い付くことができる。この開示及
び説明はいかなる意味においても本発明を制限するもの
ではなく、その範囲は特許請求の範囲に基づいて定めら
れなければならない。
【0056】表1 アイコン装置規則 1.全ての入力ピンは接続されていなければならない。
出力ピンの接続の有無は任意に選択できる。 2.入力ピンはピン毎に1本の線しか接続できない。出
力ピンでは各ピン毎に1本あるいはそれ以上の線を接続
してよい。 3.アイコン装置はその各入力がデータを受信してはじ
めて実行される。 4.シーケンス入力が接続されている場合は、アイコン
装置はこのシーケンス入力が信号を受信した後にはじめ
て実行される。 5.他の全てのデータ出力ピンが付勢された後であっ
て、また更には全ての通常の出力線に沿ってできるだけ
遠くまでの伝搬が行われた後にはじめてシーケンス出力
が付勢される(シーケンス信号を送り出す)。
【0057】表2 スレッド規則 1.別の装置に接続されている装置は、その別の装置と
同じスレッドにあるものとみなされる。従って、接続さ
れていない装置はそれ自身スレッドのである。 2.他の装置の出力に直接並列に接続された複数の装置
が特定の順序で実行されるとは保証されていないし、プ
ログラムを今回ロードしたときと次の機会にロードした
ときとで同じ順序で実行されるという保証すらない。 3.実行は、データ接続及びシーケンス接続を介して
「引き込む(pull)」こともできるし、「押し込む(pu
sh)」こともできる。 4.入力接続がなく従って順次に関する制約はないが、
1つあるいはそれ以上の出力接続がある装置の実行は、
開始アイコン装置がそのスレッドに存在しない限り、そ
の出力線の1つを介して「引き込まれる」場合に限られ
る。開始アイコン装置が存在する場合は、次の装置から
「引き込まれる」のに先立つ予測不可能な時点に実行さ
れることがある。 5.スレッドにフィードバック・ループが存在しない限
り、スレッドに開始アイコンは不要である。フィードバ
ック・ループが存在すれば、正常な順序での実行を保証
するため、開始アイコン装置が必要になる(実行時にフ
ィードバック・ループを検出したが開始アイコンがない
という場合、ユーザに開始アイコンが必要であることが
伝えられる)。 6.同じスレッドに複数の開始装置があると、そのスレ
ッドに対して複数のエントリ・ポイントが生じる。スレ
ッド中の他のアイコン装置より先に全ての開始アイコン
が起動される。これらのいくつかの開始アイコンの実行
順序は保証されておらず、またプログラムを今回ロード
した場合の実行順序が次回ロードした際の実行順序と同
じであるかどうかも保証されていない。 7.開始アイコン装置のないスレッドの実行は、装置間
の接続によって黙示的に定まる順序の制約に関する限り
は「正しく」進められるが、複数の独立した並列のサブ
スレッドの実行順序は予測できない。 8.並列のスレッドはラウンド・ロビン方式で実行され
る。すなわち、各スレッドは、繰り返しアイコン及びア
イコン式サブプログラムのような任意の形式の多重アイ
コン構成の場合を除いては、各サイクルに1つのプリミ
ティブ・アイコンについてプロセッサを獲得する。
【0058】
【効果】以上詳細に説明したように、本願発明によれ
ば、サービス・リクエスト等の非同期事象を取り扱うこ
とのできるアイコン式プログラミング・システムが提供
される。
【図面の簡単な説明】
【図1】本発明の一実施例が適用されるコンピュータ・
システムのブロック図。
【図2】オーディオ・フィルタをテストするためのアイ
コン・ネットワークを示す図。
【図3】実行前プロセスを示すフローチャート。
【図4】実行プロセスを示すフローチャート。
【図5】アイコンを起動する方法を示すフローチャー
ト。
【図6】アイコン・ネットワークの例を示す図。
【図7】アイコン・ネットワークにおける実行の順序を
説明するための図。
【図8】2つのスレッドを有するアイコン・ネットワー
クを示す図。
【図9】2つの繰り返しアイコンを有するアイコン・ネ
ットワークを示す図。
【図10】サービスリクエスト処理を組み込んだアイコ
ン・ネットワークを示す図。
【図11】サービスを必要とする装置を判定することを
説明するためのアイコン・ネットワークを示す図。
【符号の説明】
100:コンピュータ・システム 102:処理要素 104:システム・バス 106:キー・ボード 108:グラフィクス・ディスプレイ 110:マウス 112:ディスク 114:メモリ 116:バス 120:マルチタスク・オペレーティング・システム 122、124:タスク 202:アイコン・ネットワーク 204:開始アイコン 205:シーケンス出力 206:繰り返しアイコン 207:シーケンス入力 208:終了アイコン 210:周波数発生器 212:ディジタル電圧計 214:レンジ・セレクタ・スイッチ 216:X−Yディスプレイ 218:グラフ 220:データ出力 222:X入力 224:Y入力 223:データ出力 226:データ入力 228:データ出力 230:データ入力 232:シーケンス出力 234:シーケンス入力 602:開始アイコン 604、606、608、610、612:アイコン 702:開始アイコン 704、706、708、710、712:アイコン 802、804:スレッド 805、812:開始アイコン 806、808、810、814、816、818、8
20:アイコン 902:開始アイコン 904、906:繰り返しアイコン 908:アイコン 1002、1008、1012:「ブレークまで」アイ
コン 1004:SRQ待ちアイコン 1006、1010、1014:カウンタ・アイコン 1102:「ブレークまで」アイコン 1104:SRQ待ちアイコン 1106、1114:サービス・ポーリング・アイコン 1108、1116:if/thenアイコン 1110、1118:カウンタ・アイコン 1112、1120:「次」アイコン

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】アイコン式プログラミング・システムにお
    いて、下記の(a)ないし(d)のステップを含むこと
    を特徴とする他のデバイスからのサービス・リクエスト
    を処理する方法: (a)アイコン式プログラミング・システム内の全ての
    スレッドの処理を開始する; (b)サービス・リクエスト待ちアイコンを活性化する
    ことになったときに、そのスレッド上の処理を停止す
    る; (c)サービス・リクエストが発生したときに、サービ
    ス・リクエスト待ちアイコンによってホストされている
    サブスレッド以外の全てのスレッド上の処理を停止す
    る; (d)サービス・リクエスト待ちアイコンによってホス
    トされているサブスレッドの処理の後、他の全てのスレ
    ッド上の処理を続行する。
  2. 【請求項2】更に下記のステップ(C1)を含むことを
    特徴とする請求項1記載の他のデバイスからのサービス
    ・リクエストを処理する方法: (c1)サービス・リクエスト待ちアイコンによってホ
    ストされている全てのサブスレッドの優先度をサービス
    ・リクエスト待ちアイコンによってホストされていない
    全てのスレッドの優先度よりも高くする。
  3. 【請求項3】更に下記のステップ(C1)を含むことを
    特徴とする請求項1記載の他のデバイスからのサービス
    ・リクエストを処理する方法: (c1)サービス・リクエスト待ちアイコンによってホ
    ストされているスレッドの優先度を可能な限りもっとも
    高くする。
  4. 【請求項4】アイコン式プログラミング・システムにお
    いて、下記の(a)ないし(d)のステップを含むこと
    を特徴とする他のデバイスからのサービス・リクエスト
    を処理する方法: (a)アイコン式プログラミング・システム内の全ての
    スレッドの処理を開始する; (b)サービス・リクエスト待ちアイコンを活性化する
    ことになったときに、そのスレッド上の処理を停止す
    る; (c)サービス・リクエストが起こった場合、サービス
    ・リクエスト待ちアイコンによってホストされている全
    てのスレッドの優先度をサービス・リクエスト待ちアイ
    コンによってホストされていない全てのスレッドの優先
    度よりも高くする。 (d)サービス・リクエスト待ちアイコンによってホス
    トされているサブスレッドの処理の後、他の全てのスレ
    ッド上の処理を続行する。
  5. 【請求項5】更に下記のステップ(C1)を含むことを
    特徴とする請求項4記載の他のデバイスからのサービス
    ・リクエストを処理する方法: (c1)サービス・リクエスト待ちアイコンによってホ
    ストされているスレッドの優先度を可能な限りもっとも
    高くする。
JP11806292A 1991-04-12 1992-04-10 サービス・リクエスト処理方法 Expired - Fee Related JP3313396B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68686191A 1991-04-12 1991-04-12
US686,861 1991-04-12

Publications (2)

Publication Number Publication Date
JPH05127928A true JPH05127928A (ja) 1993-05-25
JP3313396B2 JP3313396B2 (ja) 2002-08-12

Family

ID=24758059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11806292A Expired - Fee Related JP3313396B2 (ja) 1991-04-12 1992-04-10 サービス・リクエスト処理方法

Country Status (3)

Country Link
EP (1) EP0508632B1 (ja)
JP (1) JP3313396B2 (ja)
DE (1) DE69223672T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916381A (ja) * 1995-06-26 1997-01-17 Nippon Telegr & Teleph Corp <Ntt> プログラム作成実行方式
JPH11149369A (ja) * 1997-11-14 1999-06-02 Oki Electric Ind Co Ltd プログラム開発装置および記録媒体

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437007A (en) * 1992-11-10 1995-07-25 Hewlett-Packard Company Control sequencer in an iconic programming system
US7062718B2 (en) * 2001-08-14 2006-06-13 National Instruments Corporation Configuration diagram which graphically displays program relationship

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04216134A (ja) * 1990-02-22 1992-08-06 Hewlett Packard Co <Hp> 図像的プログラミング・システムの制御引き渡し方法
JPH04507022A (ja) * 1989-10-17 1992-12-03 アプライド バイオシステムズ インコーポレイテッド ロボットインターフェース
JPH05127852A (ja) * 1991-04-12 1993-05-25 Hewlett Packard Co <Hp> 動的にユーザ・パネルを生成する方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0231594A3 (en) * 1986-01-22 1988-04-27 Mts Systems Corporation Interactive multilevel hierarchical data flow programming system
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04507022A (ja) * 1989-10-17 1992-12-03 アプライド バイオシステムズ インコーポレイテッド ロボットインターフェース
JPH04216134A (ja) * 1990-02-22 1992-08-06 Hewlett Packard Co <Hp> 図像的プログラミング・システムの制御引き渡し方法
JPH05127852A (ja) * 1991-04-12 1993-05-25 Hewlett Packard Co <Hp> 動的にユーザ・パネルを生成する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916381A (ja) * 1995-06-26 1997-01-17 Nippon Telegr & Teleph Corp <Ntt> プログラム作成実行方式
JPH11149369A (ja) * 1997-11-14 1999-06-02 Oki Electric Ind Co Ltd プログラム開発装置および記録媒体

Also Published As

Publication number Publication date
DE69223672T2 (de) 1998-04-30
DE69223672D1 (de) 1998-02-05
EP0508632A2 (en) 1992-10-14
EP0508632B1 (en) 1997-12-29
EP0508632A3 (en) 1993-04-07
JP3313396B2 (ja) 2002-08-12

Similar Documents

Publication Publication Date Title
US5551041A (en) Wait for service request in an iconic programming system
US5313575A (en) Processing method for an iconic programming system
US5313574A (en) Method for starting processing of an iconic programming system
WO2017070900A1 (zh) 多核数字信号处理系统中处理任务的方法和装置
US5974541A (en) GPIB system and method which provides asynchronous event notification
US6516460B1 (en) Debugging multiple related processes simultaneously
JP2000148452A (ja) サ―ドパ―ティのアプリケ―ションソフトウェアを導入する方法
JP5611756B2 (ja) プログラム・フロー制御
US6584487B1 (en) Method, system, and apparatus for managing tasks
JP2007518190A (ja) モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法
US20010034751A1 (en) Real-time OS simulator
CN102567090B (zh) 在计算机处理器中创建执行线程的方法和系统
JP2004516549A (ja) シングルステップ処理
US7761744B2 (en) Debugging method
US8863130B2 (en) Exception handling in a concurrent computing process
JP6785810B2 (ja) シミュレーター、シミュレーション装置、および、シミュレーション方法
CN112764563A (zh) 多屏控制方法、装置、系统、电子设备、及存储介质
JP2002014841A (ja) デバッグカーネルシステム
WO1991014985A1 (fr) Systeme de traitement de programme d&#39;interruption
JP3313396B2 (ja) サービス・リクエスト処理方法
US5862340A (en) Method operating in each node of a computer system providing and utilizing special records for collective communication commands to increase work efficiency at each node
CN110289043B (zh) 存储设备测试方法、装置、电子设备
US7617084B1 (en) Mechanism and method for simultaneous processing and debugging of multiple programming languages
US5644772A (en) Signal dispatching for C language interrupt handling
WO2020102077A1 (en) Message broker configuration

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20090531

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees