JP2001109634A - システムコール制御装置および記録媒体 - Google Patents

システムコール制御装置および記録媒体

Info

Publication number
JP2001109634A
JP2001109634A JP28372899A JP28372899A JP2001109634A JP 2001109634 A JP2001109634 A JP 2001109634A JP 28372899 A JP28372899 A JP 28372899A JP 28372899 A JP28372899 A JP 28372899A JP 2001109634 A JP2001109634 A JP 2001109634A
Authority
JP
Japan
Prior art keywords
mode
system call
status register
supervisor
user mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP28372899A
Other languages
English (en)
Inventor
Shinichi Hirata
真一 平田
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.)
PFU Ltd
Original Assignee
PFU Ltd
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 PFU Ltd filed Critical PFU Ltd
Priority to JP28372899A priority Critical patent/JP2001109634A/ja
Publication of JP2001109634A publication Critical patent/JP2001109634A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】 スーパバイザモードのときに退避・復元を行
なわずにダイレクトな関数呼び出しすることで、無用な
システムコール処理時の退避・復元などを無くしてシス
テムコール処理の高速化を図ることを目的とする。 【解決手段】 共有域に設け、ユーザモードあるいはス
ーパバイザモードのいずれかを複写あるいは復元する仮
想ステータスレジスタと、システムコール発生時に上記
仮想ステータスレジスタを参照してスーパバイザモード
と判明したときに関数呼び出しでシステムコール例外処
理を呼び出して実行させた後に元のスーパバイザモード
に復帰させ、一方、ユーザモードと判明したときにスー
パバイザモードに遷移させてスタック退避させた後、シ
ステムコール例外処理を呼び出して実行させた後にスタ
ック復元し、元のユーザモードに復帰させるシステムコ
ール制御手段とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、システムコール処理を
制御するシステムコール制御装置および記録媒体に関す
るものである。
【0002】
【従来の技術】従来、オペレーティングシステム(以下
OSという)が提供するシステムコールは、図5の
(a),(b)に示すように、システムコール例外を発
生させてスーパバイザモードへ遷移させ後、当該スーパ
バイザモードでシステムコール処理を実行させている。
以下図5の構成を簡単に説明する。
【0003】図5は、従来技術の説明図を示す。図5の
(a)は、ユーザモードのもとでシステムコール例外を
発生させたときの動作手順を示す。このユーザモードの
もとで割り込みでシステムコール例外が発生すると(
のYES),スーパバイザモード(スーパバイザ状態)
に遷移し、当該スーパバイザモードのもとでシステムコ
ール例外処理でスタック退避を行った後、システムコ
ール処理で所定の処理を行なう。処理終了したときに、
システムコール例外処理でスタック復元し、割込み状
態から元のユーザモードに戻るように、OSが制御して
いる。
【0004】図5の(b)は、スーパバイザモードのも
とでシステムコール例外を発生させたときの動作手順を
示す。このスーパバイザモードのもとで割り込みでシス
テムコール例外が発生すると(’のYES)、当該ス
ーパバイザモードからスーパバイザモードに遷移し、当
該スーパバイザモードのもとでシステムコール例外処理
で’スタック退避を行った後、システムコール処理で
所定の処理を行なう。処理終了したときに、システムコ
ール例外処理で’スタック復元し、割込み状態から元
のスーパバイザモードに戻るように、OSが制御してい
る。
【0005】
【発明が解決しようとする課題】上述した従来の図5の
(b)では、スーパバイザモードでシステムコール例外
が発生したがこのときに現在のモードがユーザモードか
スーパバイザモードのいずれか判断できないために、ユ
ーザモードの場合と同様にシステムコール例外を発生さ
せてスーパバイザモードに遷移させたものであり、その
結果、スタック退避、スタック復元という処理を常に行
なわざるを得なく、高速化ができないという問題があっ
た。
【0006】本発明は、これらの問題を解決するため、
スーパバイザモードあるいはユーザモードのいずれであ
るかを認識する情報をメモリ上に複写/復元しておき、
システムコール例外発生時に複写/復元されたメモリ上
の情報を参照してスーパバイザモードのときに退避・復
元を行なわずにダイレクトな関数呼び出しすることで、
無用なシステムコール処理時の退避・復元などを無くし
てシステムコール処理の高速化を図ることを目的として
いる。
【0007】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、OS1
は、オペレーティングシステムであって、システムコー
ル制御手段2、ステータスレジスタSR、レジスタSR
R1、共有域上に設けた仮想ステータスレジス6などか
ら構成されるものである。
【0008】システムコール制御手段2は、システムコ
ール処理を制御するものである。ステータスレジスタS
Rは、スーパバイザモードのときに参照できるものであ
って、ここでは、モード情報(ユーザモード/スーパバ
イザモード)を保持するものである。
【0009】レジスタSRR1は、モード情報をステー
タスレジスタに退避/復元するためのものである。仮想
ステータスレジスタ6は、モードに依存することなくア
クセスでき、ステータスレジスタSRのモード情報を保
持するものである。
【0010】次に、動作を説明する。システムコール制
御手段2がシステムコール発生時に仮想ステータスレジ
スタ6を参照してスーパバイザモードと判明したときに
関数呼び出しでシステムコール例外処理を呼び出して実
行させた後に元のスーパバイザモードに復帰させ、一
方、ユーザモードと判明したときにスーパバイザモード
に遷移させてスタック退避させた後、システムコール例
外処理を呼び出して実行させた後にスタック復元し、元
のユーザモードに復帰させるようにしている。
【0011】この際、ステータスレジスタSR中のモー
ド情報を共有域メモリ上に設けた仮想ステータスレジス
タ6に複写あるいは復元し、現在のモードがユーザモー
ドあるいはスーパバイザモードのいずれであるかを保持
させるようにしている。
【0012】また、ユーザモードからスーパバイザモー
ドに遷移したときにレジスタSRR1のユーザモード情
報も退避時に併せてを退避し、復元時にユーザモード情
報も併せてレジスタSRR1に復元し、レジスタSRR
1に復元したユーザモード情報をもとに元のユーザモー
ドに復帰させるようにしている。
【0013】従って、スーパバイザモードあるいはユー
ザモードのいずれであるかを認識する情報をメモリ上の
仮想ステータスレジスタ6に複写/復元しておき、シス
テムコール例外発生時に仮想ステータスレジスタ6を参
照してスーパバイザモードのときに退避・復元を行なわ
ずにダイレクトな関数呼び出することで、無用なシステ
ムコール処理時の退避・復元などを無くしてシステムコ
ール処理の高速化を図ることが可能となる。
【0014】
【実施例】次に、図1から図4を用いて本発明の実施の
形態および動作を順次詳細に説明する。
【0015】図1は、本発明のシステム構成図を示す。
図1において、OS1は、全体を統括制御するものであ
って、ここでは、システムコール処理を行なうものであ
り、システムコール制御手段2、ステータスレジスタS
R、レジスタSRR1、共有域メモリ5上に設けた仮想
ステータスレジス6などから構成されるものである。
【0016】システムコール制御手段2は、システムコ
ール発生時に仮想ステータスレジスタ6を参照してユー
ザモードあるいはスーパバイザモードのいずれかを判定
したり、スーパバイザモードと判明したときに関数呼び
出しでシステムコール例外処理を呼び出して実行させた
後に元のスーパバイザモードに復帰させたり、ユーザモ
ードと判明したときにスーパバイザモードに遷移させて
スタック退避させた後に、システムコール例外処理を呼
び出して実行させた後にスタック復元し、元のユーザモ
ードに復帰させたりなどするものである(図2から図4
を用いて後述する)。
【0017】ステータスレジスタ(SR)3は、各種ス
テータスを保持するものであって、ここでは、ユーザモ
ードあるいはスーパバイザモードのいずれのモードであ
るかを保持するものである(図4の(a)参照)。
【0018】レジスタ(SRR1)4は、ステータスレ
ジスタ(SR)3のモード情報を退避/復元するための
ものである(図4を用いて後述する)。共有域メモリ5
は、ユーザモードあるいはスーパバイザモードのいずれ
のモードでもアクセス可能な領域であって、ここでは、
仮想ステータスレジスタ6を設けるものである。
【0019】仮想ステータスレジスタ6は、ステータス
レジスタ(SR)3の内容(ここでは、モード情報)を
複写あるいは復元して保持させるものである。アプリ7
は、各種応用プログラムであって、OS1のもとで各種
業務処理を行なうものである。
【0020】プロトコル8は、アプリ7とドライバ9と
の間でデータの授受を行なうものである。ここで、アプ
リ7およびプロトコル8は、ユーザモードのもとで各種
処理や制御を行なうものである。
【0021】ドライバ9は、スーパバイザモードのもと
で動作してデバイス10を制御して各種処理や制御を行
なうものである。デバイス10は、各種処理や制御を行
なうものである。
【0022】次に、図2のフローチャートの順番に従い
図1の構成の全体の動作を詳細に説明する。図2は、本
発明の動作説明フローチャートを示す。
【0023】図2において、S1は、システムコール発
行する。ここでは、例えば図示の ・mm alloc( ) を発行する。
【0024】S2は、スーパバイザモードあるいはユー
ザモードのいずれであるかを判別する。これは、左側に
記載したように、システムコール制御手段2が共有域メ
モリ5上に設けた仮想ステータスレジスタ6を参照し、
現在のモードがスーパバイザモードあるいはユーザモー
ドのいずれかであるかを判別する。スーパバイザモード
と判明した場合には、S7のモード判断でもスーパバイ
ザモードと判定されるので、S10で関数として復帰
(例えば図5のシステムコール処理を関数として呼び出
して処理を実行させ、処理実行終了後に関数呼び出しと
同じように、元のスーパバイザモードに復帰)する。こ
れにより、スーパバイザモードのもとで、システムコー
ル発行された場合には、既述した従来の図5の(b)の
スーパバイザモードに遷移しなくて’がなく、それに
続く、’の退避、’の復元がなくなり、システムコ
ール発生時の処理が簡略となり高速化を図ることが可能
となる。一方、S2でユーザモードと判明した場合に
は、S3に進む。
【0025】S3は、システムコール例外を発生させ
る。S4は、スーパバイザモードへ遷移させる。S5
は、退避させる。
【0026】S6は、メモリ獲得し、指定されたシステ
ムコール処理を実行する。S7は、モード判断する。こ
れは、左側に点線の矢印で示したように、共有域メモリ
5上に設けた仮想ステータスレジスタ6を参照し、直前
のモードを取り出す。S2でユーザモードと判定された
場合には、S3からS6の処理を行ない、ここでも、ユ
ーザモードと判定されるので、S8でスタック復元し、
S9で割込み処理から元のユーザモードに戻る。一方、
S7でスーパバイザモードと判定された場合には、S2
でもスーパバイザモードと判定されるので、既述したよ
うにS10で関数として復帰する。
【0027】以上のように、システムコールが発行され
たときに、共有域メモリ5上に設けた仮想ステータスレ
ジスタ6を参照して現在のモードがスーパバイザモード
の判明した場合には、スーパバイザモードへの遷移、退
避を行なうことなく(既述した従来の図5の(b)の
’、’、’を行なうことなく)、ダイレクトな関
数呼び出しに変換してシステムコール処理を呼び出して
処理を実行させ直接に元のスーパバイザモードに復帰す
ることが可能となり、システムコール発行時の処理を高
速化することが可能となる。一方、仮想ステータスレジ
スタ6を参照してユーザモードと判明した場合には、従
来と同様にしてスーパバイザモードへの遷移、退避、シ
ステムコール処理、復元して元のユーザモードに戻る
(S3からS6、S8、S9でシステムコール処理を実
行して元のユーザモードに戻る)。以下順次詳細に説明
する。
【0028】図3は、本発明の説明図(その1)を示
す。図3の(a)は、例外処理の流れを示す。図3の
(a)において、S11は、例外発生する。これは、シ
ステムコールによる例外発生することを表す。
【0029】S12は、例外発生後のSR(ステータス
レジスタSR)を退避する。この際、併せて右側の点線
の矢印で示すように、仮想SR(共有域メモリ上に設け
た仮想ステータスレジスタ6)にモード(ユーザモー
ド)を複写する(図4(b)のS32)。
【0030】S13は、割込み処理を行なう。これは、
システムコール処理を行ない、終了したときに次のS1
4に進む。S14は、スタック内のSRを復元する。こ
れは、S12で退避したモード情報をステータスレジス
タSRに復元し、例外発生前のモードに戻す。この際、
併せて右側の点線の矢印で示すように、スタック内のS
R値を復元(S12で退避した例外発生前のモード情報
を仮想SRに復元)する(図4(b)のS33)。
【0031】図3の(b)は、仮想SR(共有域メモリ
上に設けた仮想ステータスレジスタ6)の状態遷移を示
す。図3の(b)において、S21は、SRを複写す
る。これは、左側の点線で示すように、例外発生時に遷
移したスーパバイザモードのもとで、ステータスレジス
タSR中のモード情報を読み出して、共有域メモリ5上
に設けた仮想ステータスレジスタ6に複写する。
【0032】S22は、スタック内のSR値を復元す
る。これは、左側の点線で示すように、スタック内のS
R値を仮想ステータスレジスタ6に復元して元のモード
情報に戻す。
【0033】以上によって、スーパバイザモードでない
と参照などできないモード情報を共有域メモリ5上の仮
想ステータスレジスタ6に複写・復元して常に保持させ
ることが可能となる。
【0034】図4は、本発明の説明図(その2)を示
す。図4の(a)は、ステータスレジスタ(SR)3の
例を示す。ステータスレジスタ(SR)3中の所定ビッ
トに図示のように、 1:ユーザモード 0:スーパバイザモード のモード情報を表すビットを設けている。
【0035】図4の(b)は、モード複写/復元の様子
を示す。図4の(b)において、 (1) ユーザモード(1)では、例えば図示の下記の
ようにする。
【0036】 ・ステータスレジスタSR:1(ユーザモード) ・仮想ステータスレジスタ6:1(ユーザモード) (2) (1)に続くスーパバイザモードでは、図示の
ように、割込み後に例えば図示の下記のようにする。
【0037】・ステータスレジスタSR:0(スーパバ
イザモード(割込み後のモード状態に設定すると共にS
32で仮想ステータスレジスタ6に複写)) ・レジスタSRR1:1(ユーザモード(S31で割込
み前のモード状態を複写し、更にスタック退避)) ・仮想ステータスレジスタ:0 (3) スーパバイザモードからユーザモードに復帰す
るるときに、例えば図示のようにする。
【0038】・レジスタSR:1(ユーザモード(スタ
ックからS34で復元)) 以上のように、ステータスレジスタSR、レジスタSR
R1、共有域メモリ5上に仮想ステータスレジスタ6を
設け、ステータスレジスタSRのモード情報を仮想ステ
ータスレジスタ6に保持され、既述した図2のS2で当
該仮想ステータスレジスタ6のモード情報を参照して現
在のモードがスーパバイザモードか、ユーザモードかを
容易に判定することが可能となる。
【0039】
【発明の効果】以上説明したように、本発明によれば、
スーパバイザモードあるいはユーザモードのいずれであ
るかを認識する情報をメモリ上の仮想ステータスレジス
タ6に複写/復元しておき、システムコール例外発生時
に仮想ステータスレジスタ6を参照してスーパバイザモ
ードのときに退避・復元を行なわずにダイレクトな関数
呼び出す構成を採用しているため、無用なシステムコー
ル処理時の退避・復元などを無くしてシステムコール処
理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明の説明図(その1)である。
【図4】本発明の説明図(その2)である。
【図5】従来技術の説明図である。
【符号の説明】
1:OS(オペレーティングシステム) 2:システムコール制御手段 3:ステータスレジスタSR 4:レジスタSRR1 5:共有域メモリ 6:仮想ステータスレジスタ 7:アプリ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】システムコール処理を制御するシステムコ
    ール制御装置において、 共有域に設け、ユーザモードあるいはスーパバイザモー
    ドのいずれかを複写あるいは復元する仮想ステータスレ
    ジスタと、 システムコール発生時に上記仮想ステータスレジスタを
    参照してスーパバイザモードと判明したときに関数呼び
    出しでシステムコール例外処理を呼び出して実行させた
    後に元のスーパバイザモードに復帰させ、一方、ユーザ
    モードと判明したときにスーパバイザモードに遷移させ
    てスタック退避させた後、システムコール例外処理を呼
    び出して実行させた後にスタック復元し、元のユーザモ
    ードに復帰させるシステムコール制御手段とを備えたこ
    とを特徴とするシステムコール制御装置。
  2. 【請求項2】ステータスレジスタ中のモード情報を共有
    域メモリ上に設けた上記仮想ステータスレジスタに複写
    あるいは復元し、現在のモードがユーザモードあるいは
    スーパバイザモードのいずれであるかを保持させること
    を特徴とする請求項1記載のシステムコール制御装置。
  3. 【請求項3】共有域に設け、ユーザモードあるいはスー
    パバイザモードのいずれかを仮想ステータスレジスタに
    複写あるいは復元する手段と、 システムコール発生時に上記仮想ステータスレジスタを
    参照してスーパバイザモードと判明したときに関数呼び
    出しでシステムコール例外処理を呼び出して実行させた
    後に元のスーパバイザモードに復帰させ、一方、ユーザ
    モードと判明したときにスーパバイザモードに遷移させ
    てスタック退避させた後、システムコール例外処理を呼
    び出して実行させた後にスタック復元し、元のユーザモ
    ードに復帰させるシステムコール制御手段として機能さ
    せるプログラムを記録したコンピュータ読取可能な記録
    媒体。
JP28372899A 1999-10-05 1999-10-05 システムコール制御装置および記録媒体 Pending JP2001109634A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28372899A JP2001109634A (ja) 1999-10-05 1999-10-05 システムコール制御装置および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28372899A JP2001109634A (ja) 1999-10-05 1999-10-05 システムコール制御装置および記録媒体

Publications (1)

Publication Number Publication Date
JP2001109634A true JP2001109634A (ja) 2001-04-20

Family

ID=17669335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28372899A Pending JP2001109634A (ja) 1999-10-05 1999-10-05 システムコール制御装置および記録媒体

Country Status (1)

Country Link
JP (1) JP2001109634A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257257A (ja) * 2006-03-23 2007-10-04 Matsushita Electric Ind Co Ltd マルチタスクシステムにおけるタスク実行環境切替え方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257257A (ja) * 2006-03-23 2007-10-04 Matsushita Electric Ind Co Ltd マルチタスクシステムにおけるタスク実行環境切替え方法

Similar Documents

Publication Publication Date Title
JP2001166950A (ja) 割り込み管理装置及び割り込み管理方法
JPS6364144A (ja) 記憶装置間デ−タ転送方式
JPH1011301A (ja) マルチタスク処理装置及びマルチタスク処理制御方法
JP2003058324A (ja) ディスクアレイ装置
JP2001109634A (ja) システムコール制御装置および記録媒体
JPH02196355A (ja) 記憶処理システム
JPH1139171A (ja) マルチタスク処理装置、マルチタスク処理制御方法及び制御プログラム記憶媒体
JP3102381B2 (ja) タスクデバッグ装置、タスクデバッグ方法及びその記録媒体
JPH11167494A (ja) 演算処理装置、及び演算処理装置のレジスタ管理方法
JPH0713833A (ja) 順編成ファイル処理方式
JPH06208441A (ja) プリンタ装置印字環境制御方式
JPH04216152A (ja) バックアップコントローラ
JPH06169323A (ja) パケット交換モジュールの現用/予備切り替え処理方式
JP2765831B2 (ja) データ処理装置
JPH07225681A (ja) 割込制御装置
JP3293337B2 (ja) プリンタ装置
JP2001236241A (ja) メモリ二重化制御方式
JPH04293159A (ja) ベクトルデータ処理装置
JPS628830B2 (ja)
JPH0563824B2 (ja)
JPH02310753A (ja) マイクロプログラム制御装置
JPS6337440A (ja) 再書込みが不可能なフアイルへの誤出力防止制御方式
JPH1139103A (ja) 磁気テープ処理装置およびその処理方法
JPH0319033A (ja) システム中断・再開方式
JPH0566897A (ja) プリンタ装置