JPH04215136A - 周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法 - Google Patents

周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法

Info

Publication number
JPH04215136A
JPH04215136A JP3019229A JP1922991A JPH04215136A JP H04215136 A JPH04215136 A JP H04215136A JP 3019229 A JP3019229 A JP 3019229A JP 1922991 A JP1922991 A JP 1922991A JP H04215136 A JPH04215136 A JP H04215136A
Authority
JP
Japan
Prior art keywords
peripheral device
domain
access
data processing
processing system
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
JP3019229A
Other languages
English (en)
Other versions
JPH0831042B2 (ja
Inventor
Gregory A Flurry
グレゴリー・アラン・フルリー
Larry W Henson
ラリー・ウイリアム・ヘンソン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04215136A publication Critical patent/JPH04215136A/ja
Publication of JPH0831042B2 publication Critical patent/JPH0831042B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムに
関するものであり、具体的には、ディスプレイ・アダプ
タを含むデータ処理システムのソフトウェアによる管理
に関するものである。
【0002】
【従来の技術】現在の表示アダプタは、複数のポートへ
のアクセスを提供する能力を備えている。これは、1つ
の表示アダプタに、実際に2つの別々にアドレス可能な
ポートを介してアクセスできることを意味している。こ
れによって、アプリケーション・プログラムは、表示装
置にアクセスする際に、どちらか一方のポートを参照で
きるようになる。
【0003】この分野の技法の従来技術には、フォール
ヒース(Voorhies)、カーク(Kirk)、ラ
スロップ(Lathrop)の論文、“Virtual
 Graphics”, ComputerGraph
ics,Vol.22,No.4,1988年8月があ
る。この論文は、単一のタスク本位のグラフィックス・
ディスプレイ・アダプタを含む多重プロセス・ワークス
テーションを対象としている。この論文は、ディスプレ
イ・アダプタのコンテキストを速やかに切り替える問題
を対象としている。これは、グラフィック所有権違反(
あるグラフィックス・プロセスが、アクセス権を持たな
い装置にアクセスを試みた)の検出に基づくコプロセッ
サ例外、ハードウェア内での描画コンテキストの効率的
なスワッピング、コマンド・フロー制御に基づく例外、
ウィンドウ境界内での描画のクリッピング、および画素
フォーマットと画素用ルックアップ・テーブルの切替え
を用いることで達成される。この参照文献は、追加のハ
ードウェアが、ディスプレイ・コンテキストの速やかな
切替えという問題の部分的解決策となることを教示して
いる。
【0004】ローデン(Rhoden) とウィルコッ
クス(Wilcox)の論文“Hardware Ac
celeration for Windows Sy
stem”Computer  Graphics,V
ol.23,No.3,1989年7月は、多重ウィン
ドウ処理機を提供するためのハードウェア実施様態を示
している。
【0005】“Virtual Machine In
terface/Virtual Resource 
Manager”,IBMテクニカル・ディスクロージ
ャ・ブルテン,Vol.30,No.1,1987年6
月は、仮想マシン用のコンテキスト切替機構を開示して
いる。この参照文献では、中央演算処理装置に対する完
全なコンテキストが切り替えられる。
【0006】“Screen−Sharing Rin
g for Enhanced Multiple A
pplication Display”,IBMテク
ニカル・ディスクロージャ・ブルテン,Vol.28,
No.8,1986年1月は、専用の長方形サブエリア
内に表示されるディスプレイ・ウィンドウをレイアウト
するための技法を開示している。
【0007】“Asynchronous Data 
Transfer Buffer for NP Sy
stems”,IBMテクニカル・ディスクロージャ・
ブルテン, Vol.25,No.8,1983年1月
は、プロセッサが互いに通信して、共通の私用メモリに
アクセスする際に競合が発生しないようにする、多重処
理通信システムを開示している。
【0008】“Hardware Display W
indowing System”,IBMテクニカル
・ディスクロージャ・ブルテン,Vol.28,No.
12,1986年5月は、多重プロセッサによって共用
される表示装置と共に用いるハードウェア・ウィンドウ
処理システムを開示している。
【0009】“Multiprocessor Sys
tem to Improve Context Sw
itching”,IBM テクニカル・ディスクロー
ジャ・ブルテン,Vol.27,No.5,1984年
10月は、一時に1台のプロセッサだけが活動状態であ
ると指定することによって、コンテキストの切替えを減
らす処理システムを開示している。
【0010】“Multi−Tasking Usin
g Co−Equal Multiprocessor
s Having Memory−Lock Faci
lities”,IBM テクニカル・ディスクロージ
ャ・ブルテン,Vol.24,No.1,1981年1
1月は、共通の共用メモリを使用する多重処理システム
用のロック方式を開示している。
【0011】
【発明が解決しようとする課題】本発明の目的は、第1
および第2のポートを有する周辺装置を少なくとも1つ
含む、複数のプロセスを実行するための、マルチタスク
式データ処理システムを提供することである。
【0012】
【課題を解決するための手段】ある周辺装置全体を制御
するための周辺装置へのアクセス権を、1つのプロセス
だけに与える能力を含む周辺装置マネジャが提供される
。この周辺マネジャは、第1のプロセスに周辺装置の1
つのポートへのアクセス権を与え、それとは独立にかつ
同時に、第2のプロセスにその周辺装置の第2のポート
へのアクセス権を与える能力をも含んでいる。
【0013】
【実施例】本発明は、マルチタスク式オペレーティング
・システムで典型的なタイム・シェアリング(同時的)
環境で実行されている複数のアプリケーション・プロセ
スに、ディスプレイ・アクセス権を与えるためのデータ
処理機構に関するものである。図1では、これらのアプ
リケーション・プログラム(ユーザに対するディスプレ
イ出力を必要とするアプリケーション・プログラム)が
、クライアントA(16)、クライアントB(18)お
よびクライアントC(20)として示されている。これ
ら3つのアプリケーション・プログラム16、18、2
0は、ユーザにはアプリケーション・プログラムのすべ
てが同時に実行されているように見えるマルチタスク環
境で実行されている命令として、中央演算処理装置10
内に存在する。さらに、Xサーバ14がある。プログラ
ム・モジュールXサーバ14は、ディスプレイ資源マネ
ジャとして、特に、ディスプレイ出力を必要とするアプ
リケーション・プログラムのためにディスプレイの資源
を管理するために、UNIXシステム内に設けられてい
る。従来の技術では、クライアントA16などのアプリ
ケーション・プログラムは、Xサーバ14、ポート12
Aを介してのみ表示装置12とインタフェースする。 実際、表示装置へのアクセスを必要とするアプリケーシ
ョン・プログラムはすべて、Xサーバを介してのみ、表
示装置とインタフェースするはずである。本発明では、
クライアントB18やクライアントC20などのアプリ
ケーション・プログラムは、表示装置12に対する直接
ウィンドウ・アクセス(DWA)を実行する能力を与え
られている。当初、クライアントB18およびクライア
ントC20は、ディスプレイ上のウィンドウなど、表示
装置資源をそれらに割り振らせるために、Xサーバ14
にアクセスしなければならない。しかし、資源が割り振
られた後には、クライアントB18およびクライアント
C20は、ユーザへの情報を表示するために、ポート1
2Bを介して表示装置12に対し直接ウィンドウ・アク
セス機能を実行する。これらのアクセスは、クライアン
トB18およびクライアントC20が互いに独立に存在
できるような形で実行される。
【0014】また、図1には、描出コンテキスト・マネ
ジャ(RCM)22も含まれている。一般的に言うと、
RCM22は、表示装置にアクセスしているプログラム
(Xサーバ14、クライアントB18またはクライアン
トC20)のそれぞれが、表示装置12にアクセスして
いる他のプログラムのいずれともインタフェースする必
要なしに、それを行なえるような機構をもたらしている
。表示装置12は、順次再使用可能な装置として扱わな
ければならない、CRTディスプレイ用の通常の表示装
置である。言い替えると、表示装置は、一時に1つのア
プリケーション・プログラムのデータだけが見えると期
待する。したがって、RCM22は、いかなる所与の瞬
間にも1つのアプリケーション・プログラム1つに表示
装置12へのアクセスを許し、同時にそれがXサーバ1
4、クライアントB18およびクライアントC20から
見えるようにして、これらのアプリケーション・プログ
ラムが、その表示装置に同時にデータを供給できるよう
にする。言い替えれば、Xサーバ14と、他のアプリケ
ーション・プログラム18および20は共に、他のどの
装置が表示装置12にアクセスを試みているかについて
は関心をもたずに、表示装置12に対して直接読み書き
できる。とはいえ、いかなる時点でも表示装置12に対
して書込みまたは読取りを行なえるのは、Xサーバ、ク
ライアントBまたはクライアントCのうちの1つだけで
ある。
【0015】Xサーバ14に接続されたクライアントA
16は、その情報のすべてを、Xサーバ14を介して表
示装置12とやり取りする。これは、クライアント−サ
ーバ環境での従来技術の典型的なディスプレイ・アダプ
タ・インタフェースである。しかし、あるクラスのアプ
リケーション・プログラムでは性能要件が増大している
ため、それを満たすために直接ウィンドウ・アクセス能
力が必要である。
【0016】RCM22は、(a)いかなる所与の時点
でも、表示装置12へのアクセスを望むプロセスのうち
の1つだけが、それを行なえるようにし、かつ(b)そ
のアプリケーション・プログラムが必要とする、表示装
置の描出コンテキストを切り替えることによって、この
インタフェースを提供する。描出コンテキストとは、X
サーバ14、クライアントB18またはクライアントC
20などあるプロセスによって表示装置12上に確立さ
れる、表示装置がそのプロセスのために正しく描出でき
る環境である。描出コンテキストには、たとえば、ウィ
ンドウ・クリッピング情報および、線の色やスタイル(
すなわち、実線か破線か)などの描出属性が含まれる。 言い替えると、アプリケーション・プログラムがユーザ
にデータを表示する際に、そのアプリケーション・プロ
グラムが必要とするディスプレイ環境を提供しなければ
ならない。ところが、この環境は、アプリケーション・
プログラムごとに異なる。RCM22の機能は、各アプ
リケーション・プログラムに表示装置へのアクセスを許
すときに、そのアプリケーション・プログラムに適した
描出コンテキストまたは環境を確実に表示装置に置くこ
とである。
【0017】今論じている好ましい実施例では、1個の
表示装置12が、RCM22に接続されている。しかし
、添付の図面を調べれば当業者には明白なように、複数
の表示装置を接続した状態でも機能するように本発明は
設計されている。
【0018】図2は、RCM22の詳細図である。RC
M22は、アプリケーション・プログラムへのインタフ
ェースを提供する。部分30は、アプリケーション・コ
ードを表す。アプリケーション・コード30は、RCM
システム・コール32と直接インタフェースする(図3
および表1参照)。
【0019】アプリケーション・プログラムは、RCM
22へのシステム・コールを行なう。RCMは、RCM
データ44を割り振り、修正し、またはその他何らかの
形でそれにアクセスする。また、RCMシステム・コー
ル機能は、データ域を介して、図に示した他の構成要素
と通信できる。
【0020】RCMタイマ・ハンドラ34は、タイマ割
込みを処理する機能である。RCMは、オペレーティン
グ・システムに、RCMタイマ・ハンドラ34を周期的
に呼び込ませる。RCMタイマ・ハンドラ34は、いく
つかの判断基準を用いて、現在表示装置に対するアクセ
ス権を持っているプロセスからそれを取り上げ、別のプ
ロセスにこの表示装置へのアクセス権を与える(言い替
えれば、描出コンテキストの切替えを開始する)ことが
可能か否かを決定することができる。たとえば、タイマ
・ハンドラ34が呼び込まれたことは、表示装置に対す
るアクセス権を有する第1のプロセスで、指定された時
間が経過したことを示す。第2のプロセスがその装置に
対するアクセス権を要求している場合、タイマ・ハンド
ラは、コンテキスト切替えを開始し、その結果、第1の
プロセスは、装置にアクセスできなくなり、第2のプロ
セスが、表示装置にアクセスできるようになる。
【0021】RCMのヘビー・スイッチ・コントローラ
36は、オペレーティング・システムのカーネル・プロ
セスである。これは、タイマ・ハンドラ34やグラフィ
ックス障害ハンドラ40など、割込みレベルで動作する
RCM構成要素によって開始される切替えのうち、その
実行に、オペレーティング・システムが割込みハンドラ
の動作に許可するよりも多くの時間または機能を要する
もの(たとえば、割込みハンドラは休眠できない)を制
御する。たとえば、追加のメモリ資源が必要とされ、そ
の結果かなりの時間を消費する仮想アドレス変換タスク
の実行が必要となる場合などが、制御される切替えであ
る。このヘビー・スイッチ・コントローラ36は、割込
みハンドラがこの追加のタスクを実行する必要なしに、
この機能を実現する。たとえば、ヘビー・スイッチ・コ
ントローラ36は、他のプロセスの動作と並行してDM
A転送を開始することができる。
【0022】RCMの事象ハンドラ38は、表示装置か
らの割込みのすべてをさばく割込みハンドラである。こ
れは、外部事象が発生した時点を決定し、事前に設定さ
れた条件に従って、待機中のプロセス(たとえば、ヘビ
ー・スイッチ・コントローラや、アプリケーション・プ
ログラム)に警報を発し、または単に情報をRCMデー
タ記憶域44に記録する。
【0023】グラフィックス障害ハンドラ40は、表示
装置へのアクセスに関係するアプリケーション・プログ
ラムの活動によって発生した(ページ不在に類似の)例
外を処理する、RCMの機能である。表示装置にアクセ
スする許可を得ていないプロセスが表示装置へのアクセ
スを試みたとき、グラフィックス障害ハンドラ40が呼
び込まれる。グラフィックス障害ハンドラ40は、所与
の判断基準に基づいて、障害を発生しているプロセスに
、その装置へのアクセス権を与えるべきか否かを決定す
る。こうした判断基準の例は、現在装置へのアクセス権
を持っているプロセス用のタイマの状態、いずれかのプ
ロセスが装置をロックしているか否か、あるいは変更を
抑止するその他の条件である。そのプロセスに表示装置
へのアクセス権を与えるべきである場合、グラフィック
ス障害ハンドラ40は、コンテキスト切替えを開始して
、装置上で障害を発生しているプロセスに対する正しい
環境を提供し、以前のプロセスを装置にアクセスできな
くした後に、障害を発生しているプロセスが装置にアク
セスできるようにする。
【0024】エグジット・ハンドラ42は、ある種のプ
ロセス状態の変化を処理する機能である。言い替えれば
、プロセスがエグジット(脱出)または終了しようとし
ている(すなわち、もはや表示装置へのアクセスを必要
とせず、さらにCPUさえも必要としない)場合、エグ
ジット・ハンドラ42は、RCMデータ記憶域44内の
データを適当な状態にするために必要な動作を行なう。
【0025】図3は、描出コンテキスト・マネジャのシ
ステム・コール32を示す流れ図である。ステップ70
0で、描出コンテキスト・マネジャは、(汎用レジスタ
およびスタックをセーブするなど)ユーザ・モード環境
をセーブした後に、(カーネル・モード・スタックを用
意するなど)カーネル環境を確立する。このシステム・
コールは、そのシステム・コールが対象とする装置を指
定するパラメータ、実行すべき機能、およびその機能に
必要なパラメータを含んでいる。これらの機能を実行し
た後、ユーザ・モード環境を復元するステップ702が
実行される。図3の機能には、機能MAKE_GP(グ
ラフィックス・プロセス生成)モジュール704が含ま
れる。機能MAKE_GPは図5に示されている。機能
UNMAKE_GP(グラフィックス・プロセス削除)
モジュールは図6に示されている。図7は、CREAT
E_RCX(描出コンテキスト作成)モジュール150
である。図8は、DELETE_RCX(描出コンテキ
スト削除)モジュール710である。図9は、BIND
(バインド)モジュール712である。図10は、SE
T_RCX(描出コンテキスト設定)モジュール714
である。図11は、CREATE_SERVER_AT
TR(サーバ属性作成)モジュール716である。図1
2は、DELETE_SERVER_ATTR(サーバ
属性削除)モジュール718である。図13は、UPD
ATE_SERVER_ATTR(サーバ属性更新)モ
ジュール720である。図14は、CREATE_CL
IENT_ATTR(クライアント属性作成)モジュー
ル722である。図15は、DELETE_CLIEN
T_ATTR(クライアント属性削除)モジュール72
4である。図16は、UPDATE_CLIENT_A
TTR(クライアント属性更新)モジュール726であ
る。図17は、LOCK_DEVICE(装置ロック)
モジュール728である。図18は、UNLOCK_D
EVICE(装置ロック解除)モジュール730である
。図19は、LOCK_DOMAIN(ドメイン・ロッ
ク)モジュール732である。図20は、UNLOCK
_DOMAIN(ドメイン・ロック解除)モジュール7
34である。これらの機能のそれぞれについて、後で詳
細に説明する。
【0026】表1は、特にグラフィックス・システム用
のシステム・コール・インタフェースを示す表である。 当業者なら理解する通り、システム・コールは、使用中
のオペレーティング・システムの提供するプロトコルで
ある。本発明では、グラフィックス・システム・コール
は、AIXオペレーティング・システムで実施されてい
る。
【0027】 表1 GRAPHICS_SYSTEM_CALL(Devi
ce, Command, Data)Device=
特定の表示装置を示す Command=実行すべき特定の機能(たとえば、M
AKE_GP、CREATE_RCXなど。)Data
=機能特有のデータ構造 (たとえば、CREATE_RCXの場合、この構造は
、以下のフィールドを有する。)エラー・コード、装置
上のドメイン番号、装置特有のデータ構造を指すポイン
タ、装置特有のデータ構造の長さ、作成される抽出コン
テキストの識別子(後続のGRAPHICS_SYST
EM_CALLの呼出しで、RCXを参照するのに用い
る)
【0028】図4は、RCMデータ記憶域44を示す図
である。RCM  共通ブロック50は、RCMデータ
記憶域44に格納されたRCMデータ構造の中心点であ
る。RCM共通ブロック50は、共通プロセス・ブロッ
ク(52や54など)のリンク・リストの先頭と、装置
ブロック(56や58など)のリンク・リストの先頭を
含む。オペレーティング・システムは、ハンドラがRC
Mデータ構造へのアクセス権を得るための手段を提供す
る。
【0029】共通プロセス・ブロック52および54は
、あるプロセスがそれに対するアクセスを必要としてい
るすべての装置に対して大域的な(すなわち、すべての
装置に同一のデータが適用される)情報を含む。これら
のブロックは、各々次の共通プロセス・データ構造(共
通プロセス・データ構造54など)へのリンク、プロセ
スがアクセスを許可されている装置を示すための装置に
対する許可情報の要約、およびその共通プロセス・デー
タ構造用の装置プロセス・データ構造の数を含む。 共通プロセス・データ構造52および54の各部分は、
使用中の特定のオペレーティング・システムによって変
わることを理解されたい。
【0030】装置データ構造(56、58)は、ブロッ
ク60により詳細に示されている。これは、RCM22
によって管理される表示装置12の記述である。各装置
構造ブロックは、次の装置構造ブロックへのリンク、設
置プロセス・データ構造(装置プロセス・ブロック62
や64など)のリンク・リストの先頭、サーバ・ウィン
ドウ属性データ構造(ブロック66や68など)のリン
ク・リストの先頭、その装置がロックされたアプリケー
ション・プロセスを表す装置プロセス・データ構造への
リンク、装置をロックするために待機中のグラフィック
ス・プロセスのリストの先頭、装置専用記憶域へのリン
ク、ドメイン構造のアレイ、および様々な状態を表すフ
ラグを含む。装置データ構造60には、ドメイン・アレ
イ70が含まれることに留意されたい。RCM22は、
表示装置の独立なドメインへのアクセスを、独立に許可
できることを理解されたい。装置ドメインとは、グラフ
ィックス・プロセスがデータを供給している先の装置内
の環境である。
【0031】ドメイン・アレイ70の各エントリは、そ
のドメインがロックされたアプリケーション・プロセス
を表す装置プロセス・データ構造へのリンク、そのドメ
インをガードまたはロックするために待機中である装置
プロセスのリストの先頭、グラフィックス障害ハンドラ
40が使用する装置へ戻るリンク、ドメイン許可情報(
すなわち、そのドメインに対するアクセスを、あるプロ
セスに許可するために何を行なうべきかを示す情報)、
そのドメイン用の現在の描出コンテキスト(すなわち、
現在そのドメインにロードされている描出コンテキスト
)へのリンク、現在の描出コンテキストを所有するプロ
セスを表す装置プロセス・データ構造へのリンク、障害
リスト(そのドメインへのアクセスを試みて障害を発生
したグラフィックス・プロセス用の描出コンテキストの
リンク・リスト)の先頭、タイマ情報、およびその他の
関連する状態を表す様々なフラグを含む。
【0032】装置プロセス・データ構造72(62)は
、グラフィックス・プロセスが特定の表示装置にアクセ
スするのに必要な情報を含む。たとえば、装置プロセス
・データ構造は、次の装置プロセス・データ構造へのリ
ンク、装置プロセス・データ構造(共通プロセス・デー
タ構造52など)へのリンク、その表示装置上でのグラ
フィックス・プロセスの優先順位、グラフィックス・プ
ロセスが生成した描出コンテキスト・データ構造(描出
コンテキスト・データ構造74および76など)のリン
ク・リストの先頭、クライアント・ウィンドウ属性デー
タ構造(クライアント・ウィンドウ属性ブロック78お
よび80など)へのリンク・リストの先頭、装置専用記
憶域へのリンク、様々な状態を表すフラグ、およびグラ
フィックス・プロセス用の装置の各ドメインに対する現
在の描出コンテキストへのリンクのアレイが含まれる。
【0033】描出コンテキスト・ブロック(ブロック7
4など)は、描出コンテキストを定義する情報をすべて
含む。たとえば、描出コンテキスト・ブロックは、次の
描出コンテキストへのリンク、障害リスト内の次の描出
コンテキストへのリンク、その描出コンテキストを作成
したグラフィックス・プロセス用の装置プロセス・デー
タ構造へのリンク、その描出コンテキストの現在の優先
順位、それに対してその描出コンテキストが作成された
ドメインへのリンク、その描出コンテキストにバインド
されたサーバ・ウィンドウ属性データ構造へのリンク、
その描出コンテキスト・ブロックにバインドされたクラ
イアント・ウィンドウ属性データ構造へのリンク、装置
専用記憶域へのリンク、様々な状態を表すフラグ、サー
バ・ウィンドウ属性データ構造にバインドされた描出コ
ンテキストのリスト中の次の描出コンテキストへのリン
ク、クライアント・ウィンドウ属性データ構造にバイン
ドされた描出コンテキストへのリスト中の描出コンテキ
ストへのリンクを含む。
【0034】サーバ・ウィンドウ属性データ構造(ブロ
ック66および68など)は、サーバから割当てを受け
なければならないウィンドウ・ジオメトリ(たとえば、
形状と位置)の記述を含む。各サーバ・ウィンドウ属性
データ構造は、次のサーバ・ウィンドウ属性データ構造
へのリンク、このサーバ・ウィンドウ属性データ構造に
バインドされた描出コンテキスト・データ構造のリンク
・リストの先頭、このサーバ・ウィンドウ属性データ構
造を作成したグラフィックス・プロセス用の装置プロセ
ス・データ構造へのリンク、ウィンドウ・ジオメトリお
よびカラー・マップの記述、装置専用記憶域へのリンク
、および様々な状態を表すフラグを含む。
【0035】クライアント・ウィンドウ属性データ構造
(ブロック78および80など)は、ウィンドウ用の資
源の記述を含み、クライアントによって割り当てられる
。具体的には、これらのデータ構造は、次のクライアン
ト・ウィンドウ属性データ構造へのリンク、このクライ
アント・ウィンドウ属性データ構造にバインドされた描
出コンテキスト・データ構造のリンク・リストの先頭、
クライアント・クリップ・ジオメトリの記述、そのウィ
ンドウでの画素の解釈(たとえば、その画素がカラー・
ディレクトリとして使用されるのか、ルックアップ・テ
ーブルへの指標として使用されるのか)の記述、装置専
用記憶域へのリンク、様々な状態を表すフラグを含む。
【0036】図4に示したデータ構造は、複数のプロセ
スまたは複数の装置に共通するデータには1個の記憶域
を提供し、必要なときはデータを別々のデータ構造に分
離することにより、データ記憶空間を節約する点で有利
である。この結果、データを検索する際の検索時間が節
約され、RCM機能を実施するのに必要なデータの量が
最小になる。
【0037】図5ないし図30は、描出コンテキスト・
マネジャ22の動作を流れ図の形で詳細に記述している
。図を単純にするため、エラー状態は含まれていない。 RCM22を制御するために用いるシステム・コールは
、複数の機能のうちの1つを要求することができる。図
5ないし図20は、これらの異なる機能を示す。 図5で、MAKE_GP(グラフィックス・プロセス作
成モジュール)100は、あるプロセスをグラフィック
ス・プロセスにする。それには、ディスプレイ・アダプ
タへのアクセスを許可し、その表示装置にアクセスする
プロセスが使用する表示装置アドレスを返す。また、こ
の機能は、RCM22を始めて呼び出したとき初期設定
する。MAKE_GP100は、グラフィックス・プロ
セスの作成に必要な、装置特有の機能を実行できる、装
置特有のMAKE_GP()108を呼び出す。装置特
有のMAKE_GP()108は、システム内で表示装
置をサポートするのに必要な装置ドライバ・ソフトウェ
アの一部である。この装置ドライバ・ソフトウェアには
、描出制御管理の装置特有の様態をサポートする他の機
能も含まれている。呼出し側プロセスが、MAKE_G
P100およびその他すべてのRCM22システム・コ
ール機能に渡さなければならないパラメータの1つは、
装置識別子である。この識別子は、RCMに、呼出し側
プロセスが、複数の装置のうちのどの装置に対するグラ
フィックス・プロセスになりたいのかを理解させる。こ
の装置識別子は、すべてのRCMシステム・コール機能
用のパラメータである。MAKE_GP100用のもう
1つのパラメータは、MAKE_GPがMAKE_GP
()108に渡す、呼出し側プロセスからの情報である
。MAKE_GP100は、表示装置の各ドメイン用に
、空描出コンテキストを作成する。空描出コンテキスト
は、プロセスを装置にアクセスさせるが、このプロセス
による活動を可視的なものにはしない。これは主に、プ
ロセス初期設定状況およびプロセス出口状況で用いられ
る。次に、MAKE_GP100は、装置特有のRCX
()111を呼び出す。装置特有のRCX()111は
、新しいコンテキストを作成するのに必要な、装置特有
の機能を実行する。
【0038】MAKE_GPモジュールは、ステップ1
01から始まる。ステップ101で、描出コンテキスト
・マネジャが、呼び出されているプロセス用の共通デー
タ構造がすでに存在しているか否かを決定する。存在し
ない場合は、ステップ102に進んで、記憶域を割り振
り、メモリをピン付け(データ構造が実記憶域内に留ま
って、通常はディスクである補助記憶装置に「ページ・
アウト」されないようにすること)し、データ構造を初
期設定し、障害ハンドラおよびエグジット・ハンドラを
オペレーティング・システム・カーネルで登録して、適
当な状況の下で、それらがカーネルから呼び出されるよ
うにして、共通データ構造を構築する。また、ヘビー・
スイッチ・コントローラを、カーネル・プロセスとして
起動する。ステップ103で、RCMが、装置データ構
造が存在するか否かを決定する。存在しない場合は、や
はりステップ104で、装置データ構造およびドメイン
・データ構造の双方のために、メモリを割り振り、ピン
付けし、初期設定する。また、RCMは、各ドメイン用
のタイマをセットアップし、タイマ・ハンドラをカーネ
ルで登録する。最後に、RCMは、装置データ構造を共
通データ構造にリンクする。ステップ105で、呼出し
側のプロセス用の共通プロセス・データ構造が存在する
か否かを決定する。存在しない場合は、ステップ106
で、共通プロセス・データ構造を作成し、ピン付けし、
初期設定する。ステップ107で、装置プロセス・デー
タ構造を形成する。ステップ108で、装置特有のモジ
ュールMAKE_GPを呼び出して、装置のアドレッシ
ング情報を得る。装置特有のモジュールMAKE_GP
は、特定の装置用の装置ドライバの一部である。ステッ
プ109で、すべての装置ドメインについて、空描出コ
ンテキストが存在するか否かを決定する。存在しない場
合は、ステップ110と111を含むループに進んで、
装置特有の必要な初期設定を行なうために、装置特有の
CREATE_RCX()を呼び出して、空描出コンテ
キスト・データ構造を作成し、初期設定する。空描出コ
ンテキストデータ構造がすべてセットアップされると、
ステップ112に進んで、装置プロセス・データ構造を
装置構造にリンクし、共通プロセス・データ構造内のカ
ウンタを1つ増分する。ステップ113で、装置アドレ
ス情報が返される。
【0039】図6のUNMAKE_GP(グラフィック
ス・プロセス解除)ルーチンは、図5のルーチンMAK
E_GPの反対である。本質的に、ルーチンUNMAK
E_GPの目的は、RCMがあるプロセスをグラフィッ
クス・プロセスとして扱えるようにするデータ構造をア
ンドゥーすることである。ステップ119で、装置が呼
出し側プロセスによってロックされている場合、それが
ロック解除される。これには、その装置がロック解除さ
れるのを待機している他のプロセスをすべて覚醒させる
ことが含まれる。ステップ121および122で、RC
Mは、呼出し側プロセスによってロックされたすべての
ドメインがロック解除されたことを確認するループに入
る。ステップ123および124で、RCMは、そのプ
ロセスの所有する描出コンテキストがすべて削除された
ことを確認するもう1つのループに入る(図8参照)。 ステップ125、126および127で、RCMは、そ
のプロセスが作成したサーバ属性がすべて削除されたこ
とを確認する(図12参照)。サーバ属性データ構造が
すべて削除された後、ステップ128および129に進
み、呼出し側プロセスによって作成されたクライアント
属性データ構造がすべて削除されたことを確認する。ス
テップ130で、装置特有のルーチンUNMAKE_G
P()が呼び出される。これは、その装置特有の装置ド
ライバ・ルーチンであり、MAKE_GP()など装置
特有の機能によってそのプロセス用に作成された、装置
特有のデータ構造を削除する。ステップ131で、装置
プロセス・データ構造が装置からリンク解除され、以前
に割り振られたメモリが解放される。次に、共通プロセ
ス・データ構造のカウントを1つ減分する。ステップ1
32で、これがその装置を使用している最後のプロセス
であったか否かを決定する。そうである場合は、RCM
はもはやその装置を管理する必要がなく、装置データ構
造が共通データ構造からリンク解除され、ドメイン・タ
イマが解放され、装置データ構造用のメモリが解放され
る。ステップ134で、これが呼出し側プロセスの使用
する最後の装置であるか否かを決定する。そうである場
合は、このプロセスはもはや表示装置上のグラフィック
ス・プロセスである必要はなく、RCMは、共通データ
構造から共通プロセス・データ構造をリンク解除し、そ
のプロセスのアドレス空間から入出力バスを取り上げ、
共通プロセス・データ構造用のメモリを解放する。ステ
ップ136で、最後の共通プロセス・データ構造が削除
されたか否かを決定する。そうである場合は、RCMは
それ自体を停止させることができ、ステップ137で、
障害ハンドラの登録を解除し、エグジット・ハンドラの
登録を解除し、ヘビー・スイッチ・コントローラを終了
させ、RCMが使用する残りのメモリ(たとえば、共通
データ構造)をすべて解放する。
【0040】図7では、描出コンテキストの作成が実行
される。装置パラメータとドメイン・パラメータが、こ
のコンテキスト構造を作成する際に使用され、作成され
る描出コンテキスト・データ構造は、ある装置とその装
置のドメインに特有のものである。ステップ151で、
メモリが割り振られ、ピン付け(実記憶域内に保持)さ
れ、コンテキスト・データ構造が初期設定される。ステ
ップ152で、装置特有のコンテキスト作成モジュール
(装置ドライバの一部)が呼び出される。システム・コ
ールで渡されたデータが、装置特有のCREATE_R
CX()に渡される。これによって、呼出し側プロセス
は、装置特有の、描出コンテキスト・データ構造に関連
するデータをカスタマイズする際に使用できる情報を、
装置特有のCREATE_RCX()に渡せるようにな
る。ステップ153で、コンテキスト・データ構造が、
装置プロセス・データ構造にリンクされる。ステップ1
54で、RCMがハンドルを返す。後続のRCMシステ
ム・コール(たとえば、BINDまたはSET_RCX
など)の際に、呼出し側プロセスは、このハンドルを用
いてこのコンテキストを識別できる。
【0041】図8では、コンテキストの削除が実行され
る。ステップ162で、削除すべきコンテキストが、そ
のコンテキストのドメインに関して、呼出し側プロセス
の現在のコンテキストであるか否かを決定する。そうで
ある場合は、ステップ163で、空コンテキストをその
ドメインに対する現在のコンテキストにする。これは、
将来その呼出し側プロセスがそのドメインにアクセスし
ようと試みた場合に対する安全装置である。ステップ1
64で、GUARD_DOMAIN(ドメイン・ガード
)ルーチンが呼び出される。この内部機能は、ガード解
除されるまで、そのドメイン上でコンテキスト切替えが
起こらないようにする。これが必要なのは、表示装置の
性質上、ある装置特有の機能がコンテキスト切替えを実
行することが必要となることがあり得るためである。 ドメインをガードすることで、装置特有の機能が、RC
Mのハンドラ構成要素から妨害(たとえば、ドメインの
コンテキストを切り替えようと試みることなど)を受け
ないことが保証される。ステップ165で、装置特有の
削除ルーチン(装置ドライバの一部)を呼び出して、装
置特有の機能をすべて実行し、描出コンテキスト・デー
タ構造に関連する装置特有のデータ構造を削除する。次
に、ドメインをガード解除する。ステップ166で、そ
のドメインの現在のコンテキストが削除されつつあるか
否かを決定する。そうである場合は、ステップ167で
、プロセスがそのドメインにアクセスする許可を取り除
き、このドメインに対するコンテキストが存在しないこ
とを指示する。これによって、次にコンテキスト切替え
が必要になったとき、古いコンテキストをセーブする必
要がないので、より簡単に切替えが行なえるようになる
。ステップ168で、コンテキスト・データ構造を、サ
ーバ属性データ構造およびクライアント属性データ構造
からリンク解除する。ステップ169で、描出コンテキ
ストのメモリが解放される。
【0042】図9は、描出コンテキスト・データ構造、
サーバ・ウィンドウ属性データ構造およびクライアント
・ウィンドウ属性データ構造を関連付ける役割を持つB
IND(バインド)モジュールを示す。この3つ組は、
表示装置のドメインが、呼び出されたプロセスに正しく
描出させるために必要な環境を定義する。呼出し側プロ
セスは、これら3つのデータ構造を識別するハンドルを
与える。ステップ181で、そのドメインをガードし、
その間にステップ182で、装置特有のBINDモジュ
ールが呼び出される。装置特有のBINDモジュールは
、特定の装置用の装置ドライバの一部である。ステップ
183で、ドメインをガード解除する。ステップ184
で、描出コンテキスト・データ構造を古いサーバ属性デ
ータ構造からリンク解除して、新しいサーバ属性データ
構造にリンクする。次に、新しいサーバ属性データ構造
を、描出コンテキスト・データ構造にリンクする。ステ
ップ185で、この描出コンテキストを、古いクライア
ント属性データ構造からリンク解除して、新しいクライ
アント属性データ構造にリンクすると同時に、新しいク
ライアント属性データ構造も描出済みコンテキスト・デ
ータ構造にリンクする。これらのリンクはすべて、様々
なデータ構造の間の関連を記録するために必要である。 これらのリンクにより、描出コンテキストと、それにバ
インドされた属性データ構造の検索時間が最小になる。 アプリケーションにとって好都合ならば、これらのリン
クによって、多くの描出コンテキストを同一の属性デー
タ構造にバインドすることができる。たとえば、資源サ
ーバがサーバ・ウィンドウ属性を作成する際に、一般に
、描出コンテキストをそれにバインドして、たとえばウ
ィンドウの背景をクリアして、なんらかのユーザ指定の
色またはパターンまたはその両方にできるようにする。 ただし、その後、直接ウィンドウ・アクセス・クライア
ントが、その(同一のサーバ・ウィンドウ属性によって
指定される)ウィンドウに自分の異なる描出コンテキス
ト・データ構造をバインドして、そのウィンドウを使っ
て、線や陰影付きの表面などを描画することもできる。
【0043】図10は、SET_RCX(描出コンテキ
スト設定)モジュールの流れ図である。このモジュール
は、プロセスがあるドメインに対する現在の3つ組(描
出コンテキスト、サーバ・ウィンドウ属性およびクライ
アント・ウィンドウ属性)を指定できるようにする。ス
テップ201で、RCMは、その描出コンテキストを装
置プロセス・データ構造内のそのドメイン用の現在のコ
ンテキストとしてセットする。ステップ202で、その
ドメインが現在のプロセスによって使用されているか、
またはどのプロセスにも使用されていないか否かを決定
する。それがこのプロセスによって使用されているか、
またはどのプロセスにも使用されていない場合は、ステ
ップ203で、RCMは、ドメイン・タイマをキャンセ
ルし、ステップ204で、ドメインをガードし、次にス
テップ205で、新しい描出コンテキストに切り替え、
最後にステップ206で、ドメインをガード解除する。
【0044】図11に、CREATE_SERVER_
ATTR(サーバ属性作成)モジュールの流れ図を示す
。ステップ221で、データ構造を割り振り、サーバ属
性データ構造を初期設定する。ステップ222で、ウィ
ンドウ・ジオメトリ(すなわち、ウィンドウの位置およ
び形状の記述)を呼出し側からコピーする。このジオメ
トリ情報は、呼出しと一緒に渡さなければならない情報
である。ステップ223で、サーバ・ウィンドウ属性デ
ータ構造を作成するのに必要な、装置特有の活動を実行
する、装置特有のCREATE_SERVER_ATT
Rモジュールを呼び出す。これは、使用中の装置特有の
装置ドライバ・モジュールである。ステップ224で、
サーバ属性データ構造を装置データ構造にリンクする。 ステップ225で、サーバ・ウィンドウ属性のハンドル
を返す。
【0045】図12は、DELETE_SERVER_
ATTR(サーバ属性削除)モジュールの流れ図である
。DELETE_SERVER_ATTRモジュールは
、単にCREATE_SERVER_ATTRモジュー
ルが行なったことをアンドゥーするだけである。ステッ
プ242で、RCMは、サーバ・ウィンドウ属性データ
構造がバインドされているすべての描出コンテキストが
更新されて、サーバ・ウィンドウ属性の削除を反映する
(描出コンテキストがもはや、そのコンテキストを所有
しているプロセスの活動を可視的にできない)ようにな
ったことを確認するループに入る。ステップ242で、
RCMは、このサーバ・ウィンドウ属性データ構造にバ
インドされている描出済みコンテキストがすべて更新済
みであるか否かを決定する。そうでない場合は、ステッ
プ243で、ドメインをガードし、ステップ244で、
装置特有のDELETE_SERVER_ATTRモジ
ュールを呼び出す。これは、やはり装置ドライバの一部
である。このモジュールは、ウィンドウ処理情報を変更
するために、その装置に対する適当なアクセスを可能に
するための、コンテキスト切替えを含めて、装置からサ
ーバ属性を削除するのに必要な装置特有の活動を実行し
、そのサーバ・ウィンドウ属性をサポートするために作
成されたデータ構造を削除する。ステップ245で、ド
メインをガード解除し、ステップ246で、サーバ属性
データ構造を描出コンテキスト・データ構造からリンク
解除する。このループから出ると、RCMはステップ2
47に進んで、サーバ属性データ構造を装置データ構造
からリンク解除し、サーバ属性データ構造を解放する。
【0046】図13は、UPDATE_SERVER_
ATTR(サーバ属性更新)モジュールを示す流れ図で
ある。プロセスは、ウィンドウの位置または形状、ある
いはその両方を変更するために、このRCM機能を呼び
出す。ステップ261で、システム・コールのパラメー
タを介して、呼出し側から新しいウィンドウ・ジオメト
リを受け取る。ステップ262で、RCMは、そのサー
バ・ウィンドウ属性にバインドされた描出コンテキスト
のすべてに対するサーバ・ウィンドウ属性が更新される
ようにする、ステップ263、264、265からなる
ループに入る。ステップ263で、ドメインをガードし
、ステップ264で、装置ドライバ特有のUPDATE
_SERVER_ATTRモジュールを呼び出して、装
置特有のデータ構造を更新し、新旧両方のウィンドウ・
ジオメトリ情報を渡す。その後に、ドメインをガード解
除する。描出コンテキストがすべて更新されると、ステ
ップ266に進んで、サーバ属性データ構造を更新する
【0047】図14は、クライアント属性データ構造を
対象としている点を除いて、図11と同じである。ステ
ップ281で、RCMは、メモリを割り振り、クライア
ント属性データ構造を初期設定する。ステップ282で
、RCMは、呼出し側からのクライアント・クリップ情
報と画素解釈をコピーする。クライアント・クリップ情
報は、(サーバ・ウィンドウ属性によって記述されるウ
ィンドウ・クリッピングに加えて)プロセスによって装
置に送られた描出コマンドの追加のクリッピングを行な
うために使用される。ステップ283で、クライアント
・ウィンドウ属性データ構造を作成するのに必要な装置
特有の活動を実行する、装置特有のCREATE_CL
IENT_ATTRモジュールを呼び出す。これは、使
用中の装置特有の装置ドライバ・モジュールである。 ステップ284で、クライアント属性データ構造を装置
プロセス・データ構造にリンクし、次にステップ285
で、クライアント属性ハンドルを返す。
【0048】図15は、DELETE_CLIENT_
ATTR(クライアント属性削除)モジュールを対象と
している点を除いて、図12に類似している。ステップ
302で、クライアント・ウィンドウ属性にバインドさ
れた描出コンテキストがすべて処理済みであるか否か決
定する。そうでない場合は、RCMは、ステップ303
、304、305、306からなるループに入る。ステ
ップ303で、ドメインをガードする。ステップ304
で、装置特有のDELETE_CLIENT_ATTR
モジュールを呼び出す。これは、アドレスされている表
示装置特有の装置ドライバである。このモジュールは、
クリッピング情報を変更するためにその装置に対する適
当なアクセスを可能にするなんらかのコンテキスト切替
えを含めて、装置からクライアント・ウィンドウ属性を
削除するのに必要な装置特有の活動を実行し、そのクラ
イアント・ウィンドウ属性をサポートするために作成さ
れたデータ構造を削除する。ステップ305で、ドメイ
ンをガード解除する。ステップ306で、クライアント
属性データ構造を描出コンテキスト・データ構造からリ
ンク解除する。ステップ306の後、RCMはステップ
302に戻る。描出コンテキストがすべて処理済みにな
るまでこのループを、繰り返す。その後、RCMはステ
ップ307に進んで、クライアント属性データ構造を装
置プロセス・データ構造からリンク解除し、クライアン
ト属性データ構造を解放する。
【0049】図16は図13に類似している。図16は
、UPDATE_CLIENT_ATTR(クライアン
ト属性更新)モジュールである。プロセスは、そのクラ
イアント・クリップまたは画素解釈の要件を更新するた
めにこの機能を呼び出す。ステップ321で、呼出し側
からRCMは新しいクライアント・クリップ情報をコピ
ーする。次にRCMハ、クライアント・ウィンドウ属性
にバインドされた描出コンテキストのすべてに対するク
ライアント・ウィンドウ属性が更新されるようにするた
め、ステップ322、323、324、325からなる
ループに入る。ステップ322で、RCMは、描出済み
コンテキストのすべてが処理済みであるか否かを決定す
る。そうでない場合、ステップ323で、ドメインをガ
ードする。ステップ324で、装置特有のUPDATE
_CLIENT_ATTRモジュールを呼び出して、装
置特有のデータ構造を更新し、新旧両方のクライアント
・クリップなどの記述を渡す。これは、装置特有のドラ
イバ・モジュールである。ステップ325で、ドメイン
をガード解除する。描出コンテキストの処理が完了する
と、RCMはステップ326に進んで、クライアント属
性データ構造を更新する。
【0050】図17は、LOCK_DEVICE(装置
ロック)モジュールの流れ図である。LOCK_DEV
ICEモジュールの目的は、資源サーバ・プロセスが、
割込みなしに装置にアクセスできるようにすることであ
る。これは、ウィンドウの位置変更など重要事象中に必
要である。ステップ341で、RCMは、装置がロック
されているか否かを決定する。そうでない場合は、RC
Mはステップ345に進む。そうである場合は、RCM
は、ステップ342に進み、装置が呼出し側によってロ
ックされているか否かを決定する。そうである場合は、
RCMはこのルーチンから出る。そうでない場合は、ス
ッテップ343に進んで、そのプロセスが、装置がロッ
ク解除されるまで待機した後にその装置をロックするこ
とを望んでいるか否かを決定する。そうでない場合は、
RCMはこのルーチンから出る。プロセスが待機を望ん
でいる場合は、RCMはステップ344に進んで、現在
装置をロックしているプロセスが、その装置をロック解
除するまで、休眠(待機)する。このプロセスが覚醒す
ると(図18参照)、RCMはステップ345に進む。 ステップ345で、その装置が呼出し側プロセスに対し
てロックされる。次にRCMは、ステップ346および
347からなる、すべての装置ドメインがロックされる
ループに入る。これは、ステップ347で、ドメインを
ガードではなくロックするようにと指示するパラメータ
を与えて、GUARD_DOMAIN機能を実行するこ
とによって行なわれる。すべてのドメインがロックされ
ると、ステップ346で、RCMはこのルーチンから出
る。
【0051】図18は、LOCK_DEVICEモジュ
ールが図17で行なったことを効果的にアンドゥーする
、UNLOCK_DEVICE(装置ロック解除)モジ
ュールの流れ図を示す。ステップ361で、DEVIC
E  LOCKED(装置ロック済み)フラグがクリア
される。ステップ362で、装置がロック解除されるま
で休眠(待機)していたプロセスを、覚醒させる(活動
化する)。次にRCMは、ステップ363および364
からなる、装置上のすべてのドメインをガード解除する
ループに入る。これが完了すると、RCMはこのルーチ
ンから出る。
【0052】図19は、LOCK_DOMAIN(ドメ
イン・ロック)モジュールの流れ図を示す。ステップ3
81で、RCMは、ドメインがロックされているか否か
を決定する。そうでない場合は、RCMはステップ38
5に進む。そうである場合は、RCMはステップ382
に進んで、ドメインがすでに呼出し側によってロックさ
れているか否かを決定する。そうである場合は、RCM
は続行する理由がないので、ルーチンから出る。そうで
ない場合は、RCMはステップ383に進んで、ドメイ
ンがロック解除されるまで、呼出し側プロセスが待機し
たいか否かを決定する。そうでない場合は、RCMはル
ーチンから出る。そうである場合は、RCMはステップ
384に進んで、ドメインをロックしたプロセスに、別
のプロセスがそのドメインをロックしたいと望んでおり
、できるだけ早くそのドメインをロック解除すべきこと
をそのプロセスに知らせる信号を送る。そのプロセスに
、ステップ385で、GUARD_DOMAINモジュ
ールを呼び出す。このモジュールは、先にそのドメイン
をロックしたプロセスがそのドメインをロック解除する
まで、呼出し側プロセスを待機状態にする。その後、現
在のRCMが、呼出し側プロセスに対してそのドメイン
をロックし、このルーチンから出る。
【0053】  図20は、流れ図の形のUNLOCK
_DOMAIN(ドメイン・ロック解除)手順である。 これは基本的に、ドメインをロック解除するためにUN
GUARD_DOMAINモジュールを呼び出すステッ
プ401だけからなっている。
【0054】図21は、グラフィックス障害ハンドラ4
0の流れ図である。グラフィックス障害は、グラフィッ
クス・プロセスが、アドレスすることを許可されていな
い装置またはドメインをアドレスしようと試みる際に発
生する。このような事象は、グラフィックス・プロセス
が、以前にスイッチ・アウトしたグラフィックス装置に
アクセスしようと試みているときに発生する。このグラ
フィックス障害は、割込みを発生する。第1レベルの割
込みハンドラが、まずこの割込みを処理し、第2レベル
の割込みハンドラに切り替わる。このグラフィックス障
害ハンドラは、第2レベルの割込みハンドラの1つであ
る。ステップ421で、RCMは、障害を発生している
プロセスがグラフィックス・プロセスであり、かつこの
障害が入出力障害であるか否かを決定する。そうでない
場合は、RCMはルーチンから出る。そうである場合は
、RCMはステップ422に進む。次にRCMは、ステ
ップ422、423、424からなるループに入る。 このループは、障害の対象がどの装置であるかを決定す
る。それがどの装置に対するものでもない場合、RCM
はステップ422でルーチンから出る。ステップ423
で、装置ごとに、装置特有の装置検査ルーチンを呼び出
す。障害が発生した場合、アドレスがグラフィックス障
害ハンドラに渡される。装置特有の装置検査モジュール
は、そのアドレスがその装置用のアドレス空間内にある
か否かを決定する。そうである場合は、ドメイン番号が
返される。次にステップ424で、ループを出るか否か
を決定する。ステップ425で、障害を発生しているプ
ロセスによってそのドメインがロックされているか否か
を決定する。そうである場合は、RCMはステップ42
7に進む。そうでない場合は、RCMはステップ426
に進んで、ドメインがロックまたはガードされているか
、コンテキスト切替えが発生しているか、タイム・アウ
ト条件が発生したか、あるいは障害リストが空でないか
を決定する。これらの状況のうちのいずれかが真である
場合、RCMは、ステップ431に進んで、そのドメイ
ンが他のプロセスによってロックされているか否かを決
定する。そうでない場合は、RCMはステップ429に
進む。そうである場合は、障害ハンドラは、ドメインを
ロックしたプロセスに、ドメインをロック解除して、障
害を発生しているプロセスを実行させることができると
の信号を送る。次に障害ハンドラステップ429に進み
、そのドメインに対するそのプロセス用の現在の描出コ
ンテキストが、障害リストに加えられる。言い替えれば
、描出コンテキストが障害リストに加えられ、その結果
、後でそのコンテキストをそのドメインに切り替えるこ
とが可能になる。ステップ426の条件が真出ない場合
、RCMステップステップ427に進んで、障害を発生
しているプロセスの所有する描出コンテキストで、ドメ
インが延期されたか否かを決定する。(これは、たとえ
ば、あるプロセスがある装置をロックした後にそれをロ
ック解除し、それによってドメインをロックおよびロッ
ク解除するが、そのドメイン上でコンテキストを切り替
えないとき発生し得る。)そうでない場合は、ステップ
428で、RCMは、そのドメイン・コンテキストを、
障害を発生したプロセス用の現在の描出コンテキストに
切り替える。そうである場合は、RCMはステップ43
0に進んで、そのプロセス用のドメインへのアクセスを
即座に許可し、そのドメインがもはや延期状態でないこ
とを示し、その後に、RCMはこのルーチンから出る。
【0055】図22は、タイマ・ハンドラ34の流れ図
である。ステップ441で、現在のコンテキストが十分
長い間実行されたか否かを決定する。この決定は、その
プロセスがそのドメインを所有していたクロック時間や
、ドメインを所有した状態でそのプロセスが実行された
CPUサイクル数など、多数の要因に基づいて行なうこ
とができる。そうでない場合は、ステップ442でタイ
マを再起動し、RCMはルーチンから出る。そうである
場合は、RCMはステップ443に進み、ドメイン・タ
イマが停止したことを指示する。ステップ444で、そ
のドメインをロックまたはガードするために待機中の他
のプロセスがあるか否かを決定する。そうである場合は
、ステップ445で、これらのプロセスを覚醒させ(活
動化し)、タイマ・ハンドラから出る。そうでない場合
は、ステップ446で、ドメインがガードもロックもさ
れておらず、かつ障害リストが空でないか否かを決定す
る。これが真である場合、RCMはステップ447に進
んで、障害リストから次のプロセスを指名する。いずれ
も真でない場合は、タイマ・ハンドラから出る。
【0056】図23には、エグジット・ハンドラ42の
流れ図が示されている。エグジット・ハンドラは、プロ
セスが自発的に終了しようとするとき、または非自発的
に終了させられるとき呼び出される。これは、このプロ
セスの残りの部分をすべて、RCMから取り除かなけれ
ばならないことを意味する。好ましい実施例では、エグ
ジット・ハンドラは、何らかの状態変化の場合に呼び出
される。ステップ461で、この状態変化がエグジット
状態への変化であるか否かを決定する。そうでない場合
は、ハンドラから出る。そうである場合は、ステップ4
62で、このプロセスによって使用されたすべての資源
が、KILL_PROCESS(プロセス・キル)モジ
ュールによって解放される。その後、ハンドラから出る
。KILL_PROCESSモジュールは、図6に示さ
れている。
【0057】ヘビー・スイッチ・コントローラ36が、
図24に流れ図の形で示されている。ヘビー・スイッチ
・コントローラは、ループで効果的に動作している。ス
テップ481で、EXIT(出口)フラグがセットされ
たか否かを決定する。そうである場合は、ヘビー・スイ
ッチ・コントローラから出る。そうでない場合は、ヘビ
ー・スイッチ・コントローラは、ステップ482に進ん
で、コマンドを含む待ち行列要素を待つ。多重装置また
は多重ドメイン環境では、最初の描出コンテキスト切替
えを完了する前に、第2、第3などの描出コンテキスト
切替えを要求されることが有り得るので、ヘビー・スイ
ッチ・コントローラには待ち行列が必要である。好まし
い実施例では、待ち行列からのコマンドは、SWITC
H(切替え)またはEXIT(エグジット)のいずれか
になる。SWITCHコマンドの場合、ブロック483
で、RCMは、装置特有のEND_SWITCH(切替
え終了)モジュールを呼び出す。END_SWITCH
モジュールは、装置特有の、時間のかかるタスク(DM
A動作を開始した後に、DMA動作の終了を待ちながら
休眠するなど)を実施する。装置特有のEND_SWI
TCHが完了すると、RCMはステップ484に進んで
、描出コンテキスト切替えを完了するのに必要な、装置
独立な機能を実行する。これには、ドメイン用の現在の
コンテキストの設定、ドメイン・タイマのスタート、フ
ラグの設定などが含まれる。受け取ったコマンドがEX
ITである場合、RCMは、ステップ485に進んでE
XITフラグをセットする。その結果、ヘビー・スイッ
チ・コントローラから出る。
【0058】図25には、機能GUARD_DOMAI
N(ドメイン・ガード)が示されている。このGUAR
D_DOMAIN機能は、1装置上の1ドメインを、ガ
ードし、ドメイン・ロックし、または装置ロックする。 ステップ501で、RCMは、ドメインがコンテキスト
切替え中であるかまたは他のプロセスによってすでにガ
ードされているか否か、あるいはタイマがオンであり呼
出し側がまだそのドメインを所有していないか否か、あ
るいはそのドメインが呼出し側以外のプロセスによって
ロックされているか否かを決定する。これらの条件のい
ずれかが真である場合、RCMはステップ502に進み
、そのドメインが、呼出し側がそのドメインをガードま
たはロックできる状態、すなわち前記の条件のすべてが
消えた状態になるまで、プロセスは休眠する。そうでな
い場合は、RCMはステップ503に進んで、呼出し側
がすでにそのドメインを所有しているか否かを決定する
。そうである場合は、RCMはステップ505に進む。 そうでない場合は、RCMはステップ504に進んで、
そのドメインにアクセスする許可をそれを所有している
プロセスから取り上げ、そのドメインが延期状態である
(すなわち、ドメイン上のコンテキストをそのドメイン
をガードまたはロックしたプロセスが所有していない状
態で、そのドメインがガードまたはロックされている)
ことを指示する。ステップ505で、RCMは、装置デ
ータ構造内のドメイン・アレイ内のドメイン・エントリ
で、そのドメインがガードされている(DOMAIN 
 GUARDED)か、ドメイン・ロックされている(
DOMAIN  LOCKED)か、あるいは装置ロッ
クされている(DOMAIN  DEVICE  LO
CKED)かを示すフラグをセットする。この3者のう
ちのいずれであるかは、呼出し側によって指示される。 その後、このハンドラから出る。
【0059】図26には、UNGUARD_DOMAI
N(ドメイン・ガード解除)モジュールが、流れ図の形
で示されている。ステップ521で、RCMは、呼出し
側の指示に従って、DOMAIN  GUARDEDフ
ラグ(ドメイン・ガード済み)フラグ、DOMAIN 
 LOCKED(ドメイン・ロック済み)フラグまたは
DOMAIN  DEVICE  LOCKED(ドメ
イン装置ロック済み)フラグのいずれかをクリアする。 ステップ522で、ドメイン・タイマがオフであり、か
つドメインがロックされていないか否かを決定する。タ
イマが進行中またはドメインがロックされている場合、
このモジュールから出る。タイマがオフでありかつドメ
インがロックされていない場合、RCMはステップ52
3に進んで、そのドメインをガードまたはロックするた
めに待機中のプロセスがあるか否かを決定する。そうで
ある場合は、RCMはステップ524に進んで、そのド
メインをガードまたはロックするために待機中のプロセ
スを覚醒させ、このモジュールから出る。そうでない場
合は、RCMはステップ525に進んで、障害リストが
空であるか否かを決定する。障害リストが空である場合
、切り替えるべき描出コンテキストがないので、このモ
ジュールから出る。そうでない場合は、RCMはステッ
プ526に進んで、障害リスト中の次の描出コンテキス
トを指名する。その後、このハンドラから出る。
【0060】図27は、内部機能である描出コンテキス
ト切替えモジュールを示す流れ図である。ステップ54
0で、ドメイン切替え中であることを示す標識をセット
し、ドメイン延期中であることを示す標識をクリアする
。これにより、そのドメインに対する追加のコンテキス
ト切替えを開始しようとする試みが抑止される。ステッ
プ541で、切替え先のプロセスが、すでにアダプタ上
にあるコンテキストを所有しているか否かを決定する。 そうである場合は、RCMはステップ543に進む。そ
うでない場合、RCMはステップ542に進んで、ドメ
イン上の現在のコンテキストを所有しているプロセスか
らドメインにアクセスする許可を取り上げ、新しい描出
コンテキストを所有しているプロセスに、そのドメイン
にアクセスする許可を与える。ステップ543で、その
ドメインに対する現在の描出コンテキストが、装置デー
タ構造用のドメイン・アレイ内のドメイン・エントリで
セットされ、新しい描出コンテキストの優先順位が調整
される(好ましい実施例では、格下げする)。 ステップ544で、RCMは、描出コンテキスト切替え
を開始するのに必要な装置特有の活動を実行する、装置
特有の機能START_SWITCH()を呼び出し、
このコンテキスト切替えに必要な作業量を決定する。こ
の機能は、使用中の装置特有の装置ドライバ・モジュー
ルである。ステップ545で、この切替えが(大量の作
業を必要としない)ライト・スイッチであるか否かを決
定する。そうである場合、START_SWITCH(
)は、コンテキスト切替えを完了するのに必要な活動を
すべて完了しており、RCMはステップ546に進んで
、切替えを終了し、コンテキスト切替えを完了するのに
必要な装置独立な活動をすべて実行する、描出コンテキ
スト切替終了ルーチン(図30)を呼び出す。その後、
このモジュールから出る。このプロセスが(長時間を要
する)ヘビー・スイッチである場合は、RCMはステッ
プ547に進んで、描出コンテキスト切替えモジュール
が割込みレベルから(すなわち、ハンドラのうちの1つ
から)呼び出されたか否かを決定する。そうである場合
は、RCMはステップ548に進んで、描出コンテキス
トをブロック済みにセットし、プロセスをブロックし、
ヘビー・スイッチ・コントローラの待ち行列にコンテキ
スト切替えコマンドを登録する。その後、このモジュー
ルから出る。描出コンテキスト切替えモジュールがハン
ドラから呼び出されなかった場合、RCMはステップ5
49に進んで、そのドメインに対する描出コンテキスト
切替えを完了するのに必要なすべての活動を実行する、
装置特有のEND_SWITCH()モジュールを呼び
出す。この機能は、使用中の装置特有の装置ドライバ・
モジュールである。ステップ550で、RCMは描出コ
ンテキスト切替え終了モジュールを呼び出して、コンテ
キスト切替えを完了するのに必要な装置独立な活動を実
行する(図30)。その後、このモジュールから出る。
【0061】図28は、描出コンテキスト指名モジュー
ルの流れ図である。ステップ561で、DOMAIN 
 SWITCHING(ドメイン切替え中)標識をセッ
トし、DOMAIN  SUSPENDED(ドメイン
延期中)標識をクリアする。ステップ562で、RCM
は、第1の(優先順位が最高の)描出コンテキストへの
コンテキスト切替えを開始するために、それをドメイン
障害リストから取り除く。ステップ563で、そのドメ
インを現在所有しているプロセスがあるか否かを決定す
る。 そうでない場合は、RCMはステップ565に進む。そ
うである場合、RCMはステップ564に進んで、ドメ
インを所有しているプロセスから、そのドメインをアク
セスする許可を取り上げ、現在そのドメイン上にある描
出コンテキストの優先順位を調整する(好ましい実施例
では格下げする)。ステップ565で、RCMは、新し
い描出コンテキストを所有するプロセスに、そのドメイ
ンにアクセスする許可を与え、その描出コンテキストを
、そのドメインに対する現在の描出コンテキストとして
、装置データ構造のドメイン・アレイ内のドメイン・エ
ントリに記録する。ステップ566で、実際のコンテキ
スト切替えを開始し、それに必要な作業量を決定するた
めに、装置特有のSTART_SWITCH()を呼び
出す。ステップ567で、それがライト・スイッチであ
るか否かを決定する。ライト・スイッチである場合、R
CMはステップ568に進んで、描出コンテキスト切替
え終了モジュールを実行して、切替えを終了する。ステ
ップ567に戻って、この切替えがライト・スイッチで
はない(ヘビー・スイッチである)場合、RCMはステ
ップ569に進んで、この描出コンテキスト指名モジュ
ールが、割込みレベルから呼び出されたのか否かを決定
する。そうである場合、RCMは、ステップ570でヘ
ビー・スイッチ・コントローラの待ち行列にコンテキス
ト切替えコマンドを登録し、この機能から出る。そうで
ない場合は、RCMはステップ571に進んで、コンテ
キスト切替えに必要な装置特有の活動を完了させる、装
置特有の切替え終了モジュールを呼び出す。ステップ5
72で、この機能は、描出コンテキスト切替えモジュー
ルを呼び出して、描出コンテキスト切替えを完了するた
めの装置独立な活動を実行する。その後、このモジュー
ルから出る。
【0062】図29は、描出コンテキスト障害リスト機
能を示す流れ図である。ステップ581で、描出コンテ
キストの優先順位に基づいて、そのドメイン用の障害リ
ストに描出コンテキストを登録する。これには、すでに
リスト上にある描出コンテキスト全体を検索して、すで
にリスト上にある描出コンテキストの優先順位に対する
その相対的優先順位に基づいて、リストに登録しようと
している新しい描出コンテキストの正しい位置を決定す
ることが含まれる。次にステップ582で、そのプロセ
スが待機するか否かを決定する。そうでない場合、RC
Mはステップ583に進んで、描出コンテキスト・デー
タ構造内でRCX  BLOCKED(ブロック済み)
標識をセットし、次にその描出コンテキストを所有して
いるプロセスをブロックする(これは、グラフィックス
障害ハンドラから呼び出されたときに行なわれる)。そ
の後、この機能から出る。プロセスが、ブロックされず
待機する場合、RCMはステップ584に進んで、描出
コンテキスト・データ構造内でRCX  WAIT(待
機中)標識をセットし、描出コンテキスト指名モジュー
ルによってこのプロセスが覚醒されるまで休眠する。そ
の後、この機能から出る。
【0063】図30は、描出コンテキスト切替え終了モ
ジュールを示す流れ図である。ステップ601で、DO
MAIN  SWITCHING(ドメイン切替え中)
フラグがクリアされる。次にステップ602で、新しい
描出コンテキストの所有者によってそのドメインがロッ
クされているか否かを決定する。それが新しい描出コン
テキストの所有者によってロックされている場合、RC
Mはステップ604に進む。所有者によってロックされ
ていない場合は、RCMはステップ603に進んで、そ
の装置用のドメイン・アレイ内のドメイン・エントリで
ドメイン・タイマがオンであることを指示し、ドメイン
・タイマをスタートさせる。ステップ604で、プロセ
スがブロックされているか否かを決定する。そうである
場合、RCMはステップ605に進んで、RCX  B
LOCKED標識をクリアし、そのプロセスをブロック
解除する。これによって、オペレーティング・システム
はそのプロセスを実行できるようになる。その後、描出
コンテキスト切替え終了プロセスから出る。ステップ6
04に戻って、プロセスがブロックされていない場合、
RCMはステップ606に進んで、そのプロセスが休眠
中(待機中)であるか否かを決定する。そうである場合
、RCMはステップ607に進んで、RCXWAIT標
識をクリアし、プロセスを覚醒させる。その後、描出コ
ンテキスト切替え終了プロセスから出る。そうでない場
合は、描出コンテキスト切替え終了プロセスから出る。
【0064】図31は、RCMおよびRCMに関連する
事象ハンドラ38とともに働くように構成された割込み
ハンドラを示す流れ図である。このような割込みハンド
ラはまったく装置特有であるが、図31は、このような
割込みハンドラをどのように構成すべきかを示す1例で
ある。この図31の割込みハンドラは、実際に最初に割
込み信号を処理する第1レベルの割込みハンドラによっ
て呼び出されるので、「第2レベル割込みハンドラ」と
呼ぶ。ステップ801で、このハンドラは、割込みの原
因が、この割込みハンドラによって処理される(割込み
ハンドラのサービスを受ける装置に対する)ものである
か否かを決定する。そうでない場合、ハンドラはステッ
プ802に進んで、その割込みがこの割込みハンドラに
よって処理されないことを指示し、このハンドラから出
る。ステップ801の後、割込みの原因が、この割込み
ハンドラによって処理されるものである場合、先に進ん
で、通常は装置からの状況を読み取ることによって、具
体的な原因を決定する。装置からの割込みの原因は、装
置によって大いに変わる。図31に例示した原因は、多
くの表示装置に共通な例である。第1の原因803は、
装置の垂直同期期間が開始したことである。多くの表示
装置では、ユーザに異常が見えないようにするため、カ
ラー・ルックアップ・テーブルのロードなどある種の動
作を垂直同期期間中に行なう必要がある。これは装置に
よって決まる条件であり、垂直同期期間中に処理を行な
う必要がない装置もある。この処理が完了すると、ハン
ドラは、ステップ814に進む。ステップ804では、
割込みを発生させた原因は、ある装置の動作が完了した
ことである。これには、DMA動作や、ビット・ブロッ
ク転送動作などが含まれる。この場合も割込みハンドラ
は、その割込みにサービスするのに必要なすべての活動
を行なう。コンテキスト切替えの実行にDMA動作を必
要とする装置の場合、ステップ810で、割込みハンド
ラは、ヘビー・スイッチ・コントローラがDMA動作の
完了を待機中であるか否かを決定する。そうである場合
、ハンドラは、ヘビー・スイッチ・コントローラを覚醒
させ、ステップ814に進む。ステップ805では、割
込みの原因はピック割込みであり、やはり割込みハンド
ラは、その割込みにサービスするために、装置特有の活
動を行なう。これには、装置からピック情報を検索する
こと、およびそれを事象ハンドラによって供給されるバ
ッファにセーブすること(図32、34、35、36、
37、38、39参照)が含まれる。ステップ811で
、ハンドラは、このピック割込みが、ピック事象(ピッ
クのすべてが完了した)が発生したことを示しているか
否かを決定する。そうでない場合、ハンドラはステップ
818に進む。そうである場合、ハンドラはステップ8
14に進む。図示の3つの具体的な割込みは、割込み全
般を代表するものであることに留意されたい。垂直同期
割込みは、装置へのデータ出力を必要とすることがある
。動作完了割込みは、特定の情況の下で、ヘビー・スイ
ッチ・コントローラを覚醒させることを必要とする。ピ
ック割込サービスは、一部の割込みがどうして事象とし
て解釈されないかを示している。当業者なら理解できる
ように、803、804、805の割込み条件など、他
の割込み条件をこの割込みハンドラに含めることもでき
る。ステップ814で、割込みハンドラは、プロセスが
、発生したばかりの事象に関する通知を受けたいか否か
を決定する。事象ハンドラは、この割込みハンドラと通
信する装置特有のルーチンを呼び出して、そのプロセス
がどの事象について知りたいと望んでいるかを割込みハ
ンドラに通知する。プロセスがこの事象について知りた
くない場合、ハンドラはステップ818に進む。 プロセスがこの事象について知りたいと望んでいる場合
、ハンドラは、ステップ816で、プロセスが同期式通
知を要求したか否かを決定する。そうである場合、ステ
ップ815で、ハンドラは、休眠中のプロセスを覚醒し
、その後ステップ817に進む。そうでない場合、ハン
ドラは単にステップ817に進み、事象ハンドラによっ
て供給されるCALLBACK機能(図38参照)を呼
び出して、RCM事象・データ構造内に事象情報を記録
(図32参照)する。ハンドラはステップ818に進ん
で、この割込みが処理済みであることを示し、その後ハ
ンドラから出る。
【0065】図32は、事象処理に関連するデータ構造
を示す。まず、図31の割込みハンドラによって処理さ
れる割込みと、図33、35、36、37、38、39
に示す事象ハンドラによって管理される事象を区別しな
ければならない。割込みとは、装置が電気信号を発生し
、CPUがそれを検出することによって引き起こされる
、通常のCPU命令の流れの中断である。割込みハンド
ラは、割込み可能にされている割込みをすべて処理しな
ければならない。事象とは、アプリケーション・プロセ
スが、それが発生したことなどそれに関する情報と、そ
の事象に関連するデータを要求する、論理的な出来事で
ある。割込みのすべてが事象とは限らないので、この区
別を行なわなければならない。垂直同期割込みを考えて
みよう。多くの場合、プロセスはそれについてまったく
知りたいと思わない。しかし、垂直ブランキング期間と
同期させなければならない特定の活動を行なう場合、ア
プリケーションは垂直同期割込みを待ちたいと望む。 この場合、それは1つの事象になる。もう1つの例とし
て、ピック・ヒット(直線などのグラフィック・オブジ
ェクトが、アプリケーション・プログラムで定義したピ
ック空間に含まれるとき)を緩衝記憶しなければならな
いアダプタのピック動作と、バッファが満杯になって、
割込みハンドラがそのバッファを読み取れるようになっ
たときの割込みを考えてみよう。最終的にはアプリケー
ション・プロセスはピック動作を終了し、その後装置は
別のピック割込みを発生する。今回は、ピックが終了し
たことを示す標識付きの割込みである。このような場合
には、アプリケーション・プログラムはすべての中間ピ
ック割込みについて知りたいわけではなくて、ピック完
了事象について知りたいと望む。プロセスは、事象を同
期または非同期の発生として取り扱える。同期式事象の
場合、プロセスは、事象ハンドラに、その事象が発生す
るまでそのプロセスを待機(休眠)させるように要求す
る。非同期式事象の場合、プロセスは、事象ハンドラに
その事象が発生した時にそのプロセスに通知するように
要求し、そのプロセスはその事象を待たずに他の作業の
実行を続ける。非同期式の通知には、マルチタスク式オ
ぺレーティング・システムに共通の信号機構を用いる。 たとえば、プロセスは、ある事象を非同期的に扱いたい
と事象ハンドラに伝えるために、グラフィックス・シス
テム・コールを行なうことができる。このシステム・コ
ールから戻った後、そのプロセスは、データ構造の走査
、計算などの作業を続けることができる。事象が発生し
た時、事象ハンドラは、プロセスに信号を送る。このプ
ロセスは、信号ハンドラ(命令処理の主流から外れて動
作するアプリケーション機能。ソフトウェア割込みハン
ドラに多少類似している。)を定義していなければなら
ない。オペレーティング・システムは、このプロセスの
信号ハンドラにその信号を送る。信号ハンドラは、信号
ハンドラとアプリケーション・プロセスの主部分の両方
からアクセスできるデータ構造内に、何らかのフラグを
セットすることができる。プロセスは、周期的にそのフ
ラグを検査し、それがセットされていると分かったとき
、事象ハンドラを呼び出して、どの事象が発生したのか
を突き止めることができる。
【0066】図32に戻って、装置プロセス・ブロック
820は、図4の装置プロセス・ブロック62に対応す
るもので、装置プロセス・ブロック820に対応する装
置に対するプロセス用のすべての事象情報に対する固定
位置として働く、事象情報構造822を含んでいる。事
象情報構造822は、最終事象構造(直前の事象)82
4へのリンクを含んでいる。この構造は、最後の同期式
事象を識別するフィールドとその事象からの少量の情報
を含んでいる。事象情報構造822は、事象アレイ82
6へのリンクを含んでいる。事象アレイ826のサイズ
は、アプリケーション・プロセスによって決定される。 事象アレイ826内の各エントリは、最終事象構造82
4と同一の情報を含んでいる。事象アレイは、アプリケ
ーション・プロセスに非同期的に報告された事象に関す
る情報を記録するために用いられる。アレイが必要なの
は、プロセスが、複数の事象を非同期的に報告するよう
要求することができ、かつ事象ハンドラがそのプロセス
に信号を送ってから、プロセスが実際に事象アレイ82
6から事象情報を読み取るまでの間に、複数の事象が発
生し得るためである。最後に、事象情報構造822は、
事象データ・バッファ828へのリンクを含んでいる。 このバッファは、アプリケーション・プロセスが要求す
るサイズのもので、ある種の事象、たとえばピック動作
などからの大量のデータを保持するために用いられる。 このバッファは、事象処理に必要な資源が最小になるよ
うに、アプリケーション・プロセスから要求があった時
点で、事象ハンドラによって動的に生成され破壊される
【0067】図33は、ASYNC_EVENT(非同
期事象)モジュールの流れ図を示す。プロセスは、非同
期的に通知してほしい事象を指示するためにこのモジュ
ールを呼び出す。ステップ830で、事象ハンドラは、
呼出し側プロセスが事象を要求していないか否かを決定
する。そうである場合、ステップ832で、事象ハンド
ラは、装置特有のASYNC_MASK()を呼び出し
て、非同期の事象報告をディスエーブルし、次にステッ
プ834で、事象ハンドラは事象アレイを保持するため
に用いられた記憶域をすべて解放し、戻る。ステップ8
30で、プロセスが、1つまたは複数の事象に関して非
同期的に通知するように要求していた場合、ステップ8
36で、事象ハンドラは、アプリケーション・プロセス
の要求したサイズの事象アレイ用の記憶域を割り振って
ピン付けし、この事象アレイを装置プロセス・データ構
造内の事象情報構造にリンクする。次にステップ838
で、事象ハンドラは、装置特有のASYNC_MASK
()を呼び出し、事象ハンドラのCALLBACK機能
のアドレスを渡して、アプリケーションの要求した事象
の非同期の報告をイネーブルし、その後戻る。
【0068】図34は、ENABLE_INTR(割込
みイネーブル)モジュールの流れ図を示す。プロセスは
、表示装置の割込みをイネーブルまたはディスエーブル
するためにこのモジュールを呼び出す。ステップ840
で、事象ハンドラは装置特有のENABLE_INTS
()を呼び出して、アプリケーション・プログラムの指
示した割込みだけをイネーブルし、他のすべてをディス
エーブルする。これによって、割込みが事象として報告
されずに発生できるようになる。
【0069】図35は、EVENT_BUFFER(事
象バッファ)モジュールの流れ図を示す。プロセスは、
ある事象からの大量のデータを報告するための事象バッ
ファを作成するためにこのモジュールを呼び出す。ステ
ップ850で、事象ハンドラは、現在バッファが存在す
るか否かを検査する。そうである場合、事象ハンドラは
バッファを1つだけしか扱えないので、ステップ850
でそのバッファをピン解除して解放し、ステップ854
に進む。そうでない場合は、ステップ854で、事象ハ
ンドラは、アプリケーション・プロセスの要求するサイ
ズの事象バッファを割り振ってピン付けし、それを装置
プロセス・データ構造内の事象情報構造にリンクする。
【0070】図36は、GET_EVENTS(事象獲
得)モジュールの流れ図を示す。プロセスは、発生した
非同期事象に関する情報を検索するためにこのモジュー
ルを呼び出す。ステップ860で、事象ハンドラは、事
象アレイ内の有効なすべてのエントリを、アプリケーシ
ョン・プロセスが提供するバッファにコピーする。ステ
ップ862で、事象数を0にセットして、すべての事象
をアプリケーション・プロセスが受け取ったことをマー
クし、戻る。
【0071】図37は、WAIT_EVENT(事象待
機)モジュールの流れ図を示す。プロセスは、同期事象
の発生を待つ、事象バッファを検索するなどのために、
このモジュールを呼び出す。ステップ870で、事象ハ
ンドラは、呼出し側プロセスが事象の発生を待つことを
望んでいるのか否かを決定する。そうである場合、ステ
ップ874で、装置特有のSYNC_MASK()を呼
び出し、プロセスがその発生を待つことを望んでいる事
象と、事象ハンドラに事象を報告するために割込みハン
ドラが用いる事象ハンドラのCALLBACK機能とを
パラメータとして渡す。呼出し側プロセスは、1つの事
象が発生したとき、割込みハンドラによって覚醒される
まで休眠する。次にステップ878で、事象ハンドラは
、事象が事象バッファに入っているか否かを検査する。 そうである場合、ステップ882で、事象ハンドラは、
事象バッファをアプリケーション・プロセスが提供する
バッファにコピーし、ステップ886に進む。そうでな
い場合は、ステップ886に進む。ステップ886で、
事象ハンドラは、事象情報、たとえば事象のタイプなど
と、事象からの少量のデータを、呼出し側プロセスが提
供するバッファにコピーする。これによって、プロセス
は、待っている複数の事象のうちのどれが実際に発生し
たのかを決定できる。ステップ870に戻って、呼出し
側プロセスが事象の発生を待っていない場合、事象ハン
ドラは、ステップ872に進み、呼出し側プロセスがい
ずれかの事象に関して知りたいと望んでいるか否かを決
定する。そうである場合、ステップ888に進んで、装
置特有のSYNC_MASK()を呼び出し、呼出し側
プロセスが知りたい事象と、CALLBACK()機能
(図38参照)のアドレスとを渡して、割込みハンドラ
が、その事象に関する情報を事象ハンドラに通知できる
ようにし、戻る。ステップ872に戻って、呼出し側プ
ロセスが事象に関して通知することを要求していない場
合は、そのプロセスが事象データの検索を望んでいるこ
とを意味し、ステップ876で、事象ハンドラは、呼出
し側プロセスが提供するバッファに最終事象構造をコピ
ーする。ステップ880で、このモジュールは、この事
象に事象バッファが関連づけられているか否かを決定す
る。そうでない場合、このモジュールは戻る。そうであ
る場合、ステップ884で、このモジュールは、アプリ
ケーション・プロセスが提供するバッファに事象バッフ
ァをコピーし、戻る。
【0072】図38は、CALLBACK(コールバッ
ク)モジュールの流れ図を示す。装置割込みハンドラが
、同期式または非同期式の事象に関する情報を事象ハン
ドラに通知するために、このモジュールを呼び出す。 CALLBACKモジュールは、ステップ900で、事
象を同期式、非同期式のどちらで報告するかを決定する
。同期式の場合、CALLBACKモジュールは、ステ
ップ902で、割込みハンドラから渡された事象情報を
、最終事象構造にコピーする。次にステップ910で、
CALLBACKモジュールは、プロセスがその事象を
待機中(休眠中)であるか否かを決定する。そうでない
場合、このモジュールは戻る。そうである場合、ステッ
プ912で、CALLBACKモジュールは、そのプロ
セスに信号を送ってその事象の発生を通知し、戻る。ス
テップ900に戻って、事象を非同期式に報告する場合
、ステップ904で、CALLBACKモジュールは、
事象アレイが満杯であるか否かを決定する。そうである
場合、ステップ908で、このモジュールは、事象アレ
イがオーバフローしたことを示すフラグをセットし、ス
テップ914に進む。そうでない場合、このモジュール
は、ステップ906でその事象に関する情報を事象アレ
イ内に記憶し、ステップ914に進む。そのステップで
,CALLBACKモジュールは、この事象が事象アレ
イ内の先頭であるか否かを決定する。そうでない場合、
このモジュールは戻る。そうである場合、ステップ91
6で、このモジュールはプロセスに信号を送って、その
事象の発生を示し、戻る。
【0073】
【発明の効果】本発明によって、第1および第2のポー
トを有する周辺装置を少なくとも1つ含む、複数のプロ
セスを実行するための、マルチタスク式データ処理シス
テムが提供される。ある周辺装置全体を制御するための
周辺装置へのアクセス権を、1つのプロセスだけに与え
る能力を含む周辺装置マネジャが提供される。この周辺
マネジャは、第1のプロセスに周辺装置の1つのポート
へのアクセス権を与え、それとは独立にかつ同時に、第
2のプロセスにその周辺装置の第2のポートへのアクセ
ス権を与える能力をも含んでいる。
【図面の簡単な説明】
【図1】本発明が適用される、表示装置に接続された中
央演算処理装置のブロック図である。
【図2】本発明の実施例になる、描出コンテキスト・マ
ネジャ(RCM)のブロック図である。
【図3】描出コンテキスト・マネジャのシステム・コー
ル機能の流れ図である。
【図4】描出コンテキスト・マネジャのデータ構造を示
すブロック図である。
【図5】MAKE_GP(グラフィックス・プロセス作
成)モジュールの流れ図である。
【図6】UNMAKE_GP(グラフィックス・プロセ
ス削除)モジュールの流れ図である。
【図7】CREATE  RENDERING  CO
NTEXT(描出コンテキスト作成)モジュールの流れ
図である。
【図8】DELETE  RENDERING  CO
NTEXT(描出コンテキスト削除)モジュールの流れ
図である。
【図9】BIND(バインド)モジュールの流れ図であ
る。
【図10】SET_RCX(描出コンテキスト設定)モ
ジュールの流れ図である。
【図11】CREATE_SERVER_ATTR(サ
ーバ属性作成)モジュールの流れ図である。
【図12】DELETE_SERVER_ATTR(サ
ーバ属性削除)モジュールの流れ図である。
【図13】UPDATE_SERVER_ATTR(サ
ーバ属性更新)モジュールの流れ図である。
【図14】CREATE_CLIENT_ATTR(ク
ライアント属性作成)モジュールの流れ図である。
【図15】DELETE_CLIENT_ATTR(ク
ライアント属性削除)モジュールの流れ図である。
【図16】UPDATE_CLIENT_ATTR(ク
ライアント属性更新)モジュールの流れ図である。
【図17】LOCK_DEVICE(デバイス・ロック
)モジュールの流れ図である。
【図18】UNLOCK_DEVICE(デバイス・ロ
ック解除)モジュールの流れ図である。
【図19】LOCK_DOMAIN(ドメイン・ロック
)モジュールの流れ図である。
【図20】UNLOCK_DOMAIN(ドメイン・ロ
ック解除)モジュールの流れ図である。
【図21】グラフィックス障害ハンドラの流れ図である
【図22】タイマ・ハンドラの流れ図である。
【図23】エグジット・ハンドラの流れ図である。
【図24】ヘビー・スイッチ・コントローラ・モジュー
ルの流れ図である。
【図25】GUARD_DOMAIN(ドメイン・ガー
ド)モジュールの流れ図である。
【図26】UNGUARD_DOMAIN(ドメイン・
ガード解除)モジュールの流れ図である。
【図27】描出コンテキスト切替えモジュールの流れ図
である。
【図28】描出コンテキスト切替えモジュールの流れ図
である。
【図29】描出コンテキスト障害リスト・モジュールの
流れ図である。
【図30】描出コンテキスト切替え終了モジュールの流
れ図である。
【図31】 割込みハンドラの流れ図である。
【図32】描出コンテキスト・マネジャの、事象処理に
関連するデータ構造を示すブロック図である。
【図33】ASYNC_EVENT(非同期事象)モジ
ュールの流れ図である。
【図34】ENABLE_INTR(割込みイネーブル
)モジュールの流れ図である。
【図35】EVENT_BUFFER(事象バッファ)
モジュールの流れ図である。
【図36】GET_EVENTS(事象獲得)モジュー
ルの流れ図である。
【図37】WAIT_EVENT(事象待機)モジュー
ルの流れ図である。
【図38】事象ハンドラのCALLBACK(コールバ
ック)機能モジュールの流れ図である。
【符号の説明】
10  中央演算処理装置 12  表示装置 14  Xサーバ 22  描出コンテキスト・マネジャ(RCM)30 
 アプリケーション・コード 32  RCMシステム・コール 34  タイマ・ハンドラ 36  ヘビー・スイッチ・コントローラ(カーネル・
プロセス) 38  事象ハンドラ 40  グラフィックス障害ハンドラ 42  エグジット・ハンドラ 44  RCMデータ

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】第1および第2ポートを有する周辺装置を
    少なくとも1つ含む、複数のプロセスを実行するための
    、マルチタスク式データ処理システムにおいて、周辺装
    置を制御するための周辺装置への排他的アクセス権を、
    1つのプロセスだけに与える手段と、第1プロセスに周
    辺装置の一方のポートへの排他的アクセス権を与え、第
    2プロセスにその周辺装置のもう一方のポートへの独立
    かつ同時のアクセス権を与える手段と、を含む、周辺装
    置マネジャを備えたマルチタスク式データ処理システム
  2. 【請求項2】さらに、それぞれのコンテキストが前記周
    辺装置の独立な状態を定義し、かつそれぞれのコンテキ
    ストが前記プロセスのうちの1つによって定義される、
    複数のコンテキストを記憶する手段を含むことを特徴と
    する、請求項1に記載のマルチタスク式データ処理シス
    テム。
  3. 【請求項3】さらに、それぞれのドメインが前記周辺装
    置の一方のポートの独立な状態を定義し、かつそれぞれ
    のドメインが前記プロセスのうちの1つによって定義さ
    れる、複数のドメインを記憶する手段を含むことを特徴
    とする、請求項2に記載のマルチタスク式データ処理シ
    ステム。
  4. 【請求項4】さらに、プロセス従属/装置情報を提供す
    る第1の複数のデータを記憶する手段を含むことを特徴
    とする、請求項3に記載のマルチタスク式データ処理シ
    ステム。
  5. 【請求項5】さらに、プロセス独立/装置従属情報を提
    供する第2の複数のデータを記憶する手段を含むことを
    特徴とする、請求項3に記載のマルチタスク式データ処
    理システム。
  6. 【請求項6】さらに、全プロセスおよび全装置に共通の
    情報を提供する第3の複数のデータを記憶する手段を含
    むことを特徴とする、請求項3に記載のマルチタスク式
    データ処理システム。
  7. 【請求項7】さらに、あるプロセスが排他的アクセス権
    を有するポートに別のプロセスがアクセスしようと試み
    た場合に、前者のプロセスにその旨を通知する手段を含
    むことを特徴とする、請求項3に記載のマルチタスク式
    データ処理システム。
  8. 【請求項8】さらに、あるプロセスが排他的アクセス権
    を有する装置に別のプロセスがアクセスしようと試みた
    場合に、前者のプロセスにその旨を通知する手段を含む
    ことを特徴とする、請求項3に記載のマルチタスク式デ
    ータ処理システム。
  9. 【請求項9】第1および第2ポートを有する周辺装置を
    少なくとも1つ含む、複数のプロセスを実行するための
    、マルチタスク式データ処理システムにおいて、周辺装
    置を制御するための周辺装置への排他的アクセス権を、
    1つのプロセスだけに与えるステップと、第1プロセス
    に、情報を転送するための周辺装置の一方のポートへの
    アクセス権を与え、第2プロセスに、情報を転送するた
    めのその周辺装置のもう一方のポートへの独立かつ同時
    のアクセス権を与えるステップと、を含むことを特徴と
    する、前記周辺装置とインタフェースする方法。
  10. 【請求項10】さらに、それぞれのコンテキストが前記
    周辺装置の独立な状態を定義し、かつそれぞれのコンテ
    キストが前記プロセスのうちの1つによって定義される
    、複数のコンテキストを記憶するステップを含むことを
    特徴とする、請求項9に記載の前記周辺装置とインタフ
    ェースする方法。
  11. 【請求項11】さらに、それぞれのドメインが前記周辺
    装置の一方のポートの独立な状態を定義し、かつそれぞ
    れのドメインが前記プロセスのうちの1つによって定義
    される、複数のドメインを記憶するステップを含むこと
    を特徴とする、請求項9に記載の前記周辺装置とインタ
    フェースする方法。
  12. 【請求項12】さらに、プロセス従属/装置情報を提供
    する第1の複数のデータを記憶するステップを含むこと
    を特徴とする、請求項9に記載の前記周辺装置とインタ
    フェースする方法。
  13. 【請求項13】さらに、プロセス独立/装置従属情報を
    提供する第2の複数のデータを記憶するステップを含む
    ことを特徴とする、請求項9に記載の前記周辺装置とイ
    ンタフェースする方法。
  14. 【請求項14】さらに、全プロセスおよび全装置に共通
    の情報を提供する第3の複数のデータを記憶するステッ
    プを含むことを特徴とする、請求項9に記載の前記周辺
    装置とインタフェースする方法。
  15. 【請求項15】さらに、あるプロセスが排他的アクセス
    権を有するポートに別のプロセスがアクセスしようと試
    みた場合に、その旨を前者のプロセスに通知するステッ
    プを含むことを特徴とする、請求項9に記載の前記周辺
    装置とインタフェースする方法。
  16. 【請求項16】さらに、あるプロセスが排他的アクセス
    権を有する装置に別のプロセスがアクセスしようと試み
    た場合に、その旨を前者のプロセスに通知するステップ
    を含むことを特徴とする、請求項9に記載の前記周辺装
    置とインタフェースする方法。
  17. 【請求項17】複数のプロセスおよび周辺装置マネジャ
    を含むマルチタスク式データ処理システムであって、前
    記の複数のプロセスおよび前記周辺装置マネジャを実行
    するための中央処理手段と、それぞれのポートが前記中
    央処理手段から情報を受け取り、また前記中央処理手段
    へ情報を提供するように接続されている、第1および第
    2のポートを含む、データ処理機能を実行するための周
    辺装置手段とを含み、前記周辺装置マネジャが、周辺装
    置を制御するための周辺装置へのアクセス権を1つのプ
    ロセスだけに与える手段と、第1プロセスに周辺装置の
    一方のポートにアクセスするためのアクセス権を与え、
    第2プロセスにその周辺装置のもう一方のポートへの独
    立かつ同時のアクセス権を与える手段とを含むことを特
    徴とする、マルチタスク式データ処理システム。
  18. 【請求項18】前記周辺マネジャがさらに、それぞれの
    コンテキストが前記周辺装置の独立な状態を定義し、か
    つそれぞれのコンテキストが前記プロセスのうちの1つ
    によって定義される、複数のコンテキストを記憶する手
    段を含むことを特徴とする、請求項17に記載のマルチ
    タスク式データ処理システム。
  19. 【請求項19】前記周辺マネジャがさらに、それぞれの
    ドメインが前記周辺装置の一方のポートの独立な状態を
    定義し、かつそれぞれのドメインが前記プロセスのうち
    の1つによって定義される、複数のドメインを記憶する
    手段を含むことを特徴とする、請求項18に記載のマル
    チタスク式データ処理システム。
  20. 【請求項20】前記周辺マネジャがさらに、プロセス従
    属/装置情報を提供する第1の複数のデータを記憶する
    手段を含むことを特徴とする、請求項19に記載のマル
    チタスク式データ処理システム。
  21. 【請求項21】前記周辺マネジャがさらに、プロセス独
    立/装置従属情報を提供する第2の複数のデータを記憶
    する手段を含むことを特徴とする、請求項19に記載の
    マルチタスク式データ処理システム。
  22. 【請求項22】前記周辺マネジャがさらに、全プロセス
    および全装置に共通の情報を提供する第3の複数のデー
    タを記憶する手段を含むことを特徴とする、請求項19
    に記載のマルチタスク式データ処理システム。
  23. 【請求項23】前記周辺マネジャがさらに、あるプロセ
    スが排他的アクセス権を有するポートに別のプロセスが
    アクセスしようと試みた場合に、その旨を前者のプロセ
    スに通知する手段を含むことを特徴とする、請求項19
    に記載のマルチタスク式データ処理システム。
  24. 【請求項24】前記周辺マネジャがさらに、あるプロセ
    スが排他的アクセス権を有する装置に別のプロセスがア
    クセスしようと試みた場合に、その旨を前者のプロセス
    に通知する手段を含むことを特徴とする、請求項19に
    記載のマルチタスク式データ処理システム。
JP3019229A 1990-02-13 1991-01-21 周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法 Expired - Lifetime JPH0831042B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48018390A 1990-02-13 1990-02-13
US480183 1995-06-07

Publications (2)

Publication Number Publication Date
JPH04215136A true JPH04215136A (ja) 1992-08-05
JPH0831042B2 JPH0831042B2 (ja) 1996-03-27

Family

ID=23906972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3019229A Expired - Lifetime JPH0831042B2 (ja) 1990-02-13 1991-01-21 周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法

Country Status (2)

Country Link
EP (1) EP0442728A3 (ja)
JP (1) JPH0831042B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0610677A3 (en) * 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58169659A (ja) * 1982-03-30 1983-10-06 Fujitsu Ltd 共用ロツク制御方式
JPS62166436A (ja) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ処理システム
JPS63107042U (ja) * 1986-12-26 1988-07-11

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU606854B2 (en) * 1986-01-10 1991-02-21 Wyse Technology, Inc. Virtual peripheral controller
JPH0221306A (ja) * 1988-07-11 1990-01-24 Mitsubishi Electric Corp プログラマブルコントローラ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58169659A (ja) * 1982-03-30 1983-10-06 Fujitsu Ltd 共用ロツク制御方式
JPS62166436A (ja) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ処理システム
JPS63107042U (ja) * 1986-12-26 1988-07-11

Also Published As

Publication number Publication date
JPH0831042B2 (ja) 1996-03-27
EP0442728A2 (en) 1991-08-21
EP0442728A3 (en) 1992-10-21

Similar Documents

Publication Publication Date Title
US5455958A (en) Rendering context manager for display adapters
US5291608A (en) Display adapter event handler with rendering context manager
US5367680A (en) Rendering context manager for display adapters supporting multiple domains
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
EP0747815B1 (en) Method and apparatus for avoiding dealocks by serializing multithreaded access to unsafe resources
JP2514299B2 (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
JP3659062B2 (ja) 計算機システム
US4914570A (en) Process distribution and sharing system for multiple processor computer system
US5966543A (en) Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US7325148B2 (en) Power supply management system in parallel processing system by OS for single processors and power supply management program therefor
US5835764A (en) Transaction processing system and method having a transactional subsystem integrated within a reduced kernel operating system
US7526673B2 (en) Parallel processing system by OS for single processors and parallel processing program
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
JPH09198265A (ja) マルチスレッド型プログラミング環境における共用資源への並行同時アクセスを自動的に管理する方法及びそのための装置
JPH06161789A (ja) コンピュータ・システムにおける共用資源のプロセス内ロッキング方法および装置
JPH03161859A (ja) リクエスト管理方法及びアクセス制御システム
JPH10207723A (ja) 仮想装置アクセス・システム
JPH1115793A (ja) 資源の保全性を保護する方法
Takada et al. A novel approach to multiprogrammed multiprocessor synchronization for real-time kernels
US5708808A (en) Method and apparatus for concurrency with critical regions
JPS58169659A (ja) 共用ロツク制御方式
JPH04215134A (ja) 割込みマネジャおよび割込み処理方法
JPH04215136A (ja) 周辺装置マネジャ、マルチタスクデータ処理システムおよびインターフェース方法
JPH04213732A (ja) インターフェース・システムおよび方法
JP2002157132A (ja) コンピュータ、その制御方法及びその制御方法を記録した記録媒体