JPH0695891A - インタフェース方式 - Google Patents

インタフェース方式

Info

Publication number
JPH0695891A
JPH0695891A JP24207292A JP24207292A JPH0695891A JP H0695891 A JPH0695891 A JP H0695891A JP 24207292 A JP24207292 A JP 24207292A JP 24207292 A JP24207292 A JP 24207292A JP H0695891 A JPH0695891 A JP H0695891A
Authority
JP
Japan
Prior art keywords
system call
data
operating system
information
operating
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
JP24207292A
Other languages
English (en)
Inventor
Nobuyuki Yamauchi
信之 山内
Takeshi Yasuda
剛 安田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP24207292A priority Critical patent/JPH0695891A/ja
Publication of JPH0695891A publication Critical patent/JPH0695891A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】極めて簡易な手順により異種オペレーティング
システム間インタフェースの構築が可能となり、インタ
フェース自体もアプリケーションプログラマが意図した
通りの動作を実現することができ、かつ移植性、保守性
に富むインタフェースを作成することが可能となるイン
タフェース方式を提供する。 【構成】第1のオペレーティングシステム(1)上で動
作するアプリケーションプログラムで呼び出されたシス
テムコールをシステムコ−ル解析部(11)で解析し、
必要な情報を取り出し、この取り出された情報は、制御
部(10)によって仮想データ部(12)に渡され、仮
想データ部(12)に保持される。仮想データ部(1
2)では、アプリケーションプログラムが第1のオペレ
ーティングシステム(1)上で動作していると考えたと
きの各種情報が保持され、これら各情報をもとに、シス
テムコール変換部(13)が第1のオペレーティングシ
ステム(1)とは異なる第2のオペレーティングシステ
ム(2)上で、第1のオペレーティングシステム(1)
のシステムコールに対応した処理を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、オペレーティングシ
ステムに対するシステムコールを含んだアプリケーショ
ンプログラムをクロス環境でシミュレートするためのイ
ンタフェース方式に関する。
【0002】
【従来の技術】一般に、あるオペレーティングシステム
上で動作するアプリケーションソフトウェアを別のオペ
レーティングシステムに移植して使用することは、ソフ
トウェアの開発効率の向上に有効である。
【0003】ところで、移植の対象となるアプリケーシ
ョンソフトウェアの数が多い場合、一つ一つのアプリケ
―ションソフトウェアを移植するのではなく、オペレー
ティングシステム間のインタフェースをとるモジュール
を作成し、そのインタフェースモジュールを介してアプ
リケーションソフトウェアを動作させる方が効率的であ
る。
【0004】従来、多くの場合、アプリケーションソフ
トウェアの移植対象のオペレーティングシステムの数が
比較的少数であると、実行効率の向上を図るために、オ
ペレーティングシステム毎に最適と思われるインタフェ
ース方式をとっている。
【0005】すなわち、この場合、システムコール処理
ルーチンを移植対象のオペレーティングシステムのアー
キテクチャに沿うように修正したり、あるいは全て置き
換えたりするように構成されている。
【0006】この場合、オペレーティングシステム間イ
ンタフェースの構築技術よりも、むしろインタフェース
の実現自体に注力されている。
【0007】ところが最近、さまざまな分野で特殊問題
向きのオペレーティングシステムが使用されてきてお
り、これらのオペレーティングシステム上で開発された
ソフトウェア資源を有効に活用することが望まれてい
る。
【0008】すなわち、オペレーティングシステム間の
インタフェースの開発が要求されているが、このように
移植対象となるオペレーティングシステムの数が増加し
ていることから、前述のような方法では生産性に限界が
生じてしまうことが認識され始めている。
【0009】そのための対策の一つとして、通常は直接
動作に影響しないと思われる、個々のオペレーティング
システムに固有な機能を削ることによって、多くの種類
のオペレーティングシステムのインタフェ―スをとるこ
とが行われている。この場合、アプリケーションプログ
ラムの完全な動作というよりも、結果的に同じであれば
途中動作はあまり関係ないような対象に限られている。
【0010】いずれにしても、現在のところ、インタフ
ェースの開発に関しての明確な構築技術は示されておら
ず、その結果、開発効率の低下、開発期間の延長を招く
結果となっている。
【0011】
【発明が解決しようとする課題】上述の如く、従来のイ
ンタフェース方式では、次のような課題を含んでいる。 1)特定のオペレーティングシステム間のインタフェー
スだけを考えた、インタフェースモジュールの構築方法
であると、新しいインタフェースモジュールを作成する
ときに、最初から構築し直さなければならないという事
態が生じてしまう。また、もとのインタフェースモジュ
ールを修正する形で、新しいインタフェースモジュール
を作成する場合にも、構造的に複雑になり、保守性が悪
化してしまう。
【0012】2)オペレーティングシステムの機構に依
存したシステムコールのインタフェースを削る形で、イ
ンタフェースを実現する方法をとると、アプリケーショ
ンプログラマが意図した通りにプログラムが動作しない
可能性がある。例えば、タスクの優先度を変化させるシ
ステムコールを発行した場合、オペレーティングシステ
ムのタスクスイッチング方式が、タイムスライス方式で
あるか、イベント・ドリブン方式であるかによって、実
行されるタスクの順番が異なり、それにより誤った結果
をもたらすこともあり得る。その結果、インタフェース
を使用できるアプリケ―ションソフトウェアは個々のオ
ペレーティングシステム固有の機構に影響されないもの
だけに範囲を狭められてしまう。
【0013】3)特定のオペレーティングシステムの機
構に依存した形でインタフェースが作成されていると、
インタフェース自体の移植性が悪くなってしまう。その
結果、インタフェースの開発効率も悪くなってしまう。
【0014】そこで、この発明は、極めて簡易な手順に
より異種オペレーティングシステム間インタフェースの
構築が可能となり、インタフェース自体もアプリケーシ
ョンプログラマが意図した通りの動作を実現することが
でき、かつ移植性、保守性に富むインタフェースを作成
することが可能となるインタフェース方式を提供するこ
とを目的とする。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、この発明は、第1のオペレーティングシステムに対
するシステムコールを含むアプリケーションプログラム
を、前記第1のオペレーティングシステムとは種類の異
なる第2のオペレーティングシステムにて実施するクロ
ス環境でシミュレートするためのインタフェース方式に
おいて、前記第1のオペレーティングシステムのシステ
ムコールを解析し、該システムコールのシミュレーショ
ンに必要なデータを取り出すシステムコール解析部と、
前記第1のオペレーティングシステム内において前記ア
プリケーションプログラムを実行させた場合の仮想の各
種情報を保持する仮想データ部と、前記仮想データ部が
持っているデータを参照し、前記第2のオペレーティン
グシステムにおいて同様な内部状況を生成するように処
理を行うシステムコール変換部と、前記システムコール
解析部、前記仮想データ部、前記システムコール変換部
を管理し、それぞれの制御を行う制御部とを具備したこ
とを特徴とする。
【0016】
【作用】この発明のインタフェース方式では、第1のオ
ペレーティングシステム上で動作するアプリケーション
プログラムで呼び出されたシステムコールをシステムコ
ール解析部で解析し、必要な情報を取り出す。
【0017】取り出された情報は、制御部によって仮想
データ部に渡され、仮想データ部に保持される。仮想デ
ータ部ではまた、アプリケーションプログラムが第1の
オペレーティングシステム上で動作していると考えたと
きの各種情報が保持される。この情報には、各タスク情
報、メモリ情報、ファイル情報、割込み情報などが含ま
れる。
【0018】仮想データ部内の情報をもとに、システム
コール変換部が第1のオペレーティングシステムとは異
なる第2のオペレーティングシステム上で、第1のオペ
レーティングシステムシステムコールに対応した処理を
行う。
【0019】これら、システムコール解析部、仮想デー
タ部、システムコール変換部を制御しているのが制御部
である。この制御部はまた、インタフェースを通して生
成されたタスク、メモリなどの資源も制御する。
【0020】これらシステムコール解析部、仮想データ
部、システムコール変換部、制御部は完全にモジュール
化され、オペレーティングシステムに依存するのは、こ
のうちシステムコール解析部とシステムコール変換部だ
けである。そのため、新たなオペレーティングシステム
間のインタフェースを作成する際には、これらの部分だ
けを代えれば良い。したがって、インタフェースの生産
性、保守性、移植性が向上する。
【0021】
【実施例】以下、この発明のインタフェース方式を実施
例を図面に基づいて詳細に説明する。
【0022】図1は、この発明のインタフェース方式の
一実施例を概念的に示した機能ブロック図である。図1
において、オペレーティングシステム1はアプリケーシ
ョンプログラムが直接動作することが可能なオペレーテ
ィングシステムであり、オペレーティングシステム2
は、その上で上記アプリケーションプログラムをシミュ
レートし、動作させるオペレーティングシステムであ
る。
【0023】この実施例のインタフェース方式において
は、システムコール解析部11、仮想データ部12、シ
ステムコール変換部13、制御部10を具備して構成さ
れ、システムコール解析部11、仮想データ部12、シ
ステムコール変換部13は、制御部10により制御され
る。
【0024】最初に、システムコール解析部11、仮想
データ部12、システムコール変換部13、制御部10
がどのように関連し動作するのかを説明する。そのため
に、オペレーティングシステム1上で動作するアプリケ
ーションプログラムをオペレーティングシステム1とは
異なるオペレーティングシステム2上で動作させる場合
を考える。
【0025】オペレーティングシステム2上では、制御
部10によってこのインタフェースの動作を管理してい
る。オペレーティングシステム1に対するシステムコー
ルが発行されたとき、制御部10によりそのシステムコ
ールは最初にシステムコール解析部11に渡される。
【0026】システムコール解析部11では、発行され
たオペレーティングシステム1に対するシステムコール
の名前と引数から、このシステムコールをオペレーティ
ングシステム2上で動作するために必要な情報であるシ
ステムコール解析データを作成する。このシステムコー
ル解析データは仮想データ部12に渡される。
【0027】仮想データ部12は、システムコール解析
データの外に、オペレーティングシステム1の内部情報
を保持する。すなわち上記アプリケーションプログラム
を仮にオペレーティングシステム1上で実行した場合の
オペレーティングシステム1の各種内部情報を保持して
いる。したがって、システムコール解析部11は、シス
テムコール解析データを元に、仮想データ部12の内容
を常にオペレーティングシステム1に合わせるように修
正する。
【0028】仮想データ部12への書き込みが終了する
と、制御部10によってシステムコール変換部13に制
御が移る。システムコール変換部13では、仮想データ
部12を元にオペレーティングシステム2上に対応する
命令群を実行する。システムコール変換部13は、オペ
レーティングシステム2におけるプログラムの実行に必
要な各種情報と仮想データ部12との対応表を保持して
おり、常に整合性を保つことができるようになってい
る。
【0029】図2は、上述したこの実施例の全体処理の
流れをフローチャートで示したものである。
【0030】すなわち、まず、制御部10は、システム
コールが発行されたかを調べ(ステップ101)、シス
テムコールが発行されると(ステップ102)、システ
ムコール解析部11によりシステムコール解析データを
作成し、このシステムコール解析データをもとに仮想デ
ータ部12に仮想データを作成する(ステップ10
3)。仮想データ部12における仮想データの作成が終
了すると、次に、システムコール変換部13により、こ
のシステムコールに対応する処理を行い(ステップ10
4)リターンする。なお、ステップ102で、システム
コールが発行されていないとそのままリターンする。
【0031】次に、この図2に示す処理の流れを更に詳
細に説明するために、次のような具体的システムコール
を例にとって説明する。
【0032】 cretsk(filename,taskid,priority) ……(1) ここで、“cretsk”はシステムコール名を示し、“file
name”は第1引数、“taskid”は第2引数、“priorit
y”は第3引数を示す。
【0033】式(1)に示すシステムコールが、オペレ
ーティングシステム1のために作成されたアプリケーシ
ョンプログラムの中で発行されたとすると、制御部10
により、このシステムコールの制御はシステムコール解
析部11に渡る。
【0034】システムコール解析部11は、図3に示す
ようなオペレーティングシステム1に関するシステムコ
ール表を持ち、このシステムコール表を参照することに
より図4に示すようなシステムコール解析データを作成
する。
【0035】図3に示すシステムコール表には、各シス
テムコール名に対応してシステムコールの機能と各引数
の意味が書かれており、図4に示すシステムコール解析
データには、図3に示すシステムコール表を参照して、
今発行されたシステムコールに関する機能と引数の意味
が書かれる。
【0036】ここで、図3に示すシステムコール表に
は、1列目にシステムコール名が格納され、2列目に各
システムコールの機能が格納されている。3列目以降は
各システムコールに伴う引数の意味が格納されている。
この例では、システムコール表に関して、各行、各列の
終わりには0が入っている。
【0037】式(1)に示すシステムコールが発行され
た場合、このシステムコールのシステムコール名は“cr
etsk”であるので、図3に示すシステムコール表から、
このシステムコールはタスクを生成するシステムコール
であることが判明する。
【0038】続いて、第1引数“filename”は、ロード
モジュール形式の生成するタスクのファイル名を示し、
第2引数“taskid”は、生成するタスクの識別子を示
し、第3引数“priority”は、生成するタスクの優先度
を示すことがわかる。
【0039】システムコール解析部11は、このシステ
ムコール表からの情報と、式(1)のシステムコールか
ら図4に示すシステムコール解析データを作成する。
【0040】図4に示すシステムコール解析データは、
配列要素二つづつが組になって情報が格納されている。
この場合、要素番号0には、システムコールの機能、す
なわち「タスクの生成」が書き込まれ、要素番号1に
は、システムコール名“cretsk”が書き込まれ、要素番
号2には、第1引数の意味「タスクファイル名」が書き
込まれ、要素番号3には、第1引数因数“filename”が
書き込まれ、要素番号4には、第2引数の意味「タスク
識別子」が書き込まれ、要素番号5には、第2引数“ta
skid”が書き込まれ、要素番号6には、第3引数の意味
「タスク優先度」が書き込まれ、要素番号7には、第3
引数“priority”が書き込まれ、要素番号7には、終了
コードである“0”が書き込まれて、システムコール解
析データが作成される。
【0041】このようにして、作成されたシステムコー
ル解析データは、仮想データ部12に保持され、後でシ
ステムコール変換部13で使用される。
【0042】仮想データ部12では、プログラムの実行
に必要な各種情報を一括して管理している。この情報に
は、図5(a)〜(e)に示すように、タスク情報、フ
ァイル情報、メモリ情報、割込みハンドラ情報、ユーザ
情報等が表として保持されている。
【0043】ここで、図5(a)に示すタスク情報に
は、タスク1情報からタスクn情報までがあり、各タス
ク情報は、タスクID、タスクの状態、優先度、リソー
ス、…等の情報を含んでいる。
【0044】また、図5(b)に示すファイル情報に
は、オープンしている数、ファイル1の先頭アドレス、
ファイル1の参照数、ファイル2の先頭アドレス、…等
の情報を含んでいる。
【0045】また、図5(c)に示すメモリ情報には、
システム用メモリ先頭アドレス、システム用メモリ大き
さ、共用メモリ先頭アドレス、共用メモリ大きさ、…等
の情報を含んでいる。
【0046】また、図5(d)に示す割込みハンドラ情
報には、割込みハンドラ1先頭アドレス、割込みハンド
ラ2先頭アドレス、割込みハンドラ3先頭アドレス、…
等の情報を含んでいる。
【0047】また図5(d)に示すユーザ情報には、ユ
ーザ1特権、ユーザ1に属するタスク、ユーザ2特権、
…等の情報を含んでいる。これらの情報は、オペレーテ
ィングシステム1の内部情報であり、常に最新の情報に
更新される。
【0048】また、仮想データ部12のデータ構造は、
オペレーティングシステム1に依存せず、しかもプログ
ラムの実行に十分な情報を持たせるため、どのようなオ
ペレーティングシステム間のインタフェースをとる場合
でも同様に使用できる。
【0049】仮想データ部内12の情報の更新もシステ
ムコール解析部11が行う。すなわち、図4に示すシス
テムコール解析データに従って、仮想データ部12内の
情報を追加・修正する。さらに、この追加・修正したデ
ータによって他のデータと矛盾が生じないようにチェッ
クし修正する。
【0050】図6および図7は、上述したシステムコー
ル解析部11の処理の流れをフローチャートで示したも
のである。図6および図7に示すフローチャートにおい
て、systemcall[i][j]は、図3に示した2次元配列デー
タであるシステムコール表のi行j列のデータを示す。
【0051】例えば、systemcall[2][0]は、図3に示し
たシステムコール表の2行0列のデータ、すなわち、シ
ステムコール名“chuid ”を示し、systemcall[2][3]
は、図3に示したシステムコール表の2行3列のデー
タ、すなわち、第1引数の意味「ユーザ識別子」を示
す。
【0052】また、“code”は発行されたシステムコー
ルのシステムコール名を示し、DATA[k] は、図4に示し
たシステムコール解析データの要素番号kのデータを示
す。例えば、DATA[0] は、図4に示したシステムコール
解析データの要素番号0のデータ、すなわち「タスクの
生成」を示し、DATA[5] は、図4に示したシステムコー
ル解析データの要素番号5のデータ、すなわち第2引数
“taskid”を示す。
【0053】図6および図7に示すフローチャートにお
いて、まず、iを“0”にクリアし、“code”に発行さ
れたシステムコールのシステムコール名を設定する(ス
テップ201)。ここで、発行されたシステムコールが
式(1)に示すものであると、“code”としてはシステ
ムコール名“cretsk”が設定される。
【0054】次の、ステップ202からステップ201
までのループ(図6で(a)で示される)においては、
アプリケーションプログラムの中で発行されたシステム
コールを図3に示したシステムコール表から検索する処
理を行う。すなわち、まず、図3に示したシステムコー
ル表の第0列第0行のデータsystemcall[0][0]と“0”
とを比較する(ステップ202)。
【0055】ここで、systemcall[0][0]が“0”でない
と、次に、このデータsystemcall[0][0]と“cretsk”が
設定された“code”とを比較する(ステップ203)。
ここで、このデータsystemcall[0][0]が“cretsk”と一
致しないと、iをiに“1”を加算した“i+1”とし
(ステップ204)、ステップ202に戻り、ステップ
202および203の処理をおこなう。この処理はステ
ップ203でデータsystemcall[i][0]が“cretsk”と一
致するまで繰り返される。
【0056】ステップ203でデータsystemcall[i][0]
が“cretsk”と一致すると、アプリケーションプログラ
ムの中で発行されたシステムコールが図3に示したシス
テムコール表から検索されたとしてステップ205に移
行する。なお上記処理において、ステップ202でデー
タsystemcall[i][0]が“0”と一致すると、検索失敗と
して所定のエラー処理を行う。
【0057】ステップ205、すなわち、図6で(b)
で示される処理においては、図6の(a)で示される処
理で図3に示されるシステムコール表から検索されたシ
ステムコールの機能とシステムコール名を、図4に示す
システムコール解析データの最初に格納する処理を行
う。
【0058】すなわち、図3に示されるシステムコール
表から検索されたシステムコールの機能を示すデータsy
stemcall[i][1]をDATA[0] とすることで、図3に示され
るシステムコール表のデータsystemcall[i][1]を図4に
示されるシステムコール解析データの要素番号0に書き
込み、“code”をDATA[1] とすることで、“code”を図
4に示されるシステムコール解析データの要素番号1に
書き込む。この場合、“code”としては“cretsk”が設
定されているので、図4に示されるシステムコール解析
データの要素番号0には図3に示されるシステムコール
表のデータsystemcall[n][1]である「タスクの生成」が
図4に示されるシステムコール解析データの要素番号0
に書き込まれ、図4に示されるシステムコール解析デー
タの要素番号1にはシステムコール名“cretsk”が書き
込まれる。
【0059】ステップ205によるシステムコールの機
能とシステムコール名の格納処理が終了すると、jを1
に設定し(ステップ206)、ステップ207に移行す
る。次のステップ207からステップ209までのルー
プ(図6で(c)で示される)においては、検索された
システムコールに伴う引数の意味と引数を、図4に示す
システムコール解析データの要素番号2以降に格納する
処理を実行する。
【0060】まず、図3に示されるシステムコール表の
データsystemcall[i][1+1]をDATA[2*1] とすることで、
データsystemcall[i][1+1]を図4に示されるシステムコ
ール解析データの要素番号2に書き込み、発行されたシ
ステムコールの第1引数をDATA[2*1+1] とすることで、
発行されたシステムコールの第1引数を図4に示される
システムコール解析データの要素番号3に書き込む(ス
テップ207)。続いて、jをjに“1”を加算した
“j+1”とし(ステップ208)、データsystemcall
[i][j]が“0”と一致するかを調べ(ステップ20
9)、一致しないとステップ207に戻り、データsyst
emcall[i][j+1]をDATA[2*j] とすることで、データsyst
emcall[i][j+1]を図4に示されるシステムコール解析デ
ータの要素番号2×jに書き込み、発行されたシステム
コールの第j引数をDATA[2*j+1] とすることで、発行さ
れたシステムコールの第j引数を図4に示されるシステ
ムコール解析データの要素番号2×j+1に書き込む。
この処理は、ステップ209でデータsystemcall[i][j]
が“0”と一致するまで繰り返される。
【0061】ここで、式(1)に示したシステムコール
が発行された場合は、まず、図4に示されるシステムコ
ール解析データの要素番号2に、図3に示されるシステ
ムコール表のデータsystemcall[n][2]、すなわち、第1
引数の意味「タスクファイル名」が書き込まれ、要素番
号3は、第1引数因数“filename”が書き込まれ、要素
番号4に、図3に示されるシステムコール表のデータsy
stemcall[n][3]、すなわち、第2引数の意味「タスク識
別子」が書き込まれ、要素番号5に、第2引数“taski
d”が書き込まれ、要素番号6に、図3に示されるシス
テムコール表のデータsystemcall[n][4]、すなわち、第
3引数の意味「タスク優先度」が書き込まれ、要素番号
7に、第3引数“priority”が書き込まれる。また、要
素番号7には、終了コードである“0”が書き込まれ
る。
【0062】次の、ステップ210からステップ217
までの処理(図7で(d)で示される)においては、DA
TA[0] で示されるシステムコールの機能に対応した処理
が実行される。なお、図7においては、DATA[0] が「タ
スクの生成」である場合の詳細処理が示されている。
【0063】すなわち、システムコール名“cretsk”の
システムコールにより、これがオペレーティングシステ
ム1上で実行されたとして、タスクDATA[5] を“tid ”
に設定し(ステップ211)、タスクtid 情報を作成し
(ステップ212)、図5(a)に示したタスク情報
に、新たに生成されるタスクの仮想情報を書き加える。
また、その他のタスクの状態をチェックし(ステップ2
13)、DATA[7] で示される優先度が最も高いかを調べ
(ステップ214)、もし今作成したタスクの優先順位
が他のタスクよりも高かったら(ステップ215)、他
のタスクを待ちにしてタスクtid を実行状態にし(ステ
ップ216)、リターンする。ただし、今作成したタス
クの優先順位が他のタスクよりも低い場合はタスクtid
を待ち状態にし(ステップ217)、リターンする。
【0064】次に、制御部10は、システムコール変換
部13に制御を渡す。システムコール変換部13では、
システムコール解析部11によって作成された図4のシ
ステムコール解析データをもとに、オペレーティングシ
ステム1上のシステムコールをオペレーティングシステ
ム2上の対応する処理に変換する。
【0065】この際、オペレーティングシステム1とオ
ペレーティングシステム2とで対応するシステムコール
があれば、単にそのシステムコールに置き換えるだけで
よいが、対応するシステムコールがない場合、オペレー
ティングシステム1のシステムコールをオペレーティン
グシステム2上の処理ルーチンで置き換えなくてはなら
ない。
【0066】この変換は、システムコール変換部13に
あるシステムコール変換表を参照して行う。このシステ
ムコール変換表は、図8で示されるように、機能概要に
対応するオペレーションティングシステム2における処
理の流れが記述されている。この際に、オペレーティン
グシステム1のシステムコールをオペレーティングシス
テム2の対応する処理に変換し実行しただけでは、オペ
レーティングシステム1上とオペレーティングシステム
2上とで結果が異なってしまう場合がある。たとえば、
今作成されたばかりのタスクCの優先度が5であると
し、現在実行されているタスクA,Bの優先度が10で
あるとする。ここで、優先度は数字の小さい方が高い優
先度であるとする。
【0067】この場合、オペレーティングシステム1は
イベント・ドリブン方式であり、オペレーティングシス
テム2はタイムスライス方式であり、オペレーティング
システム2は、ユーザプログラムの中でタスクの優先度
を変更するための手段が与えられていないとすると、こ
のような場合ではタスクスイッチングの様子は、オペレ
ーティングシステム1では図9に示すようになり、オペ
レーティングシステム2では図10に示すようになる。
【0068】すなわち、タスクスイッチング方式の違い
から、タスクCの実行順序が変わってしまい、実行結果
にも違いが生じてしまう可能性がある。このことはシス
テムコールの変換だけであると、プログラマの意図通り
にプログラムを動作させることに対して不十分であるこ
とを示している。
【0069】したがってシステムコール変換部13は、
前述した仮想データ部12内のデータをもとに、オペレ
ーティングシステム1の機能をシミュレートしながらシ
ステムコールの実行を行うことによって、この問題を回
避する。
【0070】このシミュレートの手順は、図8に示した
システムコール変換表でポインタで指しているコード部
に書かれている。
【0071】前述の例において、システムコール変換部
13は、システムコールの変換の他にタスクA,Bをス
リープ状態にし、タスクCを優先的に実行させる。この
場合、どのタスクを優先的に実行させ、どのタスクをス
リープさせるかは、オペレーティングシステム1の内部
情報を保持している仮想データ部12を参照することに
よって決定できる。
【0072】また、オペレーティングシステム2上のプ
ログラムの実行に必要な情報と、仮想データとは図11
に示すような対応表、すなわちタスク対応表、メモリ対
応表、ファイル対応表により対応づけられる。この例に
おいては、奇数番目の配列要素が仮想データ内のデー
タ、偶数番目の配列要素がオペレーティングシステム2
上のデータとなっている。この図11に示す対応表は、
オペレーティングシステム2上でオペレーティングシス
テム1のシステムコールに対応する処理が行われたと
き、新たな対応が増えたか、あるいは対応に変化が生じ
たかした場合に書き換えられる。
【0073】したがって、常に仮想データ部とオペレー
ティングシステム2との間の整合性は保たれることにな
る。
【0074】図12は、上記システムコール変換部13
の処理を流れをフローチャートで示したものである。
【0075】図12に示すフローチャートおいて、tran
s[i][j] (j=0または1)は、図8に示したシステム
コール変換表の左側の表のi行j列のデータを示してい
る。例えば、trans[1][0] は、システム機能概要「異常
終了」を示し、trans[2][1]は、システム機能概要「タ
スク番号の変更」に対応する「ポインタ」、すなわち、
図8に示したシステムコール変換表の右側の表のオペレ
ーティング2用コードの対応するコード部分の先頭アド
レスを表わす情報を示す。また、data[k] は、図4に示
したシステムコール解析データの要素番号kのデータを
示す。
【0076】図12に示すフローチャートは、システム
コール変換部13の処理のメインルーチンを示すもの
で、まず、iを“0”にクリアする(ステップ30
1)。
【0077】次の、ステップ302からステップ303
までのループにおいては、図8に示したシステムコール
変換表からシステムコール機能を検索する処理を行う。
すなわち、まず、iをiに“1”を加算した“i+1”
とし(ステップ302)、データtrans[1][0] がdata
[0] に一致するかを調べる(ステップ303)。ここ
で、データtrans[1][0] がdata[0] に一致しない場合は
ステップ302に戻り、iをiに“1”を加算した“i
+1”とし(ステップ302)、データtrans[i][0] が
data[0] に一致するかを調べる(ステップ303)。こ
の処理は、ステップ302でデータtrans[i][0] がdata
[0] に一致するまで繰り返される。
【0078】ここで、data[0] が「タスクの生成」であ
るとすると、図8に示したシステムコール変換表のシス
テム機能概要の「タスクの生成」の箇所で、データtran
s[i][0] がdata[0] に一致する。
【0079】ステップ303で、データtrans[i][0] が
data[0] に一致すると、このデータtrans[i][0] に対応
するデータtrans[i][1] 、すなわち、データtrans[i]
[0] に対応する「ポインタ」情報を「先頭アドレス」と
設定する(ステップ304)。そして、図8に示したシ
ステムコール変換表の右側の表のオペレーティング2用
コードのこの先頭アドレスから始まるルーチン(sub1)
を実行する(ステップ305)。
【0080】ステップ305において実行されるルーチ
ン(sub1) の一例が図13にサブルーチンとして示され
る。
【0081】図13に示すサブルーチン(sub1) は、タ
スクの生成に関する処理を行っている。
【0082】図13において、まず、図4に示すシステ
ムコール解析データのdata[5] 、すなわち「タスク識別
子」を表わす“taskid”を“tskid0”と設定する(ステ
ップ401)。続いて、仮想データ部12より、現在実
行中のタスク番号(タスク識別子)を探し、これを“ts
kid1”と設定する(ステップ402)。そして、“tski
d0”と“tskid1”とが一致するか否かを調べ(ステップ
403)、一致すると、オペレーティングシステム2上
の現在実行中のタスクを待ち状態にし(ステップ40
4)、システムコールにより指示されたタスクを生成し
(ステップ405)、図12に示すメインルーチンにリ
ターンする。なお、ステップ403で、“tskid0”と
“tskid1”とが一致しない場合は、そのまま図12に示
すメインルーチンにリターンする。
【0083】図12に示すメインルーチンにおいは、次
に、このサブルーチン(sub1) の実行により、図11に
示す対応表に変化があるかを調べ(ステップ306)、
変化があると対応表の変更を行う(ステップ307)。
【0084】このようにして、システムコールのシミュ
レートを行うことが可能になる。
【0085】なお、シミュレートが終了した後、オペレ
ーティングシステムの機構もまた、シミュレートしなけ
ればならない場合がある。例えば、前述の例では、オペ
レーティングシステム1はスケジューリングがイベント
ドリブン方式であるので、今回生成したタスクもまたイ
ベントドリブン方式でスケジューリングされなければな
らない。この発明によるインタフェース方式の制御は、
制御部10によってなされ、インタフェースを通して生
成されたタスクは、この制御部10によってスケジュー
リングおよびその他の制御を受ける。またオペレーティ
ングシステム1の機構に関する情報は、仮想データ部1
2に記述されており、それを参照することによってスケ
ジューリング方式を決定することができる。すなわち、
この例の場合は、タスクA,B,Cを優先度の高い方か
ら実行していくようなタスク制御を行う。
【0086】このように処理を進めることによって、オ
ペレーティングシステム1上のアプリケーションプログ
ラムがオペレーティングシステム2上で、プログラマの
意図した通りに実行することが可能となる。
【0087】またこの発明によるインタフェース方式に
おいて、オペレーティングシステムに固有なモジュール
は、システムコール解析部とシステムコール変換部だけ
であり、新たなインタフェースを作成する際には、この
二つのモジュールだけを作成すれば良いことになる。
【0088】
【発明の効果】以上説明したように、この発明によれ
ば、従来に比べ、極めて簡易な手順により異種オペレー
ティングシステム間インタフェースの構築が可能とな
り、インタフェース自体もアプリケーションプログラマ
が意図した通りの動作を実現することができ、かつ移植
性、保守性に富むインタフェースを作成することが可能
となる。
【図面の簡単な説明】
【図1】この発明のインタフェース方式の一実施例を示
す構成図。
【図2】図1に示した実施例のインタフェース方式にお
ける全体の処理の流れを示すフローチャート。
【図3】図1に示したシステムコール解析部内部に設け
られるシステムコール表の一例を示す図。
【図4】図1に示したシステムコール解析部によって作
成されるシステムコール解析データの一例を示す図。
【図5】図1に示した仮想データ部が管理する各種情報
の一例を示す図。
【図6】図1に示したシステムコール解析部の処理の流
れを示すフローチャート。
【図7】図1に示したシステムコール解析部の処理の流
れを示すフローチャート。
【図8】図1に示したシステムコール変換部内部に設け
られるシステムコール変換表の一例を示す図。
【図9】図1に示したオペレーティングシステム1上に
おける、優先度の同じタスクA,Bと、優先度の高いタ
スクCとのタスクスイッチングの様子を示す図。
【図10】図1に示したオペレーティングシステム2上
における、優先度の同じタスクA,Bと、優先度の高い
タスクCとのタスクスィッチングの様子を示す図。
【図11】図1に示したシステムコール変換部内部の各
種対応表の一例を示す図。
【図12】図1に示したシステムコール変換部の処理の
流れを示すフローチャート。
【図13】図11に示したサブルーチンの処理の流れを
示すフローチャート。
【符号の説明】
1、2 オペレーティングシステム 10 制御部 11 システムコール解析部 12 仮想データ部 13 システムコール変換部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 第1のオペレーティングシステムに対す
    るシステムコールを含むアプリケーションプログラム
    を、前記第1のオペレーティングシステムとは種類の異
    なる第2のオペレーティングシステムにて実施するクロ
    ス環境でシミュレ―トするためのインタフェース方式に
    おいて、 前記第1のオペレーティングシステムのシステムコール
    を解析し、該システムコ―ルのシミュレーションに必要
    なデ―タを取り出すシステムコール解析部と、 前記第1のオペレーティングシステム内において前記ア
    プリケーションプログラムを実行させた場合の仮想の各
    種情報を保持する仮想データ部と、 前記仮想データ部が持っているデータを参照し、前記第
    2のオペレーティングシステムにおいて同様な内部状況
    を生成するように処理を行うシステムコール変換部と、 前記システムコール解析部、前記仮想データ部、前記シ
    ステムコール変換部を管理し、それぞれの制御を行う制
    御部とを具備したことを特徴とするインタフェース方
    式。
JP24207292A 1992-09-10 1992-09-10 インタフェース方式 Pending JPH0695891A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24207292A JPH0695891A (ja) 1992-09-10 1992-09-10 インタフェース方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24207292A JPH0695891A (ja) 1992-09-10 1992-09-10 インタフェース方式

Publications (1)

Publication Number Publication Date
JPH0695891A true JPH0695891A (ja) 1994-04-08

Family

ID=17083869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24207292A Pending JPH0695891A (ja) 1992-09-10 1992-09-10 インタフェース方式

Country Status (1)

Country Link
JP (1) JPH0695891A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010506251A (ja) * 2006-10-02 2010-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムコード変換に関してプロセスファイルシステムを管理する方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010506251A (ja) * 2006-10-02 2010-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムコード変換に関してプロセスファイルシステムを管理する方法及び装置
US8286144B2 (en) 2006-10-02 2012-10-09 International Business Machines Corporation Administering a process filesystem with respect to program code conversion

Similar Documents

Publication Publication Date Title
US7913224B2 (en) Device for the automated generation of program code
JP3268338B2 (ja) 計算機システム
CN112579267A (zh) 一种去中心化大数据作业流调度方法及装置
Yu et al. RTOS scheduling in transaction level models
Minder et al. How to translate a book within an hour: towards general purpose programmable human computers with crowdlang
CN111475137A (zh) 一种软件开发需求预测的方法、系统及设备
US20130263143A1 (en) Information processing method and system
JPH01298435A (ja) 自動プログラミング装置
JPH0695891A (ja) インタフェース方式
CN113742125A (zh) 一种轻量级高通量计算模式及其容错方法
Stroulia et al. Reverse engineering interaction plans for legacy interface migration
CN100440226C (zh) 一种芯片算法仿真平台和方法
Tanaka et al. Low latency and resource-aware program composition for large-scale data analysis
CN109117124A (zh) 一种多返回值的函数编程方法
TWI728641B (zh) 兩層式多執行緒之資料庫移轉及比對系統及方法
CN111061460B (zh) 基于嵌入式系统的通用软件开发平台
EP0664509A1 (en) Method and apparatus for passing control from a first process to a second process
TWI236626B (en) System and method for integrating programs of targeted system to save computer system resources
Bass et al. PRESTIGE: a CASE workbench for the JSD implementor
JP2000231478A (ja) ソフトウェアの自動生成装置および方法、記録媒体
JP2004334767A (ja) 情報処理方法、情報処理装置及び情報処理プログラム
Tang et al. Research on a Universal and Scalable Simulation Software Integration Framework
Sanches et al. ReGS: user-level reliability in a grid environment
CN114064643A (zh) 一种基于Oracle的任务式的数据转换系统
JPH01259424A (ja) ソフトウエア自動生成装置