JP2002328811A - 仮想記憶方法 - Google Patents

仮想記憶方法

Info

Publication number
JP2002328811A
JP2002328811A JP2001130734A JP2001130734A JP2002328811A JP 2002328811 A JP2002328811 A JP 2002328811A JP 2001130734 A JP2001130734 A JP 2001130734A JP 2001130734 A JP2001130734 A JP 2001130734A JP 2002328811 A JP2002328811 A JP 2002328811A
Authority
JP
Japan
Prior art keywords
memory
task
block
secondary storage
switching
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
JP2001130734A
Other languages
English (en)
Inventor
Takashi Kadohiro
崇 角廣
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2001130734A priority Critical patent/JP2002328811A/ja
Publication of JP2002328811A publication Critical patent/JP2002328811A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ダイレクトモードで動作するオペレーティン
グシステム上で部分的な仮想記憶を実現する。 【解決手段】 タスクディスパッチャ101のタスクメ
モリ切替手段111は、タスク切り替え時にタスクメモ
リを切り替え、タスク終了手段112は終了させるタス
クのタスクメモリに対応する二次記憶のブロックを解放
し、メモリプール管理102のタスクメモリ確保手段1
13はタスクメモリに該当するメモリプールからメモリ
を確保する場合、二次記憶ブロック使用状況管理103
の二次記憶ブロック確保手段115を用いてタスクメモ
リに二次記憶のブロックを割り当て、タスクメモリ解放
手段114はタスクメモリに該当するメモリプールを開
放する場合、二次記憶ブロック解放手段116を用いて
タスクメモリに割り当てられた二次記憶のブロックを解
放する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、仮想記憶方法に関
し、特に、ダイレクトモードで動作する(仮想記憶を持
たない)オペレーティングシステムに部分的な仮想記憶
を提供する仮想記憶方法に関する。
【0002】
【従来の技術】従来より、組み込み機器は、機器の大き
さやコストの制約から、実装メモリ容量の制限が厳し
い。また、通常、組み込み用のリアルタイム・オペレー
ティングシステムは、性能を重視し、仮想記憶を持たず
にダイレクトモードで動作するようになっている。
【0003】
【発明が解決しようとする課題】しかしながら、近年、
組み込み機器は、性能が重視される一方で、携帯端末に
代表されるように、プログラムのダウンロードなどが可
能となり、大容量のデータ処理を行うアプリケーション
プログラムの実行環境も共存させる必要性が生じてき
た。ところが、従来の場合、組み込み機器用のリアルタ
イム・オペレーティングシステムは、仮想記憶を持たず
にダイレクトモードで動作するため、実装メモリ容量以
上のメモリをアプリケーションプログラムが利用するこ
とは不可能であり、大容量のデータ処理を行うアプリケ
ーションプログラムを実行させることができないという
課題があった。
【0004】本発明はこのような状況に鑑みてなされた
ものであり、ダイレクトモードで動作するオペレーティ
ングシステム上で、実装メモリ容量以上のメモリをアプ
リケーションプログラムが利用することができるように
し、大容量のデータ処理を行うアプリケーションプログ
ラムの実行を可能とするものである。
【0005】
【課題を解決するための手段】請求項1に記載の仮想記
憶方法は、メモリと二次記憶とを備え、ダイレクトモー
ドで動作するオペレーティングシステムによって複数の
タスクの実行が制御される情報処理装置における仮想記
憶方法であって、メモリの少なくとも一部分を、各タス
ク毎に二次記憶にマッピングするマッピングステップ
と、タスクの切り替え時に、切り替え前のタスクが使用
していたメモリの内容を、メモリに対応する二次記憶の
マッピング先に退避する退避ステップと、切り替え後の
タスクが使用するメモリの内容を、メモリに対応する二
次記憶のマッピング先から回復する回復ステップとを備
えることを特徴とする。また、メモリの一部分と二次記
憶は、それぞれ所定の大きさのブロックに分割され、各
ブロックに振られたブロック番号で管理されるようにす
ることができる。また、メモリの一部分の各ブロック
と、各ブロックがマッピングされた二次記憶のブロック
との対応関係を示すメモリマッピングテーブルに基づい
て、タスク切り替え時のメモリの退避及び回復がブロッ
ク単位で行われるようにすることができる。また、各タ
スク毎に仮想的に設けられたタスクメモリは、所定の大
きさのブロックに分割され、各ブロックに振られたブロ
ック番号で管理され、タスクメモリの各ブロックと、各
ブロックがタスク毎にマッピングされた二次記憶のブロ
ックとの対応関係を示すタスクメモリマッピングテーブ
ルに基づいて、タスク切り替え時に、メモリマッピング
テーブルの内容が、切り替え後のタスクのタスクマッピ
ングテーブルの内容で書き換えられるようにすることが
できる。また、二次記憶の各ブロックの使用状況を示す
使用状況テーブルに基づいて、二次記憶に空きがあると
き、タスクメモリが二次記憶にマッピングされるように
することができる。請求項6に記載の情報処理装置は、
メモリと二次記憶とを備え、ダイレクトモードで動作す
るオペレーティングシステムによって複数のタスクの実
行が制御される情報処理装置であって、メモリの少なく
とも一部分を、各タスク毎に二次記憶にマッピングする
マッピング手段と、タスクの切り替え時に、切り替え前
のタスクが使用していたメモリの内容を、メモリに対応
する二次記憶のマッピング先に退避する退避手段と、切
り替え後のタスクが使用するメモリの内容を、メモリに
対応する二次記憶のマッピング先から回復する回復手段
とを備えることを特徴とする。請求項7に記載の仮想記
憶制御プログラムは、メモリと二次記憶とを備え、ダイ
レクトモードで動作するオペレーティングシステムによ
って複数のタスクの実行が制御される情報処理装置を制
御する仮想記憶制御プログラムであって、メモリの少な
くとも一部分を、各タスク毎に二次記憶にマッピングす
るステップと、タスクの切り替え時に、切り替え前のタ
スクが使用していたメモリの内容を、メモリに対応する
二次記憶のマッピング先に退避するステップと、切り替
え後のタスクが使用するメモリの内容を、メモリに対応
する二次記憶のマッピング先から回復するステップとを
情報処理装置に実行させることを特徴とする。本発明に
係る仮想記憶方法においては、メモリの少なくとも一部
分を、各タスク毎に二次記憶にマッピングし、タスクの
切り替え時に、切り替え前のタスクが使用していたメモ
リの内容を、メモリに対応する二次記憶のマッピング先
に退避し、切り替え後のタスクが使用するメモリの内容
を、メモリに対応する二次記憶のマッピング先から回復
する。
【0006】
【発明の実施の形態】図1は、本発明を応用した組み込
み機器のオペレーティングシステムの一実施の形態の構
成例を示すブロック図である。同図に示すように、本実
施の形態は、タスク切り替えを行うタスクディスパッチ
ャ101と、メモリプール管理を行うメモリプール管理
102と、二次記憶ブロック使用状況管理を行う二次記
憶ブロック使用状況管理103とから構成されている。
ここで、メモリプールは実メモリであり、後述するタス
クメモリ(仮想的なメモリ)に割り当てられる。
【0007】タスクディスパッチャ101は、タスクデ
ィスパッチャ101によるタスク切り替え時に、タスク
メモリ(予めアドレスを定めた仮想記憶として利用する
メモリ上の領域)を、次にディスパッチするタスクのも
のに切り替えるタスクメモリ切替手段111と、タスク
の終了時にそのタスクの保有するタスクメモリに使用し
ていた二次記憶のブロックを解放するタスクメモリ終了
手段112とにより構成されている。
【0008】メモリプール管理102は、タスクメモリ
に該当するメモリプールからメモリを確保する場合に、
タスクメモリに二次記憶のブロックを割り当てるタスク
メモリ確保手段113と、タスクメモリに該当するメモ
リプールにメモリを解放する場合に、タスクメモリに割
り当てられていた二次記憶のブロックを解放するタスク
メモリ解放手段114とから構成されている。
【0009】二次記憶ブロック使用状況管理103は、
二次記憶のブロックの使用状況を管理するための二次記
憶ブロック確保手段115と、二次記憶ブロック解放手
段116とから構成されている。
【0010】本実施の形態の各部を制御するオペレーテ
ィングシステムは、ダイレクトモードで動作し、そのメ
モリ管理は、組み込み用のものに多く見られるメモリプ
ール方式によるものであるとする(例えば、μITRO
N(IndustrialTRON(The Real
time Operating system Nuc
leus))等)。つまり、メモリ(RAM(rand
om accessmemory))は、いくつかのメ
モリプールと呼ばれるアドレスの連続した領域に分割し
て管理され、ユーザ(アプリケーションプログラム(以
下では、適宜、アプリケーションと記載する))は、ど
の領域からメモリを確保するかをメモリプールのIDに
て指定する。本実施の形態では、メモリの予め定めた所
定のアドレスの領域を各タスクに固有のメモリプールと
し、この領域をタスクスイッチ時に、二次記憶(例え
ば、フラッシュメモリ)に退避・回復することで、実装
メモリ容量以上のメモリをアプリケーションが利用する
ことができるようにするものである。このアプリケーシ
ョンは、複数のタスクによって構成される場合がある。
【0011】図2に示すように、二次記憶の記憶領域
は、二次記憶の入出力単位である所定の入出力サイズ
(1度の入出力で読み書きできるサイズ)のブロックに
分割され、各ブロックは、各ブロックを一意に示すブロ
ックIDで管理されている。二次記憶への入出力は、こ
のブロックIDを指定してダイレクトに行うことができ
るものとする。以下では、各ブロックの大きさをブロッ
クサイズと記載する。
【0012】そして、この二次記憶の各ブロックの使用
状況(「使用中」又は「空き」)を管理するために、図
3に示すような二次記憶使用状況テーブル(二次記憶の
各ブロックの使用状況を表すテーブル)を用いる。図3
は、二次記憶使用状況テーブルの例を示している。図3
に示した例の場合、例えば、ブロック番号#1は「使用
中」であり、ブロック番号#3は「空き」であることが
示されている。
【0013】予めアドレスを定めたタスクメモリ(仮想
記憶)として利用される実メモリは、図4に示すよう
に、退避・回復する二次記憶のブロックに対応させるた
め、二次記憶のブロックサイズと同一のサイズで分割さ
れ、各ブロックにブロック番号が付与され、ブロック番
号によって管理される。
【0014】図5は、この実メモリの各ブロックが、二
次記憶のどのブロックに退避されているのかを示すブロ
ックマッピングテーブルの例を示している。この例の場
合、実メモリのブロック番号#1のブロックは、二次記
憶のブロック番号#12のブロックに対応し、実メモリ
のブロック番号#2のブロックは、二次記憶のブロック
番号#39のブロックに対応し、実メモリのブロック番
号#3のブロックは、二次記憶のブロック番号#22の
ブロックに対応し、実メモリのブロック番号#4のブロ
ックは、二次記憶のブロック番号#8のブロックに対応
し、実メモリのブロック番号Nのブロックは、二次記憶
のブロック番号Xのブロックに対応している。
【0015】システム全体では、図6に示すように、二
次記憶の使用状態を管理するための1つの二次記憶使用
状況テーブル605と、タスクメモリ域の実メモリの各
ブロックに二次記憶のどのブロックの情報が載っている
かを示す実メモリ状態を管理するための1つのブロック
マッピングテーブル601と、各タスクにおけるタスク
メモリの各ブロックが二次記憶のどのブロックに退避さ
れているかを管理するための各タスク毎に設けられたブ
ロックマッピングテーブル602乃至604が用いられ
る。
【0016】二次記憶使用状況テーブル605は、オペ
レーティングシステム起動時に、全ブロックが「空き」
として初期化される。また、実メモリのブロックマッピ
ングテーブル601は、オペレーティングシステム起動
時に、全ブロックが「0」として初期化される。また、
タスク毎のブロックマッピングテーブル602乃至60
4は、各タスクの生成時に作成され、全ブロックが
「0」として初期化される。
【0017】次に、図7乃至図12のフローチャートを
参照して、本実施の形態の全体の動作について詳細に説
明する。
【0018】まず、図7のフローチャートを参照して、
タスクメモリ切り替え処理について説明する。オペレー
ティングシステムのタスクの切り替え時、図1のタスク
ディスパッチャ101においては、タスクメモリ切替手
段111が、タスクメモリを、次にディスパッチするタ
スクのものに切り替える。以下では、図6に示すよう
に、カレントタスクが「タスク1」であった状態から、
カレントタスクが「タスク2」である状態に切り替える
場合のタスクメモリ切替手段111の動作について、図
7のフローチャートを参照して説明する。
【0019】まず最初に、タスク1のブロックマッピン
グテーブル602を得る(ステップ701)。次に、ブ
ロックマッピングテーブル602に登録されているブロ
ックを、次の手順で二次記憶に退避する。まず、ステッ
プ702において、タスク1のブロックマッピングテー
ブル602の全エントリについて、ステップ703,7
04の処理が繰り返し実行されるように制御される。即
ち、タスク1のブロックマッピングテーブル602の全
エントリについて、ステップ703,704の処理が実
行されたか否かが判定される。その結果、タスク1のブ
ロックマッピングテーブル602の全エントリについ
て、ステップ703,704の処理が実行されていない
と判定された場合、ステップ703に進む。
【0020】ステップ703においては、タスク1のブ
ロックマッピングテーブル602の各エントリ(タスク
1のタスクメモリ域の実メモリの各ブロック)について
順番に、対応する二次記憶のブロックのブロック番号が
0でないか否かが判定される。その結果、対応する二次
記憶のブロックのブロック番号が0であると判定された
場合、ステップ702に戻り、ステップ702以降の処
理が繰り返し実行される。一方、対応する二次記憶のブ
ロックのブロック番号が0ではないと判定された場合、
そのタスクメモリ域の実メモリの上記ブロックのデータ
を、対応する二次記憶のブロック番号のブロックにWR
ITEする(ステップ704)。
【0021】図6のブロックマッピングテーブル602
の例では、実メモリのブロック1乃至3に対応する二次
記憶のブロック番号が0ではないので、実メモリのブロ
ック1乃至3のメモリ内容を、それぞれ二次記憶のブロ
ック番号#3、#5、#8のブロックにWRITEす
る。即ち、実メモリのブロック1のメモリ内容を二次記
憶のブロック番号#3のブロックにWRITEし、実メ
モリのブロック2のメモリ内容を二次記憶のブロック番
号#5のブロックにWRITEし、実メモリのブロック
3のメモリ内容を二次記憶のブロック番号#8のブロッ
クにWRITEする。
【0022】また、ステップ702において、タスク1
のブロックマッピングテーブル602の全エントリにつ
いて、ステップ703,704の処理が実行されたと判
定された場合、ステップ705に進む。
【0023】次に、タスク1の次にディスパッチするタ
スク2のメモリ内容を回復する。まず、タスク2のブロ
ックマッピングテーブル603を得る(ステップ70
5)。次に、ブロックマッピングテーブル603に登録
されているブロックを、次の手順で二次記憶から回復す
る。まず、ステップ706において、タスク2のブロッ
クマッピングテーブルの全エントリについて、ステップ
707以降の処理が繰り返し実行されるように制御され
る。即ち、タスク2のブロックマッピングテーブルの全
エントリについて、ステップ707以降の処理が実行さ
れたか否かが判定される。その結果、タスク1のブロッ
クマッピングテーブルの全エントリについて、ステップ
707以降の処理が実行されていないと判定された場
合、ステップ707に進む。
【0024】ステップ707においては、タスク1のブ
ロックマッピングテーブルの各エントリ(タスク2のタ
スクメモリ域の実メモリの各ブロック)について順番
に、対応する二次記憶のブロックのブロック番号が0で
ないか否かが判定される。その結果、対応する二次記憶
のブロックのブロック番号が0であると判定された場
合、ステップ706に戻り、ステップ706以降の処理
が繰り返し実行される。一方、対応する二次記憶のブロ
ックのブロック番号が0ではないと判定された場合、ス
テップ708に進む。
【0025】ステップ708においては、タスク2のブ
ロックマッピングテーブル603の各ブロックに対応す
る二次記憶のブロックのブロック番号と、実メモリのブ
ロックマッピングテーブル601の各ブロックに対応す
る二次記憶のブロックのブロック番号とが等しいか否か
が、タスク2のブロックマッピングテーブル603の各
ブロックについて順番に判定される。その結果、タスク
2のブロックマッピングテーブル603の各ブロックに
対応する二次記憶のブロックのブロック番号と、実メモ
リのブロックマッピングテーブル601の各ブロックに
対応する二次記憶のブロックのブロック番号とが等しい
と判定された場合、ステップ706に戻り、ステップ7
06以降の処理が繰り返し実行される。
【0026】一方、タスク2のブロックマッピングテー
ブル603の各ブロックに対応する二次記憶のブロック
のブロック番号と、実メモリのブロックマッピングテー
ブル601の各ブロックに対応する二次記憶のブロック
のブロック番号とが等しくない(異なる)と判定された
場合、タスク2のブロックマッピングテーブル603の
対応する二次記憶のブロック番号のブロックのデータを
READし、実メモリの対応するブロックに書き込む
(ステップ709)。このとき、実メモリのブロックマ
ッピングテーブル601の対応する二次記憶のブロック
番号をREADしたブロックのブロック番号に更新する
(ステップ710)。その後、ステップ706に戻り、
ステップ706以降の処理が繰り返し実行される。ま
た、ステップ706において、タスク2のブロックマッ
ピングテーブル603の全エントリについてステップ7
07乃至710の処理が実行されたと判定された場合、
本処理を終了する。
【0027】図6に示したブロックマッピングテーブル
603の例では、タスク2のタスクメモリのブロック1
乃至3に対応する二次記憶のブロック番号が0でなく、
かつ、タスク2のブロック1乃至3に対応する二次記憶
のブロック番号と、実メモリのブロックマッピングテー
ブル601のブロック1乃至3に対応する二次記憶のブ
ロック番号とがそれぞれ異なっている(タスク2のタス
クメモリのブロック1に対応する二次記憶のブロック番
号は#1、実メモリのブロック1に対応する二次記憶の
ブロック番号は#3で異なる。また、タスク2のタスク
メモリのブロック2に対応する二次記憶のブロック番号
は#2、実メモリのブロック2に対応する二次記憶のブ
ロック番号は#5で異なる。また、タスク2のタスクメ
モリのブロック3に対応する二次記憶のブロック番号は
#6、実メモリのブロック3に対応する二次記憶のブロ
ック番号は#8で異なる)ので、これらのブロックのメ
モリ内容を、それぞれ二次記憶のブロック番号#1、#
2、#6のブロックからREADし、実メモリのブロッ
クマッピングテーブル601のブロック1乃至3を、い
まREADしたブロック番号#1、#2、#6の対応す
るブロックの内容に書き換える。また、タスク2のタス
クメモリのブロック4に対応する二次記憶のブロック番
号と、実メモリのブロック4に対応する二次記憶のブロ
ック番号は共に#9で等しいので、ブロック4について
はそのままとする。
【0028】次に、タスク終了時の処理手順について説
明する。タスクの終了時には、オペレーティングシステ
ムのタスクのターミネータは、タスクメモリ終了手段1
12(図1)を用いて、当該タスクのタスクメモリを解
放する。以下、図8のフローチャートを参照して、タス
クメモリ終了手段112の動作について、「タスク1」
を終了させる場合を例に説明する。
【0029】まず最初に、タスク1のブロックマッピン
グテーブル602を得る(ステップ801)。次に、ブ
ロックマッピングテーブル602に登録されているブロ
ックを次の手順で解放する。まず、ステップ802にお
いて、タスク1のブロックマッピングテーブル602の
全エントリについて、ステップ803,804の処理が
繰り返し実行されるように制御される。即ち、タスク1
のブロックマッピングテーブル602の全エントリにつ
いて、ステップ803,804の処理が実行されたか否
かが判定される。その結果、タスク1のブロックマッピ
ングテーブル601の全エントリについて、ステップ8
03,804の処理が実行されていないと判定された場
合、ステップ803に進む。
【0030】ステップ803においては、タスク1のブ
ロックマッピングテーブル601の各エントリ(タスク
1のタスクメモリ域の実メモリの各ブロック)について
順番に、対応する二次記憶のブロックのブロック番号が
0でないか否かが判定される。その結果、対応する二次
記憶のブロックのブロック番号が0であると判定された
場合、ステップ802に戻り、ステップ802以降の処
理が繰り返し実行される。一方、対応する二次記憶のブ
ロックのブロック番号が0ではないと判定された場合、
二次記憶ブロック解放手段116(図1)は、その二次
記憶のブロック番号のブロックを解放する(ステップ8
04)。
【0031】また、ステップ802において、タスク1
のブロックマッピングテーブル601の全エントリにつ
いて、ステップ803,804の処理が実行されたと判
定された場合、本処理を終了する。
【0032】図6に示したブロックマッピングテーブル
602の例では、ブロック1乃至3に対応する二次記憶
のブロック番号が0でないので、これらのブロックに対
応するブロック番号#3、#5、#8の二次記憶のブロ
ックを解放する。
【0033】次に、メモリ確保時の処理手順について説
明する。タスクがメモリプールよりメモリを確保すると
き、オペレーティングシステムのメモリプール管理10
2(図1)は、指定メモリプールがタスクメモリの場
合、即ち、指定メモリプールが、複数のタスクのタスク
メモリに従って二次記憶がマッピングされるメモリプー
ルの一部である場合、確保したメモリの含まれるブロッ
クをタスクメモリ確保手段113(図1)を用いて確保
する。以下、図9のフローチャートを参照して、タスク
メモリ確保手段113の動作について、「タスク1」が
メモリを確保する場合を例に説明する。
【0034】まず、確保するメモリのアドレスとサイズ
から、対応するメモリのブロック番号を得る(オペレー
ティングシステムのメモリプールの空き管理の方法によ
っては、空きメモリ上に空きエリアを管理するためのポ
インタを格納するものがあり、この場合には、このポイ
ンタを格納するためのエリアも含めて、使用するメモリ
すべてを「確保対象」とする必要がある。しかし、本実
施の形態におけるオペレーティングシステムは、このよ
うな管理は行っておらず、純粋に確保メモリのみに注目
すればよいオペレーティングシステムであるとする)。
その確保位置や大きさによって、複数ブロックにまたが
ることもあり、この場合は、複数のブロック番号を得る
(ステップ901)。
【0035】次に、タスク1のブロックマッピングテー
ブル602を得る(ステップ902)。次に、ステップ
901で得た各ブロック番号について、ステップ904
乃至906の処理が実行されるように制御される(ステ
ップ903)。即ち、ステップ901において得られた
全ブロック番号について、ステップ904乃至906の
処理が実行されたか否かが判定される。その結果、全ブ
ロック番号について、ステップ904乃至906の処理
が実行されていないと判定された場合、ステップ904
に進む。
【0036】ステップ904においては、タスク1のブ
ロックマッピングテーブル602において二次記憶のブ
ロック番号が0であるか否かが判定される。その結果、
タスク1のブロックマッピングテーブル602に対応す
る二次記憶のブロック番号が0ではないと判定された場
合、ステップ903に戻り、ステップ903以降の処理
が繰り返し実行される。一方、タスク1のブロックマッ
ピングテーブル602に対応する二次記憶のブロック番
号が0であると判定された場合、ステップ905に進
む。
【0037】ステップ905においては、二次記憶ブロ
ック確保手段115(図1)は、二次記憶の所定のブロ
ック番号のブロックを確保して、タスク1のブロックマ
ッピングテーブル602に当該ブロック番号を、対応す
る二次記憶ブロック番号として格納する(ブロックマッ
ピングテーブル602のエントリに記入する)。また、
実メモリのブロックマッピングテーブル601にも、当
該ブロック番号を対応する二次記憶ブロック番号として
格納する(ブロックマッピングテーブル601のエント
リにも記入する)(ステップ906)。その後、ステッ
プ903に戻り、ステップ903以降の処理が繰り返し
実行される。
【0038】また、ステップ903において、実メモリ
の全ブロック番号について、ステップ904乃至906
の処理が実行されたと判定された場合、本処理を終了す
る。
【0039】次に、メモリを解放するときの処理手順に
ついて説明する。タスクがメモリプールにメモリを解放
するとき、オペレーティングシステムのメモリプール管
理102(図1)は、指定メモリプールがタスクメモリ
の場合、解放したメモリの含まれるブロックをタスクメ
モリ解放手段114(図1)を用いて解放する。以下、
図10のフローチャートを参照して、タスクメモリ解放
手段114の動作について、「タスク1」がメモリを解
放する場合を例に説明する。
【0040】まず、メモリを解放した結果、未使用とな
るメモリのブロック番号を得る。その解放位置や大きさ
によって、複数ブロックが未使用となることもあり、こ
の場合は、複数のブロック番号を得る(ステップ100
1)。次に、タスク1のブロックマッピングテーブル6
02を得る(ステップ1002)。次に、ステップ10
01において得られた全ブロック番号について、ステッ
プ1004及びステップ1005の処理が実行されるよ
うに制御される(ステップ1003)。
【0041】次に、ステップ1004において、ブロッ
クマッピングテーブル602において対応する二次記憶
のブロック番号が0でないか否かが判定される。その結
果、ブロックマッピングテーブル602において対応す
る二次記憶のブロック番号が0であると判定された場
合、ステップ1003に戻り、ステップ1003以降の
処理が繰り返し実行される。一方、ブロックマッピング
テーブル602において対応する二次記憶のブロック番
号が0でないと判定された場合、ステップ1005に進
む。
【0042】ステップ1005においては、二次記憶ブ
ロック解放手段116(図1)は、ブロックマッピング
テーブル602において対応する二次記憶のブロック番
号のブロックを解放して、タスク1のブロックマッピン
グテーブル602の当該ブロックの二次記憶のブロック
番号を0とする。
【0043】次に、二次記憶ブロック確保手段115
(図1)の動作手順について、図11のフローチャート
を参照して説明する。まず、二次記憶使用状況テーブル
605を得る(ステップ1101)。次に、二次記憶使
用状況テーブル605の使用状況が「空き」のものを検
索する(ステップ1102)。
【0044】次に、ステップ1103において、二次記
憶使用状況テーブル605の使用状況が「空き」のブロ
ックが見つかったか否かが判定される。その結果、「空
き」が見つからなかった場合、メモリ空間不足のエラー
とする(ステップ1105)。一方、「空き」が見つか
った場合、二次記憶使用状況テーブル605の「空き」
のブロックを「使用中」に変更し、当該ブロック番号を
タスクメモリ確保手段113に返す(ステップ110
4)。ステップ1104又はステップ1105の処理が
終了すると、本処理を終了する。
【0045】次に、二次記憶ブロック解放手段116
(図1)の動作手順について、図12のフローチャート
を参照して説明する。まず、二次記憶使用状況テーブル
605を得る(ステップ1201)、次に、タスクメモ
リ解放手段114によって解放指定されたブロックに対
応するエントリの使用状況を「空き」に変更する(ステ
ップ1202)。その後、本処理を終了する。
【0046】以上説明したように、本実施の形態によ
り、次にような効果を得ることができる。即ち、組み込
みソフトウェアの性能を維持したまま、大容量のメモリ
を必要とするアプリケーションの実行環境も共存させる
ことができることである。その理由は、ダイレクトモー
ドで動作するオペレーティングシステム上で、必要なタ
スクには部分的に仮想記憶に近い機能を提供することが
でき、この部分はタスク毎に多重に情報を保持すること
ができるためである。即ち、複数のタスクが実メモリの
所定のメモリ空間を共有することができる。これによ
り、ダイレクトモードで動作しながら、部分的にメモリ
を多重に持つことができる。
【0047】次に、本発明を応用した他の実施の形態に
ついて説明する。本実施の形態は、先に挙げた実施の形
態における、実メモリ状態を表すブロックマッピングテ
ーブル601を持たないものである。先に挙げた実施の
形態では、この実メモリ状態を表すブロックマッピング
テーブル601にて実際のメモリ上の内容を管理し、タ
スク切り替え時に、切り替えた後のタスクが使用するデ
ータと同一のデータが実メモリに残っている場合には、
再度、二次記憶より回復することを防いでいる。本実施
の形態では、この処理を省略し、実装を簡略化したもの
である。
【0048】本実施の形態は、先に示した実施の形態に
おける以下の処理、即ち、図7のフローチャートに示し
たタスクメモリ切替手段111の動作において、実メモ
リに、いま回復しようとするブロックのデータが残って
いるか否かを検査する処理(ステップ708)と、回復
したブロックのブロック番号を実メモリのブロックマッ
ピングテーブル601に格納する処理(ステップ71
0)と、図9のフローチャートに示したタスクメモリ確
保手段113の動作において、確保したブロックのブロ
ック番号を実メモリのブロックマッピングテーブル60
1に格納する処理(ステップ906)とを省略したもの
である。本実施の形態においても、先の実施の形態の場
合と同様の効果を奏する。
【0049】また、上述したような処理を実行するプロ
グラムは、CD−ROM(compact disc
read only memory)、DVD(dig
ital versatile disc)、フロッピ
ー(登録商標)ディスク、メモリカード等の様々な記録
媒体に記録して提供することができる。そして、そのプ
ログラムは、コンピュータの動作を制御し、プログラム
制御されたそのコンピュータが上記プログラムにより指
令される所定の処理を実行する。
【0050】なお、上記実施の形態の構成及び動作は例
であって、本発明の趣旨を逸脱しない範囲で適宜変更す
ることができることは言うまでもない。
【0051】
【発明の効果】以上の如く、本発明に係る仮想記憶方法
によれば、メモリの少なくとも一部分を、各タスク毎に
二次記憶にマッピングし、タスクの切り替え時に、切り
替え前のタスクが使用していたメモリの内容を、メモリ
に対応する二次記憶のマッピング先に退避し、切り替え
後のタスクが使用するメモリの内容を、メモリに対応す
る二次記憶のマッピング先から回復するようにしたの
で、ダイレクトモードで動作するオペレーティングシス
テム上で、実装メモリ容量以上のメモリをアプリケーシ
ョンが利用することができ、大容量のデータ処理を行う
アプリケーションの実行が可能となる。
【図面の簡単な説明】
【図1】本発明が適用される組み込み機器のオペレーテ
ィングシステムの一実施の形態の構成例を示すブロック
図である。
【図2】二次記憶の記憶領域の例を示す図である。
【図3】二次記憶使用状況テーブルの例を示す図であ
る。
【図4】実メモリの例を示す図である。
【図5】ブロックマッピングテーブルの例を示す図であ
る。
【図6】実メモリのブロックマッピングテーブルと、各
タスクのブロックマッピングテーブルと、二次記憶使用
状況テーブルの対応関係を示す図である。
【図7】タスクメモリ切り替え処理手順を説明するため
のフローチャートである。
【図8】タスクメモリ終了時の処理手順を説明するため
のフローチャートである。
【図9】タスクメモリ確保時の処理手順を説明するため
のフローチャートである。
【図10】タスクメモリ解放時の処理手順を説明するた
めのフローチャートである。
【図11】二次記憶ブロック確保時の処理手順を説明す
るためのフローチャートである。
【図12】二次記憶ブロック解放時の処理手順を説明す
るためのフローチャートである。
【符号の説明】
101 タスクディスパッチャ 102 メモリプール管理 103 二次記憶ブロック使用状況管理 111 タスクメモリ切替手段 112 タスクメモリ終了手段 113 タスクメモリ確保手段 114 タスクメモリ解放手段 115 二次記憶ブロック確保手段 116 二次記憶ブロック解放手段 601〜604 ブロックマッピングテーブル 605 二次記憶使用状況テーブル

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 メモリと二次記憶とを備え、ダイレクト
    モードで動作するオペレーティングシステムによって複
    数のタスクの実行が制御される情報処理装置における仮
    想記憶方法であって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
    次記憶にマッピングするマッピングステップと、 前記タスクの切り替え時に、切り替え前の前記タスクが
    使用していた前記メモリの内容を、前記メモリに対応す
    る前記二次記憶のマッピング先に退避する退避ステップ
    と、 切り替え後の前記タスクが使用する前記メモリの内容
    を、前記メモリに対応する前記二次記憶のマッピング先
    から回復する回復ステップとを備えることを特徴とする
    仮想記憶方法。
  2. 【請求項2】 前記メモリの一部分と前記二次記憶は、
    それぞれ所定の大きさのブロックに分割され、各ブロッ
    クに振られたブロック番号で管理されることを特徴とす
    る請求項1に記載の仮想記憶方法。
  3. 【請求項3】 前記メモリの一部分の各ブロックと、各
    ブロックがマッピングされた前記二次記憶のブロックと
    の対応関係を示すメモリマッピングテーブルに基づい
    て、前記タスク切り替え時の前記メモリの退避及び回復
    がブロック単位で行われることを特徴とする請求項2に
    記載の仮想記憶方法。
  4. 【請求項4】 各タスク毎に仮想的に設けられたタスク
    メモリは、所定の大きさの前記ブロックに分割され、各
    ブロックに振られたブロック番号で管理され、前記タス
    クメモリの各ブロックと、各ブロックがタスク毎にマッ
    ピングされた前記二次記憶のブロックとの対応関係を示
    すタスクメモリマッピングテーブルに基づいて、タスク
    切り替え時に、前記メモリマッピングテーブルの内容
    が、切り替え後の前記タスクのタスクマッピングテーブ
    ルの内容で書き換えられることを特徴とする請求項3に
    記載の仮想記憶方法。
  5. 【請求項5】 前記二次記憶の各ブロックの使用状況を
    示す使用状況テーブルに基づいて、前記二次記憶に空き
    があるとき、前記タスクメモリが前記二次記憶にマッピ
    ングされることを特徴とする請求項4に記載の仮想記憶
    方法。
  6. 【請求項6】 メモリと二次記憶とを備え、ダイレクト
    モードで動作するオペレーティングシステムによって複
    数のタスクの実行が制御される情報処理装置であって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
    次記憶にマッピングするマッピング手段と、 前記タスクの切り替え時に、切り替え前の前記タスクが
    使用していた前記メモリの内容を、前記メモリに対応す
    る前記二次記憶のマッピング先に退避する退避手段と、 切り替え後の前記タスクが使用する前記メモリの内容
    を、前記メモリに対応する前記二次記憶のマッピング先
    から回復する回復手段とを備えることを特徴とする情報
    処理装置。
  7. 【請求項7】 メモリと二次記憶とを備え、ダイレクト
    モードで動作するオペレーティングシステムによって複
    数のタスクの実行が制御される情報処理装置における仮
    想記憶制御プログラムであって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
    次記憶にマッピングするステップと、 前記タスクの切り替え時に、切り替え前の前記タスクが
    使用していた前記メモリの内容を、前記メモリに対応す
    る前記二次記憶のマッピング先に退避するステップと、 切り替え後の前記タスクが使用する前記メモリの内容
    を、前記メモリに対応する前記二次記憶のマッピング先
    から回復するステップとを前記情報処理装置に実行させ
    る仮想記憶制御プログラム。
JP2001130734A 2001-04-27 2001-04-27 仮想記憶方法 Pending JP2002328811A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001130734A JP2002328811A (ja) 2001-04-27 2001-04-27 仮想記憶方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001130734A JP2002328811A (ja) 2001-04-27 2001-04-27 仮想記憶方法

Publications (1)

Publication Number Publication Date
JP2002328811A true JP2002328811A (ja) 2002-11-15

Family

ID=18979046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001130734A Pending JP2002328811A (ja) 2001-04-27 2001-04-27 仮想記憶方法

Country Status (1)

Country Link
JP (1) JP2002328811A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077255A (ja) * 2006-09-20 2008-04-03 Nec Corp 携帯端末装置及びそれに用いるメモリ管理方法並びにそのプログラム
CN118573674A (zh) * 2024-08-01 2024-08-30 恒生电子股份有限公司 数据访问处理方法、装置、设备、存储介质及程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077255A (ja) * 2006-09-20 2008-04-03 Nec Corp 携帯端末装置及びそれに用いるメモリ管理方法並びにそのプログラム
CN118573674A (zh) * 2024-08-01 2024-08-30 恒生电子股份有限公司 数据访问处理方法、装置、设备、存储介质及程序产品

Similar Documents

Publication Publication Date Title
KR100289628B1 (ko) 멀티태스킹 기능의 정보처리시스템을 위한 자원관리방법및 그 장치
US5978815A (en) File system primitive providing native file system support for remote storage
US5931935A (en) File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US6088779A (en) System and method for execution management of computer programs
US9086920B2 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
US7707337B2 (en) Object-based storage device with low process load and control method thereof
JPS6243766A (ja) 共用資源の状態管理方式
JPH09506988A (ja) コンピュータの仮想メモリにおける補助記憶の分散制御システム
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JP2002328811A (ja) 仮想記憶方法
JPH06214874A (ja) メモリ管理方式
JP4354583B2 (ja) アクセス方法及びアクセス処理プログラムを記録した記録媒体
JP2005276164A (ja) 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
JP2006085209A (ja) 計算機システムのデプロイメント方式
EP1008045A1 (en) File system primitive allowing reprocessing of i/o requests by multiple drivers in a layered driver i/o system
JP2994138B2 (ja) 対話処理システムにおけるカタログの変数管理方法
JPH0756800A (ja) メモリ領域の動的管理装置
JPH0337748A (ja) 主記憶を利用した外部記憶アクセス方式
US6662214B1 (en) Class-creation from disk
JPH0237443A (ja) 電子計算機システムにおける主記憶管理方式
JPH0394346A (ja) バッファ拡張装置
JPH04167152A (ja) 空きメモリ管理方式
KR20000003162A (ko) 효율적인 플래시 메모리 운용 방법
CN119292804A (zh) 一种跨进程的数据零拷贝方法及装置
JP3790997B2 (ja) オブジェクト管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602