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
Links
- 238000000034 method Methods 0.000 title claims description 57
- 230000015654 memory Effects 0.000 claims abstract description 240
- 238000013507 mapping Methods 0.000 claims description 91
- 230000010365 information processing Effects 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 210000004940 nucleus Anatomy 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
グシステム上で部分的な仮想記憶を実現する。 【解決手段】 タスクディスパッチャ101のタスクメ
モリ切替手段111は、タスク切り替え時にタスクメモ
リを切り替え、タスク終了手段112は終了させるタス
クのタスクメモリに対応する二次記憶のブロックを解放
し、メモリプール管理102のタスクメモリ確保手段1
13はタスクメモリに該当するメモリプールからメモリ
を確保する場合、二次記憶ブロック使用状況管理103
の二次記憶ブロック確保手段115を用いてタスクメモ
リに二次記憶のブロックを割り当て、タスクメモリ解放
手段114はタスクメモリに該当するメモリプールを開
放する場合、二次記憶ブロック解放手段116を用いて
タスクメモリに割り当てられた二次記憶のブロックを解
放する。
Description
し、特に、ダイレクトモードで動作する(仮想記憶を持
たない)オペレーティングシステムに部分的な仮想記憶
を提供する仮想記憶方法に関する。
さやコストの制約から、実装メモリ容量の制限が厳し
い。また、通常、組み込み用のリアルタイム・オペレー
ティングシステムは、性能を重視し、仮想記憶を持たず
にダイレクトモードで動作するようになっている。
組み込み機器は、性能が重視される一方で、携帯端末に
代表されるように、プログラムのダウンロードなどが可
能となり、大容量のデータ処理を行うアプリケーション
プログラムの実行環境も共存させる必要性が生じてき
た。ところが、従来の場合、組み込み機器用のリアルタ
イム・オペレーティングシステムは、仮想記憶を持たず
にダイレクトモードで動作するため、実装メモリ容量以
上のメモリをアプリケーションプログラムが利用するこ
とは不可能であり、大容量のデータ処理を行うアプリケ
ーションプログラムを実行させることができないという
課題があった。
ものであり、ダイレクトモードで動作するオペレーティ
ングシステム上で、実装メモリ容量以上のメモリをアプ
リケーションプログラムが利用することができるように
し、大容量のデータ処理を行うアプリケーションプログ
ラムの実行を可能とするものである。
憶方法は、メモリと二次記憶とを備え、ダイレクトモー
ドで動作するオペレーティングシステムによって複数の
タスクの実行が制御される情報処理装置における仮想記
憶方法であって、メモリの少なくとも一部分を、各タス
ク毎に二次記憶にマッピングするマッピングステップ
と、タスクの切り替え時に、切り替え前のタスクが使用
していたメモリの内容を、メモリに対応する二次記憶の
マッピング先に退避する退避ステップと、切り替え後の
タスクが使用するメモリの内容を、メモリに対応する二
次記憶のマッピング先から回復する回復ステップとを備
えることを特徴とする。また、メモリの一部分と二次記
憶は、それぞれ所定の大きさのブロックに分割され、各
ブロックに振られたブロック番号で管理されるようにす
ることができる。また、メモリの一部分の各ブロック
と、各ブロックがマッピングされた二次記憶のブロック
との対応関係を示すメモリマッピングテーブルに基づい
て、タスク切り替え時のメモリの退避及び回復がブロッ
ク単位で行われるようにすることができる。また、各タ
スク毎に仮想的に設けられたタスクメモリは、所定の大
きさのブロックに分割され、各ブロックに振られたブロ
ック番号で管理され、タスクメモリの各ブロックと、各
ブロックがタスク毎にマッピングされた二次記憶のブロ
ックとの対応関係を示すタスクメモリマッピングテーブ
ルに基づいて、タスク切り替え時に、メモリマッピング
テーブルの内容が、切り替え後のタスクのタスクマッピ
ングテーブルの内容で書き換えられるようにすることが
できる。また、二次記憶の各ブロックの使用状況を示す
使用状況テーブルに基づいて、二次記憶に空きがあると
き、タスクメモリが二次記憶にマッピングされるように
することができる。請求項6に記載の情報処理装置は、
メモリと二次記憶とを備え、ダイレクトモードで動作す
るオペレーティングシステムによって複数のタスクの実
行が制御される情報処理装置であって、メモリの少なく
とも一部分を、各タスク毎に二次記憶にマッピングする
マッピング手段と、タスクの切り替え時に、切り替え前
のタスクが使用していたメモリの内容を、メモリに対応
する二次記憶のマッピング先に退避する退避手段と、切
り替え後のタスクが使用するメモリの内容を、メモリに
対応する二次記憶のマッピング先から回復する回復手段
とを備えることを特徴とする。請求項7に記載の仮想記
憶制御プログラムは、メモリと二次記憶とを備え、ダイ
レクトモードで動作するオペレーティングシステムによ
って複数のタスクの実行が制御される情報処理装置を制
御する仮想記憶制御プログラムであって、メモリの少な
くとも一部分を、各タスク毎に二次記憶にマッピングす
るステップと、タスクの切り替え時に、切り替え前のタ
スクが使用していたメモリの内容を、メモリに対応する
二次記憶のマッピング先に退避するステップと、切り替
え後のタスクが使用するメモリの内容を、メモリに対応
する二次記憶のマッピング先から回復するステップとを
情報処理装置に実行させることを特徴とする。本発明に
係る仮想記憶方法においては、メモリの少なくとも一部
分を、各タスク毎に二次記憶にマッピングし、タスクの
切り替え時に、切り替え前のタスクが使用していたメモ
リの内容を、メモリに対応する二次記憶のマッピング先
に退避し、切り替え後のタスクが使用するメモリの内容
を、メモリに対応する二次記憶のマッピング先から回復
する。
み機器のオペレーティングシステムの一実施の形態の構
成例を示すブロック図である。同図に示すように、本実
施の形態は、タスク切り替えを行うタスクディスパッチ
ャ101と、メモリプール管理を行うメモリプール管理
102と、二次記憶ブロック使用状況管理を行う二次記
憶ブロック使用状況管理103とから構成されている。
ここで、メモリプールは実メモリであり、後述するタス
クメモリ(仮想的なメモリ)に割り当てられる。
ィスパッチャ101によるタスク切り替え時に、タスク
メモリ(予めアドレスを定めた仮想記憶として利用する
メモリ上の領域)を、次にディスパッチするタスクのも
のに切り替えるタスクメモリ切替手段111と、タスク
の終了時にそのタスクの保有するタスクメモリに使用し
ていた二次記憶のブロックを解放するタスクメモリ終了
手段112とにより構成されている。
に該当するメモリプールからメモリを確保する場合に、
タスクメモリに二次記憶のブロックを割り当てるタスク
メモリ確保手段113と、タスクメモリに該当するメモ
リプールにメモリを解放する場合に、タスクメモリに割
り当てられていた二次記憶のブロックを解放するタスク
メモリ解放手段114とから構成されている。
二次記憶のブロックの使用状況を管理するための二次記
憶ブロック確保手段115と、二次記憶ブロック解放手
段116とから構成されている。
ィングシステムは、ダイレクトモードで動作し、そのメ
モリ管理は、組み込み用のものに多く見られるメモリプ
ール方式によるものであるとする(例えば、μITRO
N(IndustrialTRON(The Real
time Operating system Nuc
leus))等)。つまり、メモリ(RAM(rand
om accessmemory))は、いくつかのメ
モリプールと呼ばれるアドレスの連続した領域に分割し
て管理され、ユーザ(アプリケーションプログラム(以
下では、適宜、アプリケーションと記載する))は、ど
の領域からメモリを確保するかをメモリプールのIDに
て指定する。本実施の形態では、メモリの予め定めた所
定のアドレスの領域を各タスクに固有のメモリプールと
し、この領域をタスクスイッチ時に、二次記憶(例え
ば、フラッシュメモリ)に退避・回復することで、実装
メモリ容量以上のメモリをアプリケーションが利用する
ことができるようにするものである。このアプリケーシ
ョンは、複数のタスクによって構成される場合がある。
は、二次記憶の入出力単位である所定の入出力サイズ
(1度の入出力で読み書きできるサイズ)のブロックに
分割され、各ブロックは、各ブロックを一意に示すブロ
ックIDで管理されている。二次記憶への入出力は、こ
のブロックIDを指定してダイレクトに行うことができ
るものとする。以下では、各ブロックの大きさをブロッ
クサイズと記載する。
状況(「使用中」又は「空き」)を管理するために、図
3に示すような二次記憶使用状況テーブル(二次記憶の
各ブロックの使用状況を表すテーブル)を用いる。図3
は、二次記憶使用状況テーブルの例を示している。図3
に示した例の場合、例えば、ブロック番号#1は「使用
中」であり、ブロック番号#3は「空き」であることが
示されている。
記憶)として利用される実メモリは、図4に示すよう
に、退避・回復する二次記憶のブロックに対応させるた
め、二次記憶のブロックサイズと同一のサイズで分割さ
れ、各ブロックにブロック番号が付与され、ブロック番
号によって管理される。
次記憶のどのブロックに退避されているのかを示すブロ
ックマッピングテーブルの例を示している。この例の場
合、実メモリのブロック番号#1のブロックは、二次記
憶のブロック番号#12のブロックに対応し、実メモリ
のブロック番号#2のブロックは、二次記憶のブロック
番号#39のブロックに対応し、実メモリのブロック番
号#3のブロックは、二次記憶のブロック番号#22の
ブロックに対応し、実メモリのブロック番号#4のブロ
ックは、二次記憶のブロック番号#8のブロックに対応
し、実メモリのブロック番号Nのブロックは、二次記憶
のブロック番号Xのブロックに対応している。
次記憶の使用状態を管理するための1つの二次記憶使用
状況テーブル605と、タスクメモリ域の実メモリの各
ブロックに二次記憶のどのブロックの情報が載っている
かを示す実メモリ状態を管理するための1つのブロック
マッピングテーブル601と、各タスクにおけるタスク
メモリの各ブロックが二次記憶のどのブロックに退避さ
れているかを管理するための各タスク毎に設けられたブ
ロックマッピングテーブル602乃至604が用いられ
る。
レーティングシステム起動時に、全ブロックが「空き」
として初期化される。また、実メモリのブロックマッピ
ングテーブル601は、オペレーティングシステム起動
時に、全ブロックが「0」として初期化される。また、
タスク毎のブロックマッピングテーブル602乃至60
4は、各タスクの生成時に作成され、全ブロックが
「0」として初期化される。
参照して、本実施の形態の全体の動作について詳細に説
明する。
タスクメモリ切り替え処理について説明する。オペレー
ティングシステムのタスクの切り替え時、図1のタスク
ディスパッチャ101においては、タスクメモリ切替手
段111が、タスクメモリを、次にディスパッチするタ
スクのものに切り替える。以下では、図6に示すよう
に、カレントタスクが「タスク1」であった状態から、
カレントタスクが「タスク2」である状態に切り替える
場合のタスクメモリ切替手段111の動作について、図
7のフローチャートを参照して説明する。
グテーブル602を得る(ステップ701)。次に、ブ
ロックマッピングテーブル602に登録されているブロ
ックを、次の手順で二次記憶に退避する。まず、ステッ
プ702において、タスク1のブロックマッピングテー
ブル602の全エントリについて、ステップ703,7
04の処理が繰り返し実行されるように制御される。即
ち、タスク1のブロックマッピングテーブル602の全
エントリについて、ステップ703,704の処理が実
行されたか否かが判定される。その結果、タスク1のブ
ロックマッピングテーブル602の全エントリについ
て、ステップ703,704の処理が実行されていない
と判定された場合、ステップ703に進む。
ロックマッピングテーブル602の各エントリ(タスク
1のタスクメモリ域の実メモリの各ブロック)について
順番に、対応する二次記憶のブロックのブロック番号が
0でないか否かが判定される。その結果、対応する二次
記憶のブロックのブロック番号が0であると判定された
場合、ステップ702に戻り、ステップ702以降の処
理が繰り返し実行される。一方、対応する二次記憶のブ
ロックのブロック番号が0ではないと判定された場合、
そのタスクメモリ域の実メモリの上記ブロックのデータ
を、対応する二次記憶のブロック番号のブロックにWR
ITEする(ステップ704)。
の例では、実メモリのブロック1乃至3に対応する二次
記憶のブロック番号が0ではないので、実メモリのブロ
ック1乃至3のメモリ内容を、それぞれ二次記憶のブロ
ック番号#3、#5、#8のブロックにWRITEす
る。即ち、実メモリのブロック1のメモリ内容を二次記
憶のブロック番号#3のブロックにWRITEし、実メ
モリのブロック2のメモリ内容を二次記憶のブロック番
号#5のブロックにWRITEし、実メモリのブロック
3のメモリ内容を二次記憶のブロック番号#8のブロッ
クにWRITEする。
のブロックマッピングテーブル602の全エントリにつ
いて、ステップ703,704の処理が実行されたと判
定された場合、ステップ705に進む。
スク2のメモリ内容を回復する。まず、タスク2のブロ
ックマッピングテーブル603を得る(ステップ70
5)。次に、ブロックマッピングテーブル603に登録
されているブロックを、次の手順で二次記憶から回復す
る。まず、ステップ706において、タスク2のブロッ
クマッピングテーブルの全エントリについて、ステップ
707以降の処理が繰り返し実行されるように制御され
る。即ち、タスク2のブロックマッピングテーブルの全
エントリについて、ステップ707以降の処理が実行さ
れたか否かが判定される。その結果、タスク1のブロッ
クマッピングテーブルの全エントリについて、ステップ
707以降の処理が実行されていないと判定された場
合、ステップ707に進む。
ロックマッピングテーブルの各エントリ(タスク2のタ
スクメモリ域の実メモリの各ブロック)について順番
に、対応する二次記憶のブロックのブロック番号が0で
ないか否かが判定される。その結果、対応する二次記憶
のブロックのブロック番号が0であると判定された場
合、ステップ706に戻り、ステップ706以降の処理
が繰り返し実行される。一方、対応する二次記憶のブロ
ックのブロック番号が0ではないと判定された場合、ス
テップ708に進む。
ロックマッピングテーブル603の各ブロックに対応す
る二次記憶のブロックのブロック番号と、実メモリのブ
ロックマッピングテーブル601の各ブロックに対応す
る二次記憶のブロックのブロック番号とが等しいか否か
が、タスク2のブロックマッピングテーブル603の各
ブロックについて順番に判定される。その結果、タスク
2のブロックマッピングテーブル603の各ブロックに
対応する二次記憶のブロックのブロック番号と、実メモ
リのブロックマッピングテーブル601の各ブロックに
対応する二次記憶のブロックのブロック番号とが等しい
と判定された場合、ステップ706に戻り、ステップ7
06以降の処理が繰り返し実行される。
ブル603の各ブロックに対応する二次記憶のブロック
のブロック番号と、実メモリのブロックマッピングテー
ブル601の各ブロックに対応する二次記憶のブロック
のブロック番号とが等しくない(異なる)と判定された
場合、タスク2のブロックマッピングテーブル603の
対応する二次記憶のブロック番号のブロックのデータを
READし、実メモリの対応するブロックに書き込む
(ステップ709)。このとき、実メモリのブロックマ
ッピングテーブル601の対応する二次記憶のブロック
番号をREADしたブロックのブロック番号に更新する
(ステップ710)。その後、ステップ706に戻り、
ステップ706以降の処理が繰り返し実行される。ま
た、ステップ706において、タスク2のブロックマッ
ピングテーブル603の全エントリについてステップ7
07乃至710の処理が実行されたと判定された場合、
本処理を終了する。
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について
はそのままとする。
明する。タスクの終了時には、オペレーティングシステ
ムのタスクのターミネータは、タスクメモリ終了手段1
12(図1)を用いて、当該タスクのタスクメモリを解
放する。以下、図8のフローチャートを参照して、タス
クメモリ終了手段112の動作について、「タスク1」
を終了させる場合を例に説明する。
グテーブル602を得る(ステップ801)。次に、ブ
ロックマッピングテーブル602に登録されているブロ
ックを次の手順で解放する。まず、ステップ802にお
いて、タスク1のブロックマッピングテーブル602の
全エントリについて、ステップ803,804の処理が
繰り返し実行されるように制御される。即ち、タスク1
のブロックマッピングテーブル602の全エントリにつ
いて、ステップ803,804の処理が実行されたか否
かが判定される。その結果、タスク1のブロックマッピ
ングテーブル601の全エントリについて、ステップ8
03,804の処理が実行されていないと判定された場
合、ステップ803に進む。
ロックマッピングテーブル601の各エントリ(タスク
1のタスクメモリ域の実メモリの各ブロック)について
順番に、対応する二次記憶のブロックのブロック番号が
0でないか否かが判定される。その結果、対応する二次
記憶のブロックのブロック番号が0であると判定された
場合、ステップ802に戻り、ステップ802以降の処
理が繰り返し実行される。一方、対応する二次記憶のブ
ロックのブロック番号が0ではないと判定された場合、
二次記憶ブロック解放手段116(図1)は、その二次
記憶のブロック番号のブロックを解放する(ステップ8
04)。
のブロックマッピングテーブル601の全エントリにつ
いて、ステップ803,804の処理が実行されたと判
定された場合、本処理を終了する。
602の例では、ブロック1乃至3に対応する二次記憶
のブロック番号が0でないので、これらのブロックに対
応するブロック番号#3、#5、#8の二次記憶のブロ
ックを解放する。
明する。タスクがメモリプールよりメモリを確保すると
き、オペレーティングシステムのメモリプール管理10
2(図1)は、指定メモリプールがタスクメモリの場
合、即ち、指定メモリプールが、複数のタスクのタスク
メモリに従って二次記憶がマッピングされるメモリプー
ルの一部である場合、確保したメモリの含まれるブロッ
クをタスクメモリ確保手段113(図1)を用いて確保
する。以下、図9のフローチャートを参照して、タスク
メモリ確保手段113の動作について、「タスク1」が
メモリを確保する場合を例に説明する。
から、対応するメモリのブロック番号を得る(オペレー
ティングシステムのメモリプールの空き管理の方法によ
っては、空きメモリ上に空きエリアを管理するためのポ
インタを格納するものがあり、この場合には、このポイ
ンタを格納するためのエリアも含めて、使用するメモリ
すべてを「確保対象」とする必要がある。しかし、本実
施の形態におけるオペレーティングシステムは、このよ
うな管理は行っておらず、純粋に確保メモリのみに注目
すればよいオペレーティングシステムであるとする)。
その確保位置や大きさによって、複数ブロックにまたが
ることもあり、この場合は、複数のブロック番号を得る
(ステップ901)。
ブル602を得る(ステップ902)。次に、ステップ
901で得た各ブロック番号について、ステップ904
乃至906の処理が実行されるように制御される(ステ
ップ903)。即ち、ステップ901において得られた
全ブロック番号について、ステップ904乃至906の
処理が実行されたか否かが判定される。その結果、全ブ
ロック番号について、ステップ904乃至906の処理
が実行されていないと判定された場合、ステップ904
に進む。
ロックマッピングテーブル602において二次記憶のブ
ロック番号が0であるか否かが判定される。その結果、
タスク1のブロックマッピングテーブル602に対応す
る二次記憶のブロック番号が0ではないと判定された場
合、ステップ903に戻り、ステップ903以降の処理
が繰り返し実行される。一方、タスク1のブロックマッ
ピングテーブル602に対応する二次記憶のブロック番
号が0であると判定された場合、ステップ905に進
む。
ック確保手段115(図1)は、二次記憶の所定のブロ
ック番号のブロックを確保して、タスク1のブロックマ
ッピングテーブル602に当該ブロック番号を、対応す
る二次記憶ブロック番号として格納する(ブロックマッ
ピングテーブル602のエントリに記入する)。また、
実メモリのブロックマッピングテーブル601にも、当
該ブロック番号を対応する二次記憶ブロック番号として
格納する(ブロックマッピングテーブル601のエント
リにも記入する)(ステップ906)。その後、ステッ
プ903に戻り、ステップ903以降の処理が繰り返し
実行される。
の全ブロック番号について、ステップ904乃至906
の処理が実行されたと判定された場合、本処理を終了す
る。
ついて説明する。タスクがメモリプールにメモリを解放
するとき、オペレーティングシステムのメモリプール管
理102(図1)は、指定メモリプールがタスクメモリ
の場合、解放したメモリの含まれるブロックをタスクメ
モリ解放手段114(図1)を用いて解放する。以下、
図10のフローチャートを参照して、タスクメモリ解放
手段114の動作について、「タスク1」がメモリを解
放する場合を例に説明する。
るメモリのブロック番号を得る。その解放位置や大きさ
によって、複数ブロックが未使用となることもあり、こ
の場合は、複数のブロック番号を得る(ステップ100
1)。次に、タスク1のブロックマッピングテーブル6
02を得る(ステップ1002)。次に、ステップ10
01において得られた全ブロック番号について、ステッ
プ1004及びステップ1005の処理が実行されるよ
うに制御される(ステップ1003)。
クマッピングテーブル602において対応する二次記憶
のブロック番号が0でないか否かが判定される。その結
果、ブロックマッピングテーブル602において対応す
る二次記憶のブロック番号が0であると判定された場
合、ステップ1003に戻り、ステップ1003以降の
処理が繰り返し実行される。一方、ブロックマッピング
テーブル602において対応する二次記憶のブロック番
号が0でないと判定された場合、ステップ1005に進
む。
ロック解放手段116(図1)は、ブロックマッピング
テーブル602において対応する二次記憶のブロック番
号のブロックを解放して、タスク1のブロックマッピン
グテーブル602の当該ブロックの二次記憶のブロック
番号を0とする。
(図1)の動作手順について、図11のフローチャート
を参照して説明する。まず、二次記憶使用状況テーブル
605を得る(ステップ1101)。次に、二次記憶使
用状況テーブル605の使用状況が「空き」のものを検
索する(ステップ1102)。
憶使用状況テーブル605の使用状況が「空き」のブロ
ックが見つかったか否かが判定される。その結果、「空
き」が見つからなかった場合、メモリ空間不足のエラー
とする(ステップ1105)。一方、「空き」が見つか
った場合、二次記憶使用状況テーブル605の「空き」
のブロックを「使用中」に変更し、当該ブロック番号を
タスクメモリ確保手段113に返す(ステップ110
4)。ステップ1104又はステップ1105の処理が
終了すると、本処理を終了する。
(図1)の動作手順について、図12のフローチャート
を参照して説明する。まず、二次記憶使用状況テーブル
605を得る(ステップ1201)、次に、タスクメモ
リ解放手段114によって解放指定されたブロックに対
応するエントリの使用状況を「空き」に変更する(ステ
ップ1202)。その後、本処理を終了する。
り、次にような効果を得ることができる。即ち、組み込
みソフトウェアの性能を維持したまま、大容量のメモリ
を必要とするアプリケーションの実行環境も共存させる
ことができることである。その理由は、ダイレクトモー
ドで動作するオペレーティングシステム上で、必要なタ
スクには部分的に仮想記憶に近い機能を提供することが
でき、この部分はタスク毎に多重に情報を保持すること
ができるためである。即ち、複数のタスクが実メモリの
所定のメモリ空間を共有することができる。これによ
り、ダイレクトモードで動作しながら、部分的にメモリ
を多重に持つことができる。
ついて説明する。本実施の形態は、先に挙げた実施の形
態における、実メモリ状態を表すブロックマッピングテ
ーブル601を持たないものである。先に挙げた実施の
形態では、この実メモリ状態を表すブロックマッピング
テーブル601にて実際のメモリ上の内容を管理し、タ
スク切り替え時に、切り替えた後のタスクが使用するデ
ータと同一のデータが実メモリに残っている場合には、
再度、二次記憶より回復することを防いでいる。本実施
の形態では、この処理を省略し、実装を簡略化したもの
である。
おける以下の処理、即ち、図7のフローチャートに示し
たタスクメモリ切替手段111の動作において、実メモ
リに、いま回復しようとするブロックのデータが残って
いるか否かを検査する処理(ステップ708)と、回復
したブロックのブロック番号を実メモリのブロックマッ
ピングテーブル601に格納する処理(ステップ71
0)と、図9のフローチャートに示したタスクメモリ確
保手段113の動作において、確保したブロックのブロ
ック番号を実メモリのブロックマッピングテーブル60
1に格納する処理(ステップ906)とを省略したもの
である。本実施の形態においても、先の実施の形態の場
合と同様の効果を奏する。
グラムは、CD−ROM(compact disc
read only memory)、DVD(dig
ital versatile disc)、フロッピ
ー(登録商標)ディスク、メモリカード等の様々な記録
媒体に記録して提供することができる。そして、そのプ
ログラムは、コンピュータの動作を制御し、プログラム
制御されたそのコンピュータが上記プログラムにより指
令される所定の処理を実行する。
であって、本発明の趣旨を逸脱しない範囲で適宜変更す
ることができることは言うまでもない。
によれば、メモリの少なくとも一部分を、各タスク毎に
二次記憶にマッピングし、タスクの切り替え時に、切り
替え前のタスクが使用していたメモリの内容を、メモリ
に対応する二次記憶のマッピング先に退避し、切り替え
後のタスクが使用するメモリの内容を、メモリに対応す
る二次記憶のマッピング先から回復するようにしたの
で、ダイレクトモードで動作するオペレーティングシス
テム上で、実装メモリ容量以上のメモリをアプリケーシ
ョンが利用することができ、大容量のデータ処理を行う
アプリケーションの実行が可能となる。
ィングシステムの一実施の形態の構成例を示すブロック
図である。
る。
る。
タスクのブロックマッピングテーブルと、二次記憶使用
状況テーブルの対応関係を示す図である。
のフローチャートである。
のフローチャートである。
のフローチャートである。
めのフローチャートである。
るためのフローチャートである。
るためのフローチャートである。
Claims (7)
- 【請求項1】 メモリと二次記憶とを備え、ダイレクト
モードで動作するオペレーティングシステムによって複
数のタスクの実行が制御される情報処理装置における仮
想記憶方法であって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
次記憶にマッピングするマッピングステップと、 前記タスクの切り替え時に、切り替え前の前記タスクが
使用していた前記メモリの内容を、前記メモリに対応す
る前記二次記憶のマッピング先に退避する退避ステップ
と、 切り替え後の前記タスクが使用する前記メモリの内容
を、前記メモリに対応する前記二次記憶のマッピング先
から回復する回復ステップとを備えることを特徴とする
仮想記憶方法。 - 【請求項2】 前記メモリの一部分と前記二次記憶は、
それぞれ所定の大きさのブロックに分割され、各ブロッ
クに振られたブロック番号で管理されることを特徴とす
る請求項1に記載の仮想記憶方法。 - 【請求項3】 前記メモリの一部分の各ブロックと、各
ブロックがマッピングされた前記二次記憶のブロックと
の対応関係を示すメモリマッピングテーブルに基づい
て、前記タスク切り替え時の前記メモリの退避及び回復
がブロック単位で行われることを特徴とする請求項2に
記載の仮想記憶方法。 - 【請求項4】 各タスク毎に仮想的に設けられたタスク
メモリは、所定の大きさの前記ブロックに分割され、各
ブロックに振られたブロック番号で管理され、前記タス
クメモリの各ブロックと、各ブロックがタスク毎にマッ
ピングされた前記二次記憶のブロックとの対応関係を示
すタスクメモリマッピングテーブルに基づいて、タスク
切り替え時に、前記メモリマッピングテーブルの内容
が、切り替え後の前記タスクのタスクマッピングテーブ
ルの内容で書き換えられることを特徴とする請求項3に
記載の仮想記憶方法。 - 【請求項5】 前記二次記憶の各ブロックの使用状況を
示す使用状況テーブルに基づいて、前記二次記憶に空き
があるとき、前記タスクメモリが前記二次記憶にマッピ
ングされることを特徴とする請求項4に記載の仮想記憶
方法。 - 【請求項6】 メモリと二次記憶とを備え、ダイレクト
モードで動作するオペレーティングシステムによって複
数のタスクの実行が制御される情報処理装置であって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
次記憶にマッピングするマッピング手段と、 前記タスクの切り替え時に、切り替え前の前記タスクが
使用していた前記メモリの内容を、前記メモリに対応す
る前記二次記憶のマッピング先に退避する退避手段と、 切り替え後の前記タスクが使用する前記メモリの内容
を、前記メモリに対応する前記二次記憶のマッピング先
から回復する回復手段とを備えることを特徴とする情報
処理装置。 - 【請求項7】 メモリと二次記憶とを備え、ダイレクト
モードで動作するオペレーティングシステムによって複
数のタスクの実行が制御される情報処理装置における仮
想記憶制御プログラムであって、 前記メモリの少なくとも一部分を、各タスク毎に前記二
次記憶にマッピングするステップと、 前記タスクの切り替え時に、切り替え前の前記タスクが
使用していた前記メモリの内容を、前記メモリに対応す
る前記二次記憶のマッピング先に退避するステップと、 切り替え後の前記タスクが使用する前記メモリの内容
を、前記メモリに対応する前記二次記憶のマッピング先
から回復するステップとを前記情報処理装置に実行させ
る仮想記憶制御プログラム。
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)
| 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 | 恒生电子股份有限公司 | 数据访问处理方法、装置、设备、存储介质及程序产品 |
-
2001
- 2001-04-27 JP JP2001130734A patent/JP2002328811A/ja active Pending
Cited By (2)
| 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 |