(57)【特許請求の範囲】
【請求項１】
オペレーティングシステム配下のユーザプログラムが、該オペレーティングシステムの管理するメモリ領域からメモリを獲得し、該ユーザプログラムが獲得したメモリを付けて他のユーザプログラムを起動し、該他のユーザプログラムの処理終了により前記メモリを解放する処理を含む過程に於いて、
前記ユーザプログラムが前記オペレーティングシステムに対し、前記メモリを用いて何らかのインタフェースを行うごとに、該メモリの使用状態を、該メモリの実アドレスと、メモリ獲得、ユーザプログラム起動、メモリ開放を含むインタフェース要因と、該メモリを使用したユーザプログラム番号として、保存領域に用意された該メモリのための保存場所に、上書き保存する過程を含む
ことを特徴とするメモリ使用状態の保存方法。
【請求項２】
前記メモリの実アドレスを、前記保存領域のアドレスに変換して、該アドレスに、前記メモリ獲得、ユーザプログラム起動、メモリ開放を含むインタフェース要因と、該メモリを使用したユーザプログラム番号とを保存する過程を含むことを特徴とする請求項１記載のメモリ使用状態の保存方法。
【請求項３】
前記メモリの実アドレスと前記保存領域のアドレスとを、
保存領域のアドレス＝保存領域の先頭アドレス＋｛（メモリの実アドレス−メモリプールの先頭アドレス）｝×Ｌ２
Ｌ１：メモリ領域に於けるメモリ長
Ｌ２：保存領域に於けるメモリ長
に従って変換して、前記保存領域のアドレスに、前記メモリ獲得、ユーザプログラム起動、メモリ開放を含むインタフェース要因と、該メモリを使用したユーザプログラム番号とを保存する過程を含むことを特徴とする請求項２記載のメモリ使用状態の保存方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オペレーティングシステム（Operation System）（以下ＯＳと略す）のメモリ管理機能に関し、特に搭載型リアルタイムＯＳにおいて、ユーザプログラムにおけるメモリの使用状態を保存する方法に関するものである。
【０００２】
搭載型リアルタイムＯＳは、その機能の一つとして、ユーザプログラムとのインタフェースにおいて、ユーザプログラムによるメモリ獲得およびメモリ解放、ユーザプログラム起動によるメモリ受け渡し等のメモリの実行制御を行なう。
【０００３】
この場合における、ユーザプログラムによるメモリ使用状態の保存方法は、ユーザプログラムのメモリ解放忘れが生じた場合の処置に費やす時間を短縮できるものであることが要求されている。
【０００４】
【従来の技術】
リアルタイムＯＳには、ユーザプログラムの実行制御を管理する機能と、マン−マシンインタフェースに対応する割り込み実行制御を管理する機能と、ユーザプログラムの要求に合わせてメモリの実行制御を管理する機能等がある。これらの機能は、複数のユーザプログラムを効率よく実行させるために、必要不可欠なものである。
【０００５】
これらの機能中、メモリの実行制御を管理する機能には、ユーザプログラムがタスクの実行中に作業領域として要求するメモリの割り当て管理が含まれている。この場合に割り当てられたメモリは、複数のユーザプログラム間におけるインタフェースにおいて使用されるものである。
【０００６】
図８は、リアルタイムＯＳとユーザプログラムとの関係を説明するものであって、図中、１はリアルタイムＯＳを示している。２はユーザプログラム群を示し、ユーザプログラム２1,２2,…，２m からなっている。
【０００７】
リアルタイムＯＳ１は、タスク管理，割り込み管理，メモリ管理の各管理機能を有している。タスク管理は、ユーザプログラム群２の各ユーザプログラムが実行するタスクのスイッチングを行なうものである。割り込み管理は、各ユーザプログラムに対する入出力の切替えを行なうものである。メモリ管理は、各ユーザプログラムに対するメモリの貸し出しと回収を行なうものである。
【０００８】
また、リアルタイムＯＳを利用して作成される複数のユーザプログラムは、それぞれにリアルタイムＯＳとのインタフェースを介して成立している。リアルタイムＯＳとユーザプログラム間のインタフェースには、メモリ獲得やメモリ解放、およびユーザプログラムの起動等がある。これらのインタフェースには、通常、メモリが使用されている。
【０００９】
このようなシステムにおいて、ユーザプログラムでメモリ解放忘れが発生した場合には、そのユーザプログラムを通過するたびにメモリ資源が蓄えられるため、リアルタイムＯＳ自身で管理するメモリが不足して、他のユーザプログラムがメモリを使用できず、そのため、システムが停止してしまう恐れがある。
【００１０】
図９は、リアルタイムＯＳとユーザプログラム間のインタフェースを説明するものであって、(1) は正常系を示し、(2) は異常系を示している。
【００１１】
(1) の場合は、ユーザプログラム２1 からのメモリ獲得要求に対して、リアルタイムＯＳ１がメモリ１を貸し出し、これによってユーザプログラム２1 はメモリ１を付けてユーザプログラム２2 を起動する。ユーザプログラム２2 はさらにメモリ１を付けてユーザプログラム２3 を起動し、最後にユーザプログラム２3 はリアルタイムＯＳ１に対してメモリ１を解放することによって、正常なメモリの貸し出し／回収が行なわれる。
【００１２】
(2) の場合は、ユーザプログラム２1 からのメモリ獲得要求に対して、リアルタイムＯＳ１がメモリ１を貸し出し、これによってユーザプログラム２1 はメモリ１を付けてユーザプログラム２2 を起動する。この際、ユーザプログラム２2 は、新たにリアルタイムＯＳ１に対してメモリ獲得要求を行い、これに対してリアルタイムＯＳ１はメモリ２を貸し出す。ユーザプログラム２2 はメモリ１を付けてユーザプログラム２3 を起動し、最後にユーザプログラム２3 はリアルタイムＯＳ１に対してメモリ１を解放する。この場合は、ユーザプログラム２が獲得したメモリ２は、回収されることなく、ユーザプログラム２2 に残ってしまう。このようなメモリ解放忘れは、ユーザプログラムのバグ等によって生じるものである。
【００１３】
そこで、リアルタイムＯＳ１の持つデバッグ機能によって、メモリ解放忘れを起こしたユーザプログラムを解析する方法がとられている。このデバッグ機能では、リアルタイムＯＳとユーザプログラム間のインタフェースの情報や、ユーザプログラムのスイッチング情報をトレースできるようになっている。
【００１４】
従来は、このような場合のトレース機能として、リアルタイムＯＳの一定のメモリ領域をサイクリックに使用して、トレース情報を保存するようにしていた。
【００１５】
図１０は、従来のトレース機能を説明するものであって、リアルタイムＯＳの一定のメモリ領域をサイクリックに使用して、トレース情報を保存する方法を示している。
【００１６】
図１０において、１１はリアルタイムＯＳの有する固定のメモリ領域であって、この領域に、リアルタイムＯＳとユーザプログラム間のインタフェース情報やスイッチングされたユーザプログラムの番号（アクティブ番号）からなるトレース情報１，２，…，ｎが、サイクリックに書き込まれて保存される。この場合、メモリ領域は固定なため、ｎ個以上のトレース情報が発生した場合には、以前のトレース情報は、順次、新しいトレース情報によって書き替えられてゆくことになる。
【００１７】
【発明が解決しようとする課題】
従来、リアルタイムＯＳとユーザプログラム間のインタフェースや、ユーザプログラムのスイッチングのトレース機能は、メモリの固定領域をサイクリックに使用して、トレース情報を保存することによって行なわれている。
【００１８】
このようなトレース機能は、高負荷な動作環境下で使用される場合には、トレース情報を一定の領域にサイクリックに保存するため、保存できる情報量には限りがあり、必要な情報がすでに書き替えられている等の事情から、問題を解決できるだけの情報が得られない場合がある。そのため、メモリの解放忘れがどこで発生しているのかを解析するために、膨大な時間を費やすこととなって、非常に効率が悪いという問題があった。
【００１９】
本発明は、このような従来技術の課題を解決しようとするものであって、リアルタイムＯＳのメモリ管理機能において、ユーザプログラムのメモリ解放忘れの解析を短時間で行なうことが可能な、メモリ使用状態の保存方法を提供することを目的としている。
【００２０】
【課題を解決するための手段】
本発明のメモリ使用状態の保存方法は、オペレーティングシステム配下のユーザプログラムが、このオペレーティングシステムの管理するメモリ領域からメモリを獲得し、ユーザプログラムが獲得したメモリを付けて他のユーザプログラムを起動し、他のユーザプログラムの処理終了によりメモリを解放する処理を含む過程に於いて、メモリの獲得及び解放及びメモリを用いたユーザプログラム間の通信を含むメモリの使用状態を、メモリの実アドレスと、インタフェース要因と、メモリを使用したユーザプログラム番号として保存領域に保存する過程を含むものである。
【００２１】
すなわち、ユーザプログラムがメモリの獲得や解放を行なうときや、獲得したメモリをインタフェースとして他のユーザプログラムを起動したり、またはメモリの内容をメールとしてユーザプログラム間で送受信するときに、メモリの使用状態を保存する。
【００２２】
この場合、保存する内容は、メモリの実アドレス，インタフェース要因およびユーザプログラム番号の３種類の要因であって、これからメモリの使用状態が確定できるものである。
【００２３】
図１は、本発明におけるメモリ使用状態の保存情報を示したものであって、１メモリの保存情報は、▲１▼実際のメモリアドレス，▲２▼メモリ使用中のインタフェース，▲３▼メモリ使用中のユーザプログラム番号からなり、これらをリアルタイムＯＳが管理するメモリの保存領域に格納して保存する。
【００２４】
▲１▼実際のメモリアドレスは、リアルタイムＯＳが管理しているメモリのアドレスを指し、このアドレスを４バイトの情報として保存領域に保存する。▲２▼メモリ使用中のインタフェースは、リアルタイムＯＳとユーザプログラム間のインタフェース要因を指し、これを１バイトの情報として保存する。▲３▼メモリ使用中のユーザプログラム番号は、インタフェースにおいてメモリを使用しているユーザプログラムの番号を指し、これを１バイトの情報として保存する。
【００２５】
このような情報を保存する理由としては、第一にメモリの実アドレスは、メモリの保存領域と対比させるために必要になる。第二にインタフェース要因は、メモリが最終的にどのような条件で使用されていたかを判定するために必要である。第三にユーザプログラム番号は、メモリを保持しているユーザプログラムを限定するために必要である。これらによって、どのメモリをどのユーザプログラムが解放しないでいるか、また、どのようなインタフェース要因でメモリを使用しているかをユーザに知らせることができ、これによってユーザは、なぜそのような事態が発生したのかを解析するのが容易になる。
【００２６】
この場合、保存領域に、メモリの実アドレスと、インタフェース要因と、ユーザプログラム番号との３種類の要因を保存するものであるから、保存領域の容量として前述の場合は６バイトを必要とすることになる。
【００２７】
そこで、保存領域のメモリ容量を減少させることが必要になるが、そのためには、ユーザプログラムで使用するメモリの実アドレスを、メモリの保存領域のアドレスに変換してメモリ情報を確保することによって、１メモリに必要な保存領域の容量を２バイトに縮小することができる。
【００２８】
図２は、本発明によるメモリ保存領域の容量を示したものであって、図示のように、メモリの実アドレスが変換されたメモリ保存領域のアドレスに、１メモリの保存情報として、▲２▼メモリ使用中のインタフェースと、▲３▼メモリ使用中のユーザプログラム番号とを保存する。従って、メモリ保存領域の容量としては、２バイトで足ることになる。
【００２９】
この場合における、メモリの実アドレスの、メモリの保存領域のアドレスへの変換は、次式の演算によって行なわれる。
0003706982.tif 000002
【００３０】
ここで、メモリ保存領域の格納アドレスは、メモリ使用状態を保存するためにメモリ１つずつに対応している。メモリ保存領域の先頭アドレスは、メモリの集合体（メモリプール）とメモリの保存領域とを対等に扱うために必要となる。さらに、メモリの実アドレスとメモリプールの先頭アドレスおよびメモリ長は、メモリ保存領域の先頭アドレスから何番目のメモリと対比しているかを計算するために必要となる。
【００３１】
図３は、メモリプールとメモリ保存領域との対比を例示したものであって、メモリプールの1000番地から6000番地までに、メモリ１番目からメモリ１００番目までの１００個のメモリ長５０バイトの情報があった場合に、メモリ保存領域には、500000番地から500200番地までに、メモリ１の状態からメモリ１００の状態までの、１００個のメモリ長２バイトの情報が格納されることが示されている。
【００３２】
このようにすることによって、メモリの実アドレスを含んだ保存領域の容量と比較して、３分の１の領域を確保するだけでよいので、必要なメモリの容量を大幅に縮小することができる。なお、メモリの保存領域からメモリの実アドレスを求める場合は、上記の式(1) を用いて逆に演算することによって求めることが可能である。
【００３３】
本発明の方法でメモリの使用状態を管理することによって、ユーザは、メモリの使用状況（メモリ獲得，メモリ解放，ユーザプログラム起動）の情報をモニタを介して把握することが可能となり、高負荷なユーザプログラムのメモリ使用時のメモリ解放忘れを短時間に検出することが可能となるので、メモリ解放忘れに対するデバッグ効率を大幅に向上させることが可能となる。
【００３４】
さらに本発明によれば、メモリ使用状態の保存領域を圧縮することができるので、メモリ容量の少ないシステムでも適用可能である。なお、本発明の場合、メモリ使用状態を管理するロジックは、デバッグが必要なときのみ割り当てるようにすることができるので、リアルタイムＯＳの処理性能を低下させることなく実現可能である。
【００３５】
以下、本発明の課題を解決するための具体的手段とその作用とを記述する。
【００３６】
(1) オペレーティングシステム（以下ＯＳという）の配下のユーザプログラムが、ＯＳの管理するメモリ領域からメモリを獲得し、実行結果に応じてメモリを操作して、このメモリを付して他ユーザプログラムを起動するとともに、このメモリを用いて処理を終了したユーザプログラムがＯＳの管理するメモリ領域にメモリを解放するシステムにおいて、ユーザプログラムとＯＳ間のインタフェースの実行ごとに、▲１▼実際のメモリアドレスと、▲２▼使用中のインタフェースと、▲３▼使用中のユーザプログラム番号とを保存領域に保存することによって、メモリごとに、ユーザプログラムにおけるメモリの使用状態を保存する。
【００３７】
このようにすることによって、ユーザプログラムがＯＳとのインタフェースでメモリを使用したときを契機に、メモリの使用状態を確定できる情報を確保することができるので、ユーザプログラムのメモリ解放忘れが生じた場合の処置に費やす時間を短縮できるようになる。
【００３８】
(2) (1) の場合にメモリの実アドレスを前記保存領域のアドレスに変換して、このアドレスに使用中のインタフェースと、使用中のユーザプログラム番号とを保存する。
【００３９】
このようにすることによって、メモリの保存領域として必要なメモリ容量を大幅に縮小することができる。
【００４０】
(3) (2) の場合に、メモリの実アドレスと保存領域のアドレスとの変換を次式保存領域のメモリ格納アドレス＝保存領域の先頭アドレス
＋｛（メモリの実アドレス−メモリプールの先頭アドレス）／Ｌ1 ｝×Ｌ2 
Ｌ1 ：メモリ領域におけるメモリ長
Ｌ2 ：保存領域におけるメモリ長
によって行なうことができる。
【００４１】
(4) (1) 〜(3) の場合に、メモリ使用状態を保存する処理を行なうロジックを、ユーザプログラムにおけるメモリ解放忘れの処置が必要なときのみ有効にする。
【００４２】
このようにすることによって、ＯＳの処理能力を低下させることなく、メモリ解放忘れの処置を行なうことができる。
【００４３】
【発明の実施の形態】
以下、本発明の一実施形態を説明する。図４は、本発明によるメモリ使用状態の保存動作（正常系）を例示したものであって、メモリ保存領域への動作を加えたメモリ獲得からメモリ解放までの動作を示し、メモリの解放忘れがない場合を示している。また、図５は、図４の場合のメモリごとのメモリ管理情報（メモリ使用状態）の保存例を示し、(1) はメモリ獲得時のメモリ保存領域への操作、(2) は他ユーザプログラム起動時の保存領域への操作、(3) は他ユーザプログラム起動時の保存領域への操作、(4) はメモリ解放時のメモリ保存領域への操作をそれぞれ示している。
【００４４】
ユーザプログラムＵＰ１は、リアルタイムＯＳのメモリ管理領域に対して、メモリ獲得を要求する。これに対してリアルタイムＯＳは、メモリ管理領域からメモリ１を、メモリアドレスとメモリ種別との諸情報を指定してユーザプログラムＵＰ１に貸し出すが、その直前に、メモリアドレスとメモリ種別とからメモリ保存領域アドレスを計算して、メモリ保存領域に、図５(1) に示すように、上位バイトにメモリ獲得要求を示す値を書き込み、下位バイトにメモリを獲得したユーザプログラムＵＰ１の番号を書き込む。
【００４５】
ユーザプログラムＵＰ１が、ユーザプログラムＵＰ１で操作されたメモリ１を付してユーザプログラムＵＰ２を起動するために、メモリアドレス，起動先ユーザプログラム番号（ＵＰ２）を指定して、メモリ１渡しのユーザプログラムＵＰ２起動要求をリアルタイムＯＳに対して行なう。
【００４６】
要求を受けたリアルタイムＯＳは、ユーザプログラムＵＰ１から渡されたメモリアドレスとメモリ種別とからメモリ保存領域アドレスを算出して、図５(2) に示すように、上位バイトにユーザプログラム起動を示す値を書き込み、下位バイトに起動先ユーザプログラムＵＰ２の番号を書き込む。そして起動要因とメモリ１（のアドレス）とをユーザプログラムＵＰ２に渡して、ユーザプログラムＵＰ２を起動する。
【００４７】
さらに、ユーザプログラムＵＰ２が、ユーザプログラムＵＰ２で操作されたメモリ１を付して、ユーザプログラムＵＰ３を起動するため、メモリアドレス，起動先ユーザプログラム番号（ＵＰ３）を指定して、メモリ１渡しのユーザプログラムＵＰ３起動要求をリアルタイムＯＳに対して行なう。
【００４８】
要求を受けたリアルタイムＯＳは、ユーザプログラムＵＰ２から渡されたメモリアドレスとメモリ種別とからメモリ保存領域アドレスを算出して、図５(3) に示すように、上位バイトにユーザプログラム起動を示す値を書き込み、下位バイトに起動先ユーザプログラムＵＰ３の番号を書き込む。そして起動要因とメモリ１（のアドレス）とをユーザプログラムＵＰ３に渡して、ユーザプログラムＵＰ３を起動する。
【００４９】
ユーザプログラムＵＰ３では、処理を終了する前に、メモリアドレスを指定してメモリ解放（ＢＦＲＥ）をリアルタイムＯＳに要求する。要求を受けたリアルタイムＯＳは、メモリアドレスとメモリ種別とからメモリ保存領域のアドレスを算出して、図５(4) に示すように、上位バイトにメモリ解放を示す値を書き込み、下位バイトにメモリ解放を要求したユーザプログラムＵＰ３の番号を書き込んで、処理を終了する。
【００５０】
図６は、本発明によるメモリ使用状態の保存動作（異常系）を例示したものであって、メモリ保存領域への動作を加えたメモリ獲得からメモリ解放までの動作を示し、メモリの解放忘れがあった場合を示している。
【００５１】
図６において、図４の場合と同様にして、ユーザプログラムＵＰ１がメモリ獲得を要求し、これによって、リアルタイムＯＳからユーザプログラムＵＰ１に対して、メモリ１のアドレスとメモリ種別とを指定してメモリ１の貸し出しが行なわれ、次にユーザプログラムＵＰ１が、メモリ１のアドレスと起動先ユーザプログラム番号（ＵＰ２）を指定して、メモリ１渡しのユーザプログラムＵＰ２起動要求をリアルタイムＯＳに対して行ない、これに対してリアルタイムＯＳからユーザプログラムＵＰ２に対して、メモリ１のアドレスを指定して起動要求が行なわれたとき、ユーザプログラムＵＰ２はこの起動要求によって動作を開始する。
【００５２】
もしもこのとき、ユーザプログラムＵＰ２が、ユーザプログラムＵＰ１から受け取ったメモリ１を使用せずに、ユーザプログラムＵＰ２自身がメモリ獲得要求を行い、これによってリアルタイムＯＳがメモリ２のアドレスとメモリ種別とを指定してメモリ２の貸し出しを行い、さらにユーザプログラムＵＰ２が、新たに獲得したメモリ２のアドレスと起動先ユーザプログラム番号（ＵＰ３）を指定して、メモリ２渡しのユーザプログラムＵＰ３起動要求をリアルタイムＯＳに対して行ない、これによってリアルタイムＯＳがユーザプログラムＵＰ３に対して起動要求を行ない、ユーザプログラムＵＰ３が処理を終了して、メモリ２のアドレスを指定してリアルタイムＯＳにメモリ解放を要求して、メモリ２が解放されたとする。
【００５３】
このとき、リアルタイムＯＳでは、１つ余分にメモリを貸し出し、このメモリがユーザプログラムＵＰ２に残っていることになる。
【００５４】
図７は、メモリ解放忘れがあったと思われる場合のメモリ保存領域の例を示したものであって、図６の場合に対応している。
【００５５】
図７に示されるように、メモリ１の使用状態は、ユーザプログラム起動によって、ユーザプログラムＵＰ２が使用中の状態になっていることがわかる。またメモリ２の使用状態は、メモリ解放によって、ユーザプログラムＵＰ３が解放済みになっていることがわかる。
【００５６】
正常動作の場合は、メモリは１つだけでこの一連の動作を終了しているはずであるが、２つのメモリを使用している。またメモリ１の使用状態では、まだユーザプログラムＵＰ２がメモリ１を確保しているようにみえる。しかし、本来の動作では、ユーザプログラムＵＰ２がメモリ解放を行なうようになっていないので、他に原因があると思われる。
【００５７】
ユーザプログラムＵＰ３は、処理を終了してメモリを解放しているので、ユーザプログラムＵＰ２がメモリ渡しの起動要求を行なっていることが確実である。従って、本来であれば、ユーザプログラムＵＰ２がユーザプログラムＵＰ１から受け取ったメモリ１によって、ユーザプログラムＵＰ３に対してメモリ渡しの起動要求を行なうはずであったものを、ユーザプログラムＵＰ２が新たにメモリ２を獲得して、ユーザプログラムＵＰ３に対して、新たに獲得したメモリ２を付して起動要求を行なったため、メモリ１がユーザプログラムＵＰ２に残るとともに、ユーザプログラムＵＰ２がメモリ１を解放しなかったことがわかる。
【００５８】
【発明の効果】
以上説明したように、本発明は、オペレーションシステム（ＯＳ）が管理するメモリ領域からユーザプログラムがメモリを獲得し、このメモリを用いて他のユーザプログラムを起動し、ユーザプログラムの処理終了によりメモリを解放する処理を含む過程に於けるメモリの獲得，解放，ユーザプログラム間通信等のメモリの使用状態を、メモリの実アドレスと、獲得，解放，他のユーザプログラムの起動等のインタフェース要因と、このメモリを使用したユーザプログラム番号とを保存領域に格納するもので、メモリ解放忘れが発生した場合に、その発生原因をインタフェース要因とユーザプログラム番号とにより容易に探索することができる利点がある。
【００５９】
又ユーザプログラムが獲得したメモリの実アドレスを、保存領域のアドレスに変換することにより、実アドレスを格納する領域を不要とすることができるから、保存領域に格納するメモリ使用状態の情報を多数保存することができる利点がある。
【図面の簡単な説明】
【図１】本発明におけるメモリ使用状態の保存情報を示す図である。
【図２】本発明によるメモリ保存領域の容量を示す図である。
【図３】メモリプールとメモリ保存領域との対比を例示する図である。
【図４】本発明によるメモリ使用状態の保存動作（正常系）を例示する図である。
【図５】図４の場合のメモリごとのメモリ管理情報の保存例を示す図であって、(1) はメモリ獲得時のメモリ保存領域への操作、(2) は他ユーザプログラム起動時の保存領域への操作、(3) は他ユーザプログラム起動時の保存領域への操作、(4) はメモリ解放時のメモリ保存領域への操作をそれぞれ示す。
【図６】本発明によるメモリ使用状態の保存動作（異常系）を例示する図である。
【図７】メモリ解放忘れがあったと思われる場合のメモリ保存領域の例を示す図である。
【図８】リアルタイムＯＳとユーザプログラムとの関係を説明する図である。
【図９】リアルタイムＯＳとユーザプログラム間のインタフェースを説明する図であって、(1) は正常系を示し、(2) は異常系を示す。
【図１０】従来のトレース機能を説明する図である。
【符号の説明】
１          リアルタイムＯＳ
２1 〜２3   ユーザプログラム
▲１▼          実際のメモリアドレス
▲２▼          メモリ使用中のインタフェース
▲３▼          メモリ使用中のユーザプログラム番号
【図１】
0003706982.tif 000003
【図２】
0003706982.tif 000004
【図３】
0003706982.tif 000005
【図４】
0003706982.tif 000006
【図５】
0003706982.tif 000007
【図６】
0003706982.tif 000008
【図７】
0003706982.tif 000009
【図８】
0003706982.tif 000010
【図９】
0003706982.tif 000011
【図１０】
0003706982.tif 000012