JPH06214951A - ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置 - Google Patents

ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置

Info

Publication number
JPH06214951A
JPH06214951A JP3351789A JP35178991A JPH06214951A JP H06214951 A JPH06214951 A JP H06214951A JP 3351789 A JP3351789 A JP 3351789A JP 35178991 A JP35178991 A JP 35178991A JP H06214951 A JPH06214951 A JP H06214951A
Authority
JP
Japan
Prior art keywords
window
processes
procedure
time
application program
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
JP3351789A
Other languages
English (en)
Other versions
JP3547011B2 (ja
JP3547011B6 (ja
Inventor
Edward A Dean
エドワード・エイ・ディーン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06214951A publication Critical patent/JPH06214951A/ja
Publication of JP3547011B2 publication Critical patent/JP3547011B2/ja
Application granted granted Critical
Publication of JP3547011B6 publication Critical patent/JP3547011B6/ja
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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
    • 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/451Execution arrangements for user interfaces
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Digital Computer Display Output (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 アプリケーションプログラムがCPUを共用
して動作できるようにする。 【構成】 アプリケーションプログラムを複数のプロセ
スへ機能的に分け、第1のプロセスはCPUのタイムス
ライスに敏感なプロシージャすなわち時間的に厳しいプ
ロシージャの全てを含み、ウィンドウシステムインター
フェイスとは独立に動作し、オペレーティングシステム
と直接通信する。第2のプロセスは、ウィンドウシステ
ムを介してユーザー入力と出力を要求するが、時間的に
厳しいプロシージャは含まない全てのプロシージャを実
現し、ウィンドウシステムインターフェイスを介して動
作する。プロセスは、ユーザーには1つのプロセスとし
て見えるように、しかも、ウィンドウシステムオペレー
ションとブロッキングプロシージャのために停止から第
1のプロセスを絶縁するように、共用メモリのようなプ
ロセス間通信機構を介して、プロセスはデータを交換
し、実行を同期する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算環境における時間的
に厳しいプロセスの実行に関するものである。更に詳し
くいえば、本発明はウィンドウシステム環境において時
間的に厳しいプロセスを実行する方法および装置に関す
るものである。
【0002】
【従来の技術】計算機産業においては、Sun Vie
wまたはNeWS XVIEW(OPEN WINDO
WS)(いずれも、アメリカ合衆国カリフォルニア州マ
ウンテン・ビュー(Mountain View)所在
のサン・マイクロシステムズ(Sun Microsy
stems)の商標である)を利用して、アプリケーシ
ョンプログラムへのユーザー入力および出力を表示およ
び制御することが一般的である。ウィンドウシステムに
よりメニュー、およびその他の図形オブジェクトのよう
な視覚的ユーザーインターフェイスを発生する手段が得
られる。多数のアプリケーションプログラムを、ウィン
ドウ化されている表示器を用いて示し、実行することを
同時に行うことができる。たとえば、第1のウィンドウ
においては、会計プログラムを動作させ、その間に第2
のウィンドウに作図プログラムを走らせることができ
る。コンピュータのユーザーは、カーソルを1つのウィ
ンドウから別のウィンドウへ移動させることにより、別
々のプログラムを動作させるためにウィンドウからウィ
ンドウへ切換えることができる。更に、ウィンドウシス
テムは表示されるシステム情報と、ウィンドウシステム
を介して実行するプロセスと、種々のウィンドウおよび
実行中のプロセスへのユーザー入力とを制御する。
【0003】ウィンドウシステムは、それを介して実行
するプログラム(以降「アプリケーションプログラム」
と記す)に対する完全な制御を行う。たとえば、ウィン
ドウシステムはビデオ表示器、プリンタ等のようなハー
ドウェア出力装置に対するアクセスを制御する。アプリ
ケーションプログラムは、ユーザーウィンドウ事象のア
プリケーションプログラムを通知するためにウィンドウ
システムに依存する。更に、種々のアプリケーションプ
ログラムがマルチタスク環境で動作できるように、ウィ
ンドウシステムはアプリケーションプログラムを制御す
る。また、アプリケーションプログラムのどのプロセス
がCPUをアクセスできるかということ、およびそのア
クセスの優先順位とを制御する。
【0004】典型的には、マルチタスク計算環境におい
ては、実行する各プロセスにはCPUを利用するための
「タイムスライス」(すなわち、所定の時間区間)が割
当てられる。プロセスはそれぞれのタイムスライス中に
実行することによりCPUを共用する。あるプロセスが
それのタイムスライス中に実行を終わっていないとする
と、プロセスはそれの次のタイムスライスまで「眠りに
入る」(すなわち、プロセスは停止させられる)。更
に、ユーザー事象がブロッキング動作である、たとえ
ば、データをディスクから読出す、と考えられるとする
と、その動作が終わるまで対応するプロセスが保留させ
られる。
【0005】ウィンドウシステム環境においては、ウィ
ンドウシステムはタイムスライスの割当てに関与でき、
したがってプロセスを停止させることができる。したが
って、ウィンドウシステムで動作する、アプリケーショ
ンプログラムのプロセスは所定の時間内にCPUをアク
セスすることを保障されない。その理由は、ウィンドウ
システムによりプロセスを中間の長さの時間だけ停止さ
せることができるからである。
【0006】たとえば、ウィンドウを動かすとか、図形
またはテキストを表するというような、ウィンドウシス
テムの一般的なオペレーションを行うためにCPUタイ
ムスライスのプロセスへの割当てをウィンドウシステム
は変える必要はない。一般に、ウィンドウシステムによ
って実行するアプリケーションプログラムに対してはそ
れは問題ではない。具体的にいえば、アプリケーション
プロセスを停止しても、プロセスの実行が少し遅れるこ
とを除き、何の問題も生じさせない。たとえば、ユーザ
ーが未知の指令に入ると、ウィンドウシステムは誤りメ
ッセージを表示し、続行するためにユーザーが「承認」
またはそれに類似の確認応答指令に入ることを求める。
ユーザーが応答することをウィンドウプロセスが待って
いる間に、それはウィンドウシステムの下で現在実行し
ている他の全てのウィンドウプロセスを凍結すなわち停
止する。(ウィンドウシステムについては、たとえばゴ
スリング(Gosling)、ローゼンタール(Ros
enthal)、アーデン(Arden)著「NeWS
ブック(The NeWS Book)」(1989
年)23〜52ページを参照されたい。)
【0007】ブロッキングオペレーション等のためにウ
ィンドウシステムによるプロセスの停止によって、ウィ
ンドウシステムによるアプリケーションプログラム実行
の時間的に厳しいプロセスに問題が起こる。それらの時
間的に厳しいプロセスは指定された時間フレーム内で応
答し、活動することを要求する。たとえば、あるアプリ
ケーションプログラムがデータをモデムを介して受ける
とすると、ある時間依存性を指令するあるボー速度で送
るべきデータをモデムは受けねばならない。時間的に厳
しいアプリケーションプログラムがウィンドウシステム
により停止させられるとすると、モデムは利用されてい
るボー速度でデータを受けることができず、モデムは正
しく動作することができない。更に詳しくいえば、Un
ix(商標)をベースとするシステムへモデムが接続さ
れ、時間的に厳しいアプリケーションプログラムがデー
タを受けるためにモデムを現在アクセスしており、かつ
時間的に厳しいアプリケーションがウィンドウシステム
により停止させられるものとすると、モデムを介して受
けられるデータは、オペレーティングシステムの中心部
にあるバッファへ行く。そうするとオペレーティングシ
ステムはモデムから受けた情報をアプリケーションプロ
グラムへ転送することを試みる。しかし、アプリケーシ
ョンプログラムが停止されたとすると、データを転送で
きないから、データはバッファ内に留まる。停止が継続
するものとすると、最終的にはバッファは一杯になり、
直列オーバランのためにデータは失われる。(Unix
システムおよびUnix中枢部については、バック(B
ack)著「Unixオペレーティング・システムの設
計(The Design of the UnixO
perating System)」(1986年)を
参照されたい。)
【0008】この問題は、時間的に厳しいプロセスを停
止させないようにウィンドウシステムを変更することに
より、避けることができる。しかし、ウィンドウシステ
ムを変更できず、かつウィンドウシステムとともに動作
するために書かれたアプリケーションプログラムを厳密
なウィンドウシステムインターフェイスへ付着せねばな
らないように、ほとんどのウィンドウシステムは標準化
される。
【0009】
【発明が解決しようとする課題】したがって、本発明の
目的は、ウィンドウシステムの下で実行する時間的に厳
しいアプリケーションプログラムがCPUを共用でき、
かつ、ウィンドウシステムを変更するこなく、およびウ
ィンドウシステムインターフェイスを乱すことなしに、
それぞれのタイムスライス中に実行できるよにすること
である。本発明の別の目的は、ブロッキングオペレーシ
ョンを含む時間的に厳しいアプリケーションプログラム
が、ブロッキングオペレーションにより阻止されること
なしに、CPUをタイミング良く利用できるようにする
ことである。
【0010】
【課題を解決するための手段】時間的に厳しいアプリケ
ーションプログラムは少なくとも2つのプロセスへ機能
的に分けられる。第1のプロセスはタイムスライスに敏
感なCPUプロシージャ、すなわち時間的に厳しいCP
Uプロシージャの全てを含む。このプロセスはウィンド
ウシステムインターフェイスとは独立に動作し、オペレ
ーティングシステムと直接通信する。第2のプロセス
は、ウィンドウシステムでユーザー入力と出力を必要と
するそれらの手順はもちろんブロッキングオペレーショ
ンを含むが、時間的に厳しいプロシージャは含まない残
りのプロシージャの全てを実現する。このプロセスはウ
ィンドウインターフェイスと典型的に通信し、かつ動作
する。2つまたはそれ以上のプロセスが動作し、かつ1
つのプログラムとしてユーザーに見えるように、共用さ
れるメモリのようなプロセス間通信機構を介してデータ
を交換し、実行を同期させる。
【0011】記法および用語 以下に行う詳細な説明を、コンピュータメモリ内のデー
タビットのオペレーションのアルゴリズム表現および記
号表現で主として行う。それらのアルゴリズムによる説
明および表現は、データ処理の分野における専門家が自
己の業績を最も効果的に伝えるために、それらの専門家
が用いる手段である。アルゴリズムというのはここで
は、および一般的には、希望の結果へ導く自己無盾のな
い一連の過程であると考えられる。それらの過程は物理
量の物理的取扱いを要する過程である。通常は、必然的
なものではないが、それらの量は、記憶、転送、組合わ
せ、比較その他の処理を行うことができる電気信号また
は磁気信号の形をとる。主として一般的に用いられてい
るという理由で、それらの信号をビット、値、素子、記
号、オブジェクト、キャラクタ、項、番号等と呼ぶこと
が時には便利であることが判明している。しかし、それ
ら全ての項および類似の項には適切な物理量に関連づけ
ること、およびそれらの量へ取付けられる単なる便利な
ラベルであることを記憶すべきである。
【0012】更に、行われる操作は、人の精神活動に一
般的に関連づけられる加算または比較のような表現でし
ばしば呼ばれる。本発明の一部を成す、ここで説明する
オペレーションのいずれにおいても人のそのような能力
は、ほとんどの場合に不必要であり、あるいは望ましく
ない。オペレーションはマシンオペレーションである。
本発明のオペレーションを行うために有用なマシンは汎
用デジタルコンピュータまたはそれに類似の装置を含
む。あらゆる場合に、コンピュータを動作させることに
おける方法オペレーションと計算自体の方法の違いを記
憶しておくべきである。本発明は、コンピュータを動作
させるため、および他の希望の物理的信号を発生するた
めに電気的信号またはその他の物理的信号を処理する方
法過程に関するものである。本発明はそれらのオペレー
ションを行うための装置にも関するものである。この装
置は求められている目的のためにとくに構成でき、また
はコンピュータに内蔵されているコンピュータプログラ
ムにより選択的に動作させられ、または再構成されるも
のとしての汎用コンピュータを含むことができる。ここ
で提示するアルゴリズムは任意の特定のコンピュータま
たはその他の装置に完全に関連するものではない。とく
に、種々の汎用機を、本発明の教示に従って書かれたプ
ログラムで使用でき、あるいは要求されている方法過程
を実行するために一層特殊化された装置を構成するため
にそれらの汎用機は一層便利であることを証明できる。
それらの種々の装置のために要求される構造は以下の説
明から明らかとなるであろう。
【0013】
【実施例】図1は、ウィンドウシステム環境において時
間的に厳しいプロセスを実行する、コンピュータをベー
スとする本発明の典型的なシステムを示す。この図には
コンピュータ101が示されている。このコンピュータ
は3つの主な部品を有する。第1の部品は、適切な構造
のフォームで情報をコンピュータ101の他の部品とや
りとりするために用いられる入力/出力(I/O)回路
102である。他の主の部品は中央処理装置(CPU)
103とメモリ104である。後の2つの部品はほとん
どの汎用コンピュータおよびほとんど全ての専用コンピ
ュータに典型的に見られるものである。実際に、コンピ
ュータに含まれているいくつかの部品は、この広い種類
のデータプロセッサを表すことを意図するものである。
コンピュータ101の役割を果たすために適当なデータ
プロセッサの特定の例には、前記サン・マイクロシステ
ムズ社(Sun Microsystems,In
c.)により製造される装置が含まれる。同様な性能を
有する他のコンピュータは、下記の諸機能を直線的なや
り方で実行するように構成できることはもちろんであ
る。
【0014】図1には入力装置105も示されている。
典型的な実施例では、入力装置105はキーボードであ
る。しかし、入力装置は実際にはカード読取機、磁気テ
ープまたは紙テープの読取機、その他周知の入力装置
(もちろん別のコンピュータも含む)とすることができ
ることを理解すべきである。大容量メモリ106がI/
O回路102へ結合されて、コンピュータ101のため
に追加の記憶性能を提供する。この大容量メモリは他の
プログラム等を含むことができ、磁気テープまたは紙テ
ープの読取機、あるいはその他周知の装置の態様をとる
ことができる。大容量メモリ106に保持されるデータ
は、適切な場合には、メモリ104の一部としてコンピ
ュータ101に標準的なやり方で組込むことができる。
【0015】また、図1には、メッセージその他の通信
をユーザーへ表示するために用いられる表示モニタ10
7も示されている。その表示モニタはCRT、表示器、
プラズマ表示器、LCD表示器のようないくつかの周知
の表示器のうちの任意のものとすることができる。カー
ソル制御器108が指令モードの選択と入力データの編
集のために用いられ、システムへ情報を入力するための
一層便利な手段を提供する。
【0016】プロセスについての説明 本発明の好適な実施例についての以下の説明は、ウィン
ドウシステム環境において、時間的に厳しいプログラム
を動かす方法についてのものである。とくに、時間的に
厳しいプログラムを動かすための本発明の方法の実現
を、分布ウィンドウシステム環境(「サーバをベースと
するシステム」ともここでは呼ぶ)に関して説明する。
しかし、時間的に厳しいプロセスを処理するこの方法
を、異なるコンピュータアーキテクチャおよび異なるウ
ィンドウシステムを有する異なるコンピュータシステム
へ適用できることが、以下の説明から等業者には明らか
であろう。更に、以下の説明は、Unixオペレーティ
ングシステムで動作するウィンドウシステム環境で、時
間的に厳しいプログラムを動作させる方法についてのも
のである。しかし、この方法はそれに限定されるもので
はなく、任意のマルチタスクおよびマルチプロセッサオ
ペレーティングシステムで実現できる。
【0017】ウィンドウシステムは、スクリーンを、ウ
ィンドウと呼ばれる、重なり合う、または重なり合わな
い多数の視覚的領域に分割することが普通である。異な
るアプリケーションプログラムを各ウィンドウにおいて
実行できる。ウィンドウというのは、ウィンドウ内で動
作するアプリケーションプログラムに関して情報を表示
するために用いられるスクリーンの可視部分であって、
特定のウィンドウ内で実行しているアプリケーションプ
ログラムと対話する手段をユーザーに提供するものであ
る。ウィンドウシステムは、ほとんどのオペレーショ
ン、とくにユーザー入力および出力に対して、アプリケ
ーションプログラムとオペレーティングシステムの間の
インターフェイスとして作用することにより、オペレー
ティングシステムに対するアプリケーションプログラム
のアクセスを制御する。ウィンドウシステムは、ウィン
ドウの寸法と位置を指定し、ウィンドウ上で作図し、メ
ニューの出現を選択的に定めるためのプロシージャ(手
段)をアプリケーションプログラムに提供するものであ
る。
【0018】図2に示すように、表示器260と、キー
ボード270およびマウス180は入力/出力をウィン
ドウシステムへ供給し、かつウィンドウシステムで動作
しているアプリケーションプログラムへ入力/出力をオ
ペレーティングシステム255を介して供給する。サー
バーをベースとするウィンドウシステムは、ウィンドウ
セーバー、ウィンドウマネジャーおよびツールキットと
呼ばれるいくつかのプロセスで構成される。
【0019】ウィンドウセーバー250は表示器と、こ
の表示器へのアプリケーションプログラムのアクセスの
優先度とを制御する。ウィンドウサーバーの例には、X
11(マサチューセッツ工科大学所有の商標)プロトコ
ルをサポートするX11と、X11/NeWsウィンド
ウセーバープロトコルとを含む。X11については、
「ACM トランザクション・オン・グラフィックス
(ACM Transaction on Graph
ics)」第5巻第2号、1986年4月号の79〜1
09ページ所載のシェイフラー・ゲッティス(Shei
fler Gettys)の「Xウィンドウズ・システ
ム(The X Window System)」を参
照されたい。X11/NeWsウィンドウセーバープロ
トコルについては、1988年夏季ユーザー会議議事録
(Proceedings of the Summe
r 1988 User Conference)」
(1988年、23〜25ページ所定の前記シャウフラ
ーの「X11/NeWs設計の概観(X11/NeWs
Design Overvier)」と題する論文を
参照されたい。
【0020】ウィンドウマネジャーは、スクリーンを占
めるウィンドウの作業域を制御し、メニューウィンドウ
の作業域を決定する。ウィンドウマネジャーは、X11
プロトコルの場合に典型的であるように別々のプロセス
にでき、または、ウィンドウマネジャーがウィンドウサ
ーバー中に存在するプロセスの集まりであるようなX1
1/NeWsウィンドウシステムの場合にウィンドウサ
ーバーの一部とすることができる。ツールキット21
0,230は、ウィンドウシステムメニューがどのよう
にして出現するか、ユーザーが制御区域とどのようにし
て対話するか、制御域がどのように編成されるかを決定
する。ツールキット210,230は、ツールキットが
アプリケーションプログラムをウィンドウシステムに対
してインターフェイスするために参照する機能のライブ
ラリイより成るツールキットライブラリイ240を含む
ことが好ましい。アプリケーションプログラムは、ツー
ルキットおよびツールキットライブラリイで利用できる
プロセスを介して、ウィンドウシステム内で通信および
動作する。ツールキットおよびツールキットライブラリ
イの例はX View(商標)ツールキットである。こ
のX ViewツールキットはX11/NeWs(商
標)ウィンドウシステムで用いられる。X Viewツ
ールキットについては、第3回年次技術会議(3rd
Annual Technical Conferen
ce)、1989年、におけるヤコブス(Jacob
s)著「X View ツールキット、アーキテクチャ
の概観(The X View Toolkit, A
rchitectual Overview)」を参照
されたい。ウィンドウシステム環境において時間的に厳
しいアプリケーションプログラムを動作させる本発明の
方法においては、アプリケーションプログラムは2つま
たはそれ以上のプロセスへ機能的に分割される。この場
合に1つのプロセスは時間的に厳しいプロシージャを含
む。時間的に厳しいプロシージャというのは、所定の時
間内に応答し、活動を行うことを要するプロシージャを
意味する。図3を参照して、アプリケーションプログラ
ム305は第1のプロセス300と第2のプロセス35
0へ分割される。
【0021】第1のプロセス300は、正しく実行する
ために所定の応答時間を要する、時間的に厳しいプロシ
ージャと指令を含むアプリケーションプログラムのプロ
シージャを含む。この問題は、ハードウェアというのは
動作時に遅れがほとんど、または全くないという本質的
に実時間の装置であるから、ハードウェアをソフトウェ
アでエミュレートするような場合に起こる。更に、割込
みのようなシステムサービスルーチンのソフトウェアエ
ミュレーションはタイミング良く動作せねばならない。
したがって、時間的に厳しいアプリケーションプロセス
の例は、ディスクドライブ制御器のエミュレーション、
割込み制御器のエミュレーション、キーボード制御器の
エミュレーション、直列I/Oインターフェイスのエミ
ュレーション、クロックエミュレータのエミュレーショ
ンのような入力/出力エミュレーション手順と、ハード
ウェアをエミュレートする別のプロセスとを含むが、そ
れらに限定されるものではない。第1のプロセス300
はウィンドウシステムでは動作しないが、その代わりに
オペレーティングシステムと直接通信する。第1のプロ
セスはウィンドウシステムをバイパスするから、ウィン
ドウシステムによっては制御されず、どのような時間も
ウィンドウシステムにより停止させることはできない。
更に、ブロッキングオペレーションを他のプロセスに置
くことにより、時間的に厳しいプロシージャのブロッキ
ングオペレーションによる停止は避けられる。
【0022】第2のプロセス350は、ウィンドウシス
テムとの対話を要するが、時間的に厳しくない手順と、
実行された時にプログラム/プロセスを停止させるブロ
ッキングプロシージャとを実現する。ウィンドウシステ
ムプロシージャの例は、データをスクリーンの別々の部
分に表示するため、または特定のウィンドウのサイズを
定め直すためのプロシージャを含む。第2のプロセス3
50は、アプリケーションのメニュー性能、制御域性
能、作図性能を提供するツールキット310へリンクさ
れる。ウィンドウサーバー320は表示を制御し、アプ
リケーションプログラムの表示をアクセスする。したが
って、第1のプロセスはウィンドウシステムの要求と制
約を受ける。ブロッキングオペレーションはディスクか
らの読出しおよびその他のファイルオペレーションのよ
うな、実行に長い時間を要し、実行された時に、ブロッ
キングオペレーションの実行が終わるまで、オペレーシ
ョンシステムによりプログラムを停止させるプロシージ
ャである。
【0023】アプリケーションに対するブロッキングオ
ペレーションの影響を最小にするために、アプリケーシ
ョンを追加のサブプログラムに分離することもできる。
追加プロセスを作成できる。各追加プロセスは1つまた
は複数のブロッキングプロシージャを含む。UNIX
(商標)オペレーティングシステム環境においては、1
つのブロッキングプロシージャに遭遇した時にプログラ
ムの実行を続行できるようにするためのUNIXオペレ
ーティングシステムの性能を利用するために、各プロセ
スはただ1つのブロッキングプロシージャを含むことが
好ましい。(しかし、2つ以上のブロッキングプロシー
ジャを実行するならば、プログラム/プロセスは阻止さ
れる。)したがって、アプリケーションを停止できるプ
ロシージャにより第1のプロセスは影響を受けない。
【0024】アプリケーションプログラムは2つまたは
それ以上のプロセスに分けられるが、それらのプロセス
は互いに一緒に動作し、ユーザーにとっては1つのプロ
グラムとして見える。これはプロセス間通信と共用メモ
リの少なくとも一方により行われる。プロセス間通信性
能の一例を図4を参照して説明する。しかし、他のプロ
セス間通信機能を使用できることが当業者には明らかで
ある。更に、以下の説明は2つまたはそれ以上のプロセ
スの間のプロセス間通信についてのものである。しか
し、上記のように、本発明は2つのプロセスに限定され
るものではなく、アプリケーションプログラムを表す3
つまたはそれ以上のプロセスで実現することもできる。
【0025】図4を参照して、UNIXをベースとする
システムにおいては、UNIXシステムV IPCパッ
ケージに設けられるメッセージ機構を用いることによ
り、プロセスは他のプロセスと通信できる。オペレーテ
ィングシステム510は、プロセス間メッセージを格納
するメッセージ待ち行列530を維持する。通信するた
めに、第1のプロセス500はMSGGET(MSGC
REAT)システムコールを送って、メッセージ待ち行
列530を指定するメッセージ記述を作成する。オペレ
ーティングシステム500は待ち行列構造を割当て、識
別子を第1のプロセス500へ戻す。そうすると第1の
プロセス500はMSGSNDシステムコールを実行し
てメッセージを送る。オペレーティングシステム510
は、第1のプロセス500がメッセージ記述に従って書
くことを許されているか、どうかを調べる。もし許され
ておれば、オペレーティングシステム510はメッセー
ジをメッセージ待ち行列に置く。第2のプロセス520
は、MSGGETシステムコールを実行することによ
り、オペレーティングシステム510内のメッセージ待
ち行列530からの第1のプロセスから送られたそれの
メッセージを受ける。Unixシステムの詳細について
は、バック(Back)著「Unixオペレーティング
システムの設計(The Design of the
Unix Operating System)」
(1986年、プレンティス・ホール(Prentic
e Hall)発行を参照されたい。
【0026】プロセスはSockets(商標)を介し
て互いに通信できる。そのSocketsもUNIXオ
ペレーティングシステムにより供給される。Socke
tシステムは通信リンクの1つの端部点を定める。UN
IXオペレーティングシステムにおけるプロセス間通信
の流れ図の一例が図5に示されている。プロセスが互い
に通信できる前に、それらのプロセスは通信リンクを設
定せねばならない。図5を参照して、通信するために、
サーバープロセスは流れSocket610を作成し、
Socket接続620に名を付け、入来メッセージ6
30のための内部待ち行列長さをセットし、依頼人プロ
セス640からの任意の接続要求を検査する。接続要求
は通信したいというプロセスの希望を示す。要求がある
とすると、サーバープロセスは入来要求650を受け、
依頼人プロセス670と通信する。依頼人プロセスは、
流れSocket680を作成することにより通信の用
意を行い、名づけられたサーバーSocketへ接続す
ることを中枢部に要求し、サーバープロセスと通信す
る。
【0027】各プロセスはそれ自身の仮想アドレス空間
およびメモリ内を走り、オペレーティングシステムは他
のプロセスがそのメモリ領域をアクセスすることを阻止
する。しかし、種々のプロセスは、それらのプロセスの
仮想アドレス空間の部分を共用し、それから、共用され
ているメモリに対して読出しおよび書込みを行うことに
より、互いに通信できる。これについてのこれ以上の詳
細については、前掲バック(Back)著「Unixオ
ペレーティングシステムの設計」を参照されたい。
【0028】プロセス間の大量のデータの通信は共用メ
モリを利用して行うことが好ましい。たとえば共用メモ
リを用いることにより、第1のサブプログラムがデータ
をメモリへ書込むことができ、第2のサブプログラム
が、第1のサブプログラムによりメモリへ書込まれてい
るデータを読出すことができる。
【0029】次に図6を参照して、第1のサブプログラ
ムは、システムコールを実行し共用メモリの新しい領域
を作成することにより第2のサブプログラムと通信で
き、それからその新しい領域をそれのプロセスの仮想ア
ドレスへ取付ける。そうすると、共用メモリを用いて2
つまたはそれ以上のサブプログラムを読出すことによ
り、共用メモリに記憶されているデータを共用できる。
【0030】メモリに対するアクセスを共用するプロセ
スは、機能的なシステム挙動を確実にするために、それ
らのプロセスによるメモリの使用を統合せねばならな
い。たとえば、2つのプロセスが共用メモリ場所へ同時
に書込まないようにするために、プロセスに順位をつけ
て置くことができる。共用メモリに対するプロセスのア
クセスを制御する1つの方法は、セマフォを用いること
である。共用メモリ領域をアクセスすることを望むプロ
セスは、ある指定されたセマフォオペレーションの実行
に成功することにより、アクセスの許可を得なければな
らない。セマフォがプロセスによりセットされるものと
すると、対応するメモリ領域がロックされることによ
り、他のプロセスがそのメモリ領域をアクセスすること
を阻止する。セマフォ実現は、それがセットされる時は
零にセットでき、それがフリーの時は1にセットされ
る。フリーな(セットされていない)セマフォはメモリ
場所を利用できることを示す。ユニプロセッサUnix
システムにおいてプロセスのアクセスを制御するセマフ
ォの例を図7を参照して説明する。しかし、他の共用メ
モリ法を使用できることが当業者には明らかである。
【0031】図7を参照して、セマフォは最初はセット
されず、共用メモリを使用できることを示す。700に
おいて、セマフォがセットされているかどうかを第1の
プロセスは調べる。セマフォがセットされていないと、
第1のプロセスはセマフォをセット(710)、メモリ
を用いる(720)。同様に、セマフォがセットされて
いるかどうかを第2のプロセスが調べる(740)。セ
マフォが第1のプロセスによりセットされているとする
と、セマフォがフリーにされるまで第2のプロセスは眠
る(760)。セマフォがフリーになると、第2のプロ
セスはセマフォをセットし(750)、メモリを用いる
(770)。
【0032】データを共用するために共用メモリ機構を
利用できる。たとえば、アプリケーションプログラムは
モデムから送られたデータを受け、それをウィンドウ上
に表示する。本発明に従って、第1のプロセスのI/O
プロセスがモデムポートを介してデータを受け、共用メ
モリ領域にそのデータを書込む。第1のプロセスがデー
タを共用メモリ領域に書込んでいる間に、セマフォは第
1のプロセスによりセットされる。第1のプロセスが書
込みを終わって、セマフォをフリーにした後で、第2の
プロセスはデータを共用メモリ領域から読出し、ウィン
ドウシステムを介して書込んで、対応するウィンドウ内
に表示する。プロセス間通信は共用メモリを介して行
い、「Signal」システムコールをUNIXオペレ
ーティングで利用できることが好ましい。信号が発生さ
れた時に通知すべきプロセスを識別する信号番号で名S
ignalは識別される。中枢部へは発生できるそれら
のSignalについて最初に知らされ、特定のSig
nal番号のSignalが発生された時に通知される
べきプロセスも最初に知らされる。プロセスによりある
Signalが発生されると、中枢部はSignal番
号に対応するプロセスに、Signalにサービスする
所定のルーチン/プロシージャを実行させる。Sign
alについての詳細は前掲書「UNIXオペレーティン
グシステムの設計」200〜212ページを参照された
い。本発明の好適な実施例においては、アプリケーショ
ンプログラムは2つのプロセスを有する。第1のプロセ
スは時間的に厳しいプロシージャを含み、第2のプロセ
スは、ウィンドウシステムプロシージャを実行するプロ
シージャを含んでいる残りのプロシージャを含む。それ
らのプロセスはマスタ=スレイブ関係で機能し、第1の
プロセスがマスタとして機能し、第2のプロセスがスレ
イブとして機能する。共用メモリが設定され、そのメモ
リは両方のプロセスでアクセスできる。アプリケーショ
ンを開始するために、第1のプロセスの実行を開始させ
るための指令をユーザーは実行する。第1のプロセスは
アプリケーションを構成するためのスタートコードを実
行し、それから第2のプロセスへ渡す。たとえば、第1
のプロセスはプロセス間通信機構を初期化でき、または
共用メモリの区間を設定できる。アプリケーションプロ
グラムの実行中に、第2のプロセスにおけるあるプロシ
ージャを実行すべき時に、たとえば、ウィンドウシステ
ムプロシージャを実行すべき時に、第1のプロセスは、
実行すべきプロシージャを識別する指令と、そのプロシ
ージャを実行するために必要なパラメータとを共用メモ
リ内に置く。それから第1のプロセスは、第2のプロセ
スが共用メモリをアクセスし、共用メモリに記憶されて
いる指令を実行することを指示する、所定の信号番号を
有するSignalを生ずる。第2のプロセスの実行中
に、第1のプロセスはそれの実行を続けることにより、
第1のプロセスはウィンドウシステムプロシージャと、
ウィンドウシステムプロシージャの実行中に生ずること
があるプロセスの停止とにより影響を受けることはな
い。第1のプロセスは共用メモリを定期的にポーリング
して、第2のプロセスにより実行されるプロシージャに
より戻すことができる情報を探す。共用メモリ中で何ら
かの情報が見つかったら、第1のプロセスはその情報を
取出すだけである。このようにして、第1のプロセスは
第2のプロセスから自身を更に絶縁して、ユーザーにと
って単一アプリケーションプログラムとして明らかに動
作させるために、完全双方向通信を維持する。
【0033】時間的に厳しいプロシージャを含んでいる
プロセスと、ウィンドウシステムインターフェイス特定
プロシージャおよびブロッキングプロシージャを含むプ
ロセスとにアプリケーションプログラムを分離すること
により、時間的に厳しいプロシージャは、時間的に厳し
いプロシージャを停止させることができ、プロシージャ
から絶縁され、その間にプロセスは互いに一緒に実行
し、プロセス間通信により相互に通信し、ユーザーにと
って1つのアプリケーションプログラムとして見えるよ
うにできる。
【図面の簡単な説明】
【図1】時間的に厳しいプログラムを実行するための本
発明の好適な実施例の典型的なコンピュータシステムの
ブロック図表現である。
【図2】サーバをベースとするウィンドウシステムのブ
ロック図表現である。
【図3】ウィンドウシステム環境において時間的に厳し
いプログラムを動作させる方法のブロック図表現であ
る。
【図4】メッセージを介する他のプロセスと通信する1
つのプロセスのブロック図表現である。
【図5】ソケットを用いるプロセス間通信を示す流れ図
である。
【図6】プロセスの間の共用されるメモリを示す流れ図
である。
【図7】セマフォを用いるプロセスの間のアクセスを示
す流れ図である。
【符号の説明】
102 I/O回路 103 CPU 104 メモリ 106 大容量メモリ 107 表示モニタ 108 カーソル制御器 260 表示装置 270 キーボード 280 マウス

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置(CPU)と、メモリと、
    キーボードとマウスおよび表示器を含む入力/出力手段
    とを有し、ウィンドウをベースとするコンピュータシス
    テムにおいて、応答を要求し、所定の時間内に活動を行
    うことを要求する時間的に厳しいプロシージャと、時間
    的に厳しくないプロシージャとを含むウィンドウシステ
    ム環境プログラムを実行する方法において、 応答を要求し、かつ所定の時間内に活動を行うことを要
    求するプロシージャを含む第1のプロセスと、ユーザー
    入力とウィンドウシステムを介する出力を要求するプロ
    シージャを含む第2のプロセスとを含み、アプリケーシ
    ョンプログラムを構成する少なくとも2つのプロセスを
    発生する過程と、 前記第1のプロセスと前記第2のプロセスを、アプリケ
    ーションプログラムとして、一緒に実行する過程と、を
    備え、このアプリケーションプログラムは、 前記第1のプロセスと前記第2のプロセスの間でメッセ
    ージを送ることができるように、少なくとも1つのプロ
    セス間通信機構を介して、前記第1のプロセスと前記第
    2のプロセスの間で通信する過程と、 共用されているメモリを用いて、前記プロセスがデータ
    と情報を相互に転送できるように、前記第1のプロセス
    と前記第2のプロセスの間でメモリを共用する過程と、
    を備え、それにより、前記プロセスは相互に協力して動
    作し、1つのプログラムとして実行するものとユーザー
    には見え、第2のプロセスの停止は第1のプロセスの実
    行に影響を及ぼさず、時間的に厳しいプロシージャの停
    止は避けられることを特徴とする、ウィンドウシステム
    環境において時間的に厳しいプロセスを実行する方法。
  2. 【請求項2】 中央処理装置(CPU)と、メモリと、
    キーボードとマウスおよび表示器を含む入力/出力手段
    とを備え、応答を要求し、かつ所定の時間内に活動を行
    うことを要求する時間的に厳しいプロシージャと、時間
    的に厳しくないプロシージャとを含むプログラムを実行
    するための、ウィンドウをベースとするコンピュータシ
    ステムにおいて、 アプリケーションプログラムを形成する第1のプロセス
    および第2のプロセスであって、前記第1のプロセスは
    応答を要求し、かつ所定の時間内に活動を行うことを要
    求するプロシージャを含み、前記第2のプロセスはユー
    ザー入力とウィンドウシステムを介する出力を要求する
    プロシージャを含む、前記第1のプロセスおよび前記第
    2のプロセスと、 前記第1のプロセスと前記第2のプロセスをアプリケー
    ションプログラムとして一緒に実行する実行手段と、 前記第1のプロセスと前記第2のプロセスの間でメッセ
    ージを送ることができるように、第1のプロセスと第2
    のプロセスが通信するための少なくとも1つのプロセス
    間通信機構と、 前記プロセスがデータと情報を共用されるメモリを用い
    て相互に転送できるように、前記第1のプロセスと前記
    第2のプロセスにより共用させられるメモリと、を備
    え、それにより、前記プロセスは相互に協力して動作
    し、1つのプログラムとして実行するものとユーザーに
    は見え、第2のプロセスの停止は第1のプロセスの実行
    に影響せず、時間的に厳しいプロシージャの停止は避け
    られることを特徴とするプログラムを実行するためのウ
    ィンドウをベースとするコンピュータシステム。
JP1991351789A 1990-12-14 1991-12-16 ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置 Expired - Lifetime JP3547011B6 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US628342 1984-09-19
US62834290A 1990-12-14 1990-12-14

Publications (3)

Publication Number Publication Date
JPH06214951A true JPH06214951A (ja) 1994-08-05
JP3547011B2 JP3547011B2 (ja) 2004-07-28
JP3547011B6 JP3547011B6 (ja) 2004-11-24

Family

ID=

Also Published As

Publication number Publication date
JP3547011B2 (ja) 2004-07-28
KR920013086A (ko) 1992-07-28
EP0490595A2 (en) 1992-06-17
DE69129443T2 (de) 1999-01-14
EP0490595A3 (en) 1993-02-24
CA2057404C (en) 2002-08-06
CA2057404A1 (en) 1992-06-15
US5991820A (en) 1999-11-23
KR100208497B1 (ko) 1999-07-15
DE69129443D1 (de) 1998-06-25
EP0490595B1 (en) 1998-05-20

Similar Documents

Publication Publication Date Title
EP0490595B1 (en) Method for operating time critical processes in a window system environment
JP3659062B2 (ja) 計算機システム
US6560626B1 (en) Thread interruption with minimal resource usage using an asynchronous procedure call
US10261813B2 (en) Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator
Anderson et al. Scheduler activations: Effective kernel support for the user-level management of parallelism
US6046752A (en) Peer-to-peer parallel processing graphics accelerator
US7752620B2 (en) Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions
US6954933B2 (en) Method and apparatus for providing and integrating high-performance message queues in a user interface environment
US6230118B1 (en) DOS based application supports for a controllerless modem
EP0475600A2 (en) System and method for communication between windowing environments
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
US20020087618A1 (en) System and method for utilizing dispatch queues in a multiprocessor data processing system
EP0834808A1 (en) Method and apparatus for user-level support for multiple event synchronization
WO2007024444A1 (en) Method and apparatus for supporting universal serial bus devices in a virtualized environment
WO2006069484A1 (en) Methods and apparatuses to maintain multiple execution contexts
EP0287295A2 (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
JP2004078322A (ja) タスク管理システム、プログラム、記録媒体、及び制御方法
JP2820189B2 (ja) 数値制御装置の制御ソフトウェア実行システム
JP3547011B6 (ja) ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置
CN115269149A (zh) 一种基于共享内存的多窗口任务调度机制的方法与系统
WO1998029807A1 (en) Real time services in backwardly compatible operating systems
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
JP2002014827A (ja) プロセスの制御及び可視化方法
JPH0470935A (ja) 計算機システム
JPH0695895A (ja) アプリケーシヨンプログラム装置及びその方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040408

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8