JP2007156702A - オペレーティングシステム - Google Patents
オペレーティングシステム Download PDFInfo
- Publication number
- JP2007156702A JP2007156702A JP2005349308A JP2005349308A JP2007156702A JP 2007156702 A JP2007156702 A JP 2007156702A JP 2005349308 A JP2005349308 A JP 2005349308A JP 2005349308 A JP2005349308 A JP 2005349308A JP 2007156702 A JP2007156702 A JP 2007156702A
- Authority
- JP
- Japan
- Prior art keywords
- ram
- target
- swap
- discarded
- storage area
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】少ないメモリ使用量で高速にアプリケーションプログラムの実行を行なうオペレーティングシステムを得ること。
【解決手段】ROM上に格納されたアプリケーションプログラムをRAM上にロードして実行し、RAM内の記憶領域が不足した際にはRAM内の記憶領域を開放してアプリケーションプログラムの継続処理を行なう情報処理装置100において、RAM5内の記憶領域が不足した際に、プロセスの中の所定の対象をディスク装置9に退避させるとともにプロセスの中の所定の対象をRAM5上から廃棄させてRAM5内の記憶領域を開放し、退避させた対象または廃棄させた対象を含むプロセスを再実行する際には、退避させた対象をディスク装置9からRAM5上に回復させるとともに廃棄させた対象をROM3上から再ロードさせてプロセスを再実行する記憶領域制御部を備える。
【選択図】 図2
【解決手段】ROM上に格納されたアプリケーションプログラムをRAM上にロードして実行し、RAM内の記憶領域が不足した際にはRAM内の記憶領域を開放してアプリケーションプログラムの継続処理を行なう情報処理装置100において、RAM5内の記憶領域が不足した際に、プロセスの中の所定の対象をディスク装置9に退避させるとともにプロセスの中の所定の対象をRAM5上から廃棄させてRAM5内の記憶領域を開放し、退避させた対象または廃棄させた対象を含むプロセスを再実行する際には、退避させた対象をディスク装置9からRAM5上に回復させるとともに廃棄させた対象をROM3上から再ロードさせてプロセスを再実行する記憶領域制御部を備える。
【選択図】 図2
Description
本発明は、ROM化されたアプリケーションプログラムを実行するオペレーティングシステムに関するものである。
近年、インターネット等の通信ネットワークの発展に伴い、携帯情報機器やデジタル家電等の情報機器を通信ネットワークに接続して動作させる技術の開発が進められている。このような情報機器には、例えば組み込みLinux(登録商標)等の共通化されたオペレーティングシステム(以下、OSという)を搭載させ、このOSを用いて所定の動作を実行させている。
組み込みLinuxシステム等のOSでは、仮想記憶をサポートしており、物理メモリサイズを超えたメモリ空間を使用することができる。すなわち、携帯情報機器等のアプリケーションプログラムを実行する際に、アプリケーションプログラムを動作させるための空きメモリ領域が不足すると、カーネル(OS)はRAM(Random Access Memory)内のプロセスをスワップアウトさせている。これにより、アプリケーションプログラムを動作させるための空きメモリ領域を確保(開放)し、アプリケーションプログラムによる処理を継続させている。このとき、スワップアウトされたプロセス(ページ)は、スワップキャッシュおよび二次記憶装置(ハードディスク等)に退避され、必要に応じてRAMにスワップインして使用されることとなる(非特許文献1,2参照)。
ところで、フラッシュメモリ等のROM上に置かれたプログラムコードをそのまま実行する技術として、XIP(eXecute In Place)技術がある。このXIPは、ROM上に置かれたプログラムコードをそのまま実行することによって、主記憶(RAM)上のメモリフットプリントの低減や、ROM(Read Only Memory)から主記憶へのプログラムコードのコピー時間の低減によるプログラム起動時間の短縮を目的としている。
XIPには、アプリケーションXIPやカーネルXIPがあり、アプリケーションXIPは、組み込みLinuxにおいてROM化されたアプリケーションプログラムの起動を高速化するために使用されている。このアプリケーションXIPは、MMU(Memory Management Unit)を備えていないプロセッサ上で動作させるための小規模な組み込みLinuxにおいてFLATバイナリ(オブジェクトフォーマット)を利用することで、ダイナミックリンクに伴うリロケーションの解決を行なわず高速にプログラムを起動させることを可能としている(非特許文献3参照)。
"4.メモリ管理"、[online]、January 25,1999、The Linux Kernel David A Rusling david.rusling@arm.com、[平成17年11月8日検索]、インターネット<URL:http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-4.html>
"Linux V2.4 カーネル内部解析報告 ドラフト 第4版"、[online]、高橋浩和、[平成17年11月8日検索]、インターネット<URL:http://japan.linux.com/kernel/internal24/index.shtml>
"XIPでアプリケーションを実行"、[online]、Armadillo Official Site、[平成17年11月8日検索]、インターネット<URL:http://armadillo.atmark-techno.com/armadillo-j/memo/eXecuteInPlace>
しかしながら、上記前者の従来技術では、スワップ処理によるページアウト、ページインのオーバヘッドが非常に大きく、PC(Personal Computer)やワークステーション等においてスワップが発生すると、性能が大きく低下する場合があるといった問題があった。これは、スワップ対象となるページの探索に時間を要するのに加え、二次記憶装置へのアクセスに多くの時間を費やすことが原因となっている。スワップによる性能低下を軽減する方法として、物理的に大容量な主記憶メモリを情報機器に搭載させてスワッピングの発生を回避させる方法や高速な二次記憶デバイスを主記憶メモリに接続させる方法があるが、組み込み機器の製造コストが高くなるといった問題があった。
また、上記後者の従来技術では、アプリケーションプログラムの起動を高速化させることはできるが、アプリケーションプログラムの実行速度を高速化できないといった問題があった。
本発明は、上記に鑑みてなされたものであって、少ないメモリ使用量で高速にアプリケーションプログラムの実行を行なうオペレーティングシステムを得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ROM上に格納されたアプリケーションプログラムをRAM上にロードして実行し、RAM内の記憶領域が不足した際には前記RAM内の記憶領域を開放して前記アプリケーションプログラムの継続処理を行なうオペレーティングシステムにおいて、前記RAM上で実行される所定のプロセスのうち外部記憶装置に退避させる対象と前記RAM上から廃棄させる対象とを判別する対象判別部と、前記RAM内の記憶領域が不足した際に、前記対象判別部の判別結果に基づいて前記プロセスの中の所定の対象を前記外部記憶装置に退避させるとともに前記プロセスの中の所定の対象を前記RAM上から廃棄させて前記RAM内の記憶領域を開放し、前記退避させた対象または廃棄させた対象を含むプロセスを再実行する際には、前記退避させた対象を前記外部記憶装置から前記RAM上に回復させるとともに前記廃棄させた対象を前記ROM上から再ロードさせて前記プロセスを再実行する記憶領域制御部と、を備えることを特徴とする。
この発明によれば、RAM内の記憶領域が不足した際に、所定の対象を外部記憶装置に退避させるとともに所定の対象をRAM上から廃棄させてRAM内の記憶領域を開放し、プロセスを再実行する際には、退避させた対象を外部記憶装置からRAM上に回復させるとともに廃棄させた対象をROM上から再ロードさせてプロセスを再実行するので、少ないメモリ使用量で高速にアプリケーションプログラムの実行を行なうことが可能になるという効果を奏する。
以下に添付図面を参照して、本発明に係るオペレーティングシステムの好適な実施の形態を説明する。なお、以下では、本発明に係るオペレーティングシステムの概要および特徴を説明した後に、本実施の形態1,2に係るオペレーティングシステムを説明する。なお、この実施の形態によりこの発明が限定されるものではない。
まず、本発明にかかるオペレーティングシステム(以下、OSという)の概念について説明する。図1は、本発明にかかるOSの概念を説明するための図である。ここでのOS(カーネル)20は、例えばスワップアウトが発生しない程度の大容量な主記憶(RAM)を搭載しない携帯情報端末等の組み込み機器製品(後述する情報処理装置100)に搭載されるものであり、図示しないCPU(Central Processing Unit)等を用いて情報処理装置100内のROM3やRAM5を制御する。
OS20は、ソースコードが公開されているオペレーティングシステムの1つでありUNIX(登録商標)に準じたOS(例えばLinux(登録商標))である。すなわち、情報処理装置100は、例えばLinuxシステムとして機能し、OS20によってROM化されたアプリケーションプログラム31の実行を行なう。
OS20は、ユーザによる入力手段(図示せず)からの入力によって、ROM3に格納されるアプリケーションプログラム31を読み出してRAM5内のプログラム格納領域に展開して各種処理を実行する。OS20は、この処理に際して生じる各種データやコードをRAM5内に形成されるデータ格納領域に一時的に記憶させ、アプリケーションプログラム31に基づく処理を実行する。
また、OS20は、仮想記憶をサポートしており、物理メモリサイズを超えたメモリ空間を使用可能な構成となっている。すなわち、OS20は、アプリケーションプログラム31を実行する際にアプリケーションプログラム31を動作させるための空きメモリ領域がRAM5内で不足すると、RAM5上にロードされているプロセス(データやコード)の中からアクセス頻度の低いプロセスを抽出し、スワップアウトさせる機能(後述のkswapdデーモン)を有している。これにより、OS20は、アプリケーションプログラム31を動作させるための空きメモリ領域をRAM5内に確保し、アプリケーションプログラム31による処理を継続させる。
OS20は、まずROM3内に格納されているアプリケーションプログラム31をRAM5にロードし(1)、アプリケーションプログラム31の実行を開始する。OS20は、アプリケーションプログラム31の実行中に、RAM5の空きメモリ領域が不足しているか否かを判断(検出)している。OS20が、RAM5の空きメモリ領域が不足していることを検出すると(2)、RAM5上にロードされているプロセスの中からスワップアウトの対象(候補)となるアクセス頻度の低いプロセスを例えばページ毎に抽出する。ここでのOS20は、スワップアウトの対象となるプロセスのうち、データの書き換えが行なわれていない部分として例えばコード領域を抽出する(3)。
そして、OS20は抽出したコード領域をRAM5内から廃棄させる(4)。また、OS20は、スワップアウトの対象となるプロセスのうち、廃棄しなかった部分(データの書き換えが行なわれた例えばデータ領域)をディスク装置9等の外部記憶装置にスワップアウト(退避)させる(5)。
この後、スワップアウトの対象となったプロセス(コード)を再度RAM5上にロードする必要が生じると、OS20は廃棄したコード領域をROM3から再ロードする(6)。一方、スワップアウトの対象となったプロセスのうち、ディスク装置9にスワップアウトさせたデータ領域に対しては、ディスク装置9からスワップイン(回復)させる(7)。これにより、OS20は、スワップアウトの対象となったプロセスのメモリイメージをRAM5上に復元する。
このように、スワップアウトの対象となったプロセスのうちデータの書き換えが行なわれていない部分を廃棄し、廃棄した部分を含むプロセスをRAM5上に再ロードする際には、ROM3から再ロードするので、ROM3上のアプリケーションプログラム31を高速に実行することが可能となる。
実施の形態1.
つぎに、図2および図3に従って実施の形態1にかかるOS(後述する制御部1)を備えた情報処理装置について説明する。図2は、実施の形態1にかかるOSを備えた情報処理装置の構成を示すブロック図である。情報処理装置100は、制御部1、ROM3、RAM5、スワップキャッシュ7、ディスク装置9を備えている。
つぎに、図2および図3に従って実施の形態1にかかるOS(後述する制御部1)を備えた情報処理装置について説明する。図2は、実施の形態1にかかるOSを備えた情報処理装置の構成を示すブロック図である。情報処理装置100は、制御部1、ROM3、RAM5、スワップキャッシュ7、ディスク装置9を備えている。
ROM3は、フラッシュメモリ等の記憶手段であり、アプリケーションプログラム31を記憶する。ROM3は、cramfs、romfs、jffs2等のファイルシステムを格納しており、これらのファイルシステムのファイルシステムフォーマットによってアプリケーションプログラム31を格納している。このROM3内のファイルシステムによって、アプリケーションプログラム31はマウントし、実行可能となっている。
RAM5は、ROM3に格納されるアプリケーションプログラム31をRAM5内のプログラム格納領域に展開し、アプリケーションプログラム31に基づく各種処理を実行する。RAM5は、アプリケーションプログラム31を実行する際に生じる各種データやコードをデータ格納領域に一時的に記憶させておく。
スワップキャッシュ7は、アプリケーションプログラム31を動作させるための空きメモリ領域がRAM5内で不足すると、RAM5上にロードされているプロセス(データやコード)の中からアクセス頻度の低いプロセスを一時的に格納する。
ディスク装置9は、スワップキャッシュ7に格納されているプロセスの中でアクセス頻度の低いプロセスをスワップファイルとして一時的に格納する記憶手段(ハードディスクドライブ等の2次記憶装置)である。
スワップキャッシュ7やディスク装置9は、制御部1がスワップアウト(ページアウト)対象として選択したRAM5内の所定のプロセスを例えばページ毎やプロセス毎に記憶し、制御部1からの指示に基づいて記憶していたプロセスをRAM5にスワップイン(ページイン)する。
制御部1は、ROM3、RAM5、スワップキャッシュ7、ディスク装置9を制御する。制御部1は、図示しないOS(前述のOS20)やCPUを備えて構成され、ROM3からRAM5へアプリケーションプログラム31をロードしてアプリケーションプログラム31を実行する。
制御部1は、アプリケーションプログラム31の実行中に、アプリケーションプログラム31を動作させるための空きメモリ領域がRAM5内で不足したか否かを判定する機能を有している。制御部1は、RAM5の空きメモリ領域が不足していると判断すると、RAM5上にロードされているプロセスの中からアクセス頻度の低いプロセス(ページ等)を、ディスク装置9やスワップキャッシュ7へのスワップアウト対象(候補)として抽出する。
本実施の形態1にかかる制御部1は、スワップ判定部(対象判別部)11、スワップフラグ(記憶部)12、スワップ処理部(記憶領域制御部)13を備えている。スワップ判定部11は、アプリケーションプログラム31をRAM5にロードした際に、RAM5の空きメモリ領域の不足時にディスク装置9やスワップキャッシュ7へスワップアウトさせるもの(スワップアウトする属性)と、RAM5から廃棄(削除)させるもの(スワップアウトしない属性)とをプロセスのタスク毎やページ毎等に判定する。この判定結果は、スワップフラグ12に設定しておく。
本実施の形態1では、スワップ判定部11は、例えばRAM5内のプロセス(ページ等)がデータである場合に、RAM5の空きメモリ領域を確保するためスワップアウトすると判定し、RAM5内のプロセスがコードである場合に、RAM5から廃棄させると判定する。すなわち、スワップ判定部11は、RAM5上で書き換えの行なわれるデータに対してはアプリケーションプログラム31の実行を継続させるためにRAM5の空きメモリ領域の不足時にスワップアウトすると判定し、RAM5上で書き換えの行なわれないコードに対してはRAM5の空きメモリ領域の不足時にRAM5上から廃棄すると判定する。
また、スワップ判定部11は、RAM5でスワップアウトされたもの(プロセス)や廃棄されたものの中から再度RAM5上に展開する必要が生じると(以下、再実行処理という)、ディスク装置9やスワップキャッシュ7からスワップインさせるものと、ROM3から再ロードするものとを判定する。スワップ判定部11は、スワップフラグ12に基づいて、ディスク装置9やスワップキャッシュ7からスワップインするかROM3から再ロードするかを判定する。
スワップフラグ12は、RAM5の空きメモリ領域を確保するためにスワップアウトするか否か(RAM5から廃棄させるか否か)を示すフラグである。このスワップフラグ12は、RAM5で実行されるプロセスのタスク毎やページ毎等に設定される。ここでのスワップフラグ12は、プロセス毎の「タスクフラグ」として、task_struct構造体(タスクの管理情報(ページ毎の情報))に追加する構成としてもよいし、ページ毎の「ページフラグ」としてページの管理情報に追加する構成としてもよい。
例えば、「スワップアウトしない属性」や「スワップアウトする属性」をタスクフラグ(スワップフラグ12)に設定した場合、設定されたプロセス全体がスワップアウトをするか否かの対象となる。また、「スワップアウトしない属性」や「スワップアウトする属性」をページフラグ(スワップフラグ12)に設定した場合、設定されたページのみがスワップアウトをするか否かの対象となる。
スワップ処理部13は、RAM5の空きメモリ領域が不足している場合に、スワップフラグ12の設定に基づいてRAM5内のプロセス(データやコード)をスワップアウトさせる処理又はRAM5から廃棄させる処理を行なう。すなわち、本実施の形態1のスワップ処理部13は、RAM5の空きメモリ領域が不足すると、例えばスワップ対象となるプロセスのうち、データをスワップアウトさせ、コードを廃棄する。
また、スワップ処理部13は、再実行処理の必要が生じると、スワップフラグ12に基づいて、データやコードをディスク装置9(スワップキャッシュ7)からスワップインする処理か又はROM3から再ロードする処理を行なう。すなわち、本実施の形態1のスワップ処理部13は、再実行処理が必要になると、再実行するプロセスのうち、例えばデータをスワップキャッシュ7等からスワップインさせ、コードをROM3から再ロードする。
なお、ここでのスワップ処理部13によるスワップアウトやスワップインは、kswapdデーモン等によって行なう。kswapdデーモンは、RAM5の空きメモリ領域を監視し、空きメモリ領域が不足すると、アクセス頻度の低いプロセスをスワップアウトして、RAM5内のページを開放する。また、kswapdデーモンは、スワップキャッシュ7やディスク装置9にスワップアウト(ページアウト)されたページをRAM5にスワップイン(ページイン)させる。これにより、スワップキャッシュ7やディスク装置9にスワップアウトされたページが読み出されて、RAM5上でマッピングされアプリケーションプログラム31の実行に使用される。
つぎに、実施の形態1にかかる情報処理装置の動作手順について説明する。図3は、実施の形態1にかかる情報処理装置の動作手順を示すフローチャートである。なお、ここではスワップアウトさせるか否かの判断単位やスワップ処理等の処理単位の一例として、スワップアウトさせるか否かの判断やスワップ処理をページ毎に行なう場合について説明する。
制御部1(OS)は、ROM3上のアプリケーションプログラム31をRAM5にロードして、アプリケーションプログラム31の実行処理を開始する(ステップS110)。スワップ判定部11は、アプリケーションプログラム31をRAM5にロードした際に、RAM5の空きメモリ領域の不足時にディスク装置9やスワップキャッシュ7へスワップアウトさせるページと、RAM5から廃棄させるページとを判定する。ここでは、まずRAM5の空きメモリ領域の不足時にデータ(ページ)をディスク装置9やスワップキャッシュ7へスワップアウトさせると判定する。
ところで、コード領域(コード)についても、アプリケーションプログラム31によっては、自己書き換えコードが使用される場合がある(例えばtrampoline等)。この場合、コードはアプリケーションプログラム31の実行中に書き換えられるため、スワップアウトを行なう必要がある。そこで、スワップ判定部11は、例えばtrampoline等の自己書き換えコード(書き換えの許されるコード部分)に対しては、RAM5の空きメモリ領域の不足時にディスク装置9等へスワップアウトさせると判断し、その他のコード(書き換えの許されないコード部分)に対しては廃棄すると判断する。換言すると、スワップ判定部11は、コードが書き換え可能か否かに基づいて、コードをスワップアウトさせるか廃棄させるかを判断する。
このスワップ判定部11による判定は、ページ毎に行なう。この判定結果(スワップアウトするか否か)は、スワップフラグ(ページフラグ)12に設定しておく(ステップS120)。
制御部1は、アプリケーションプログラム31の実行中に、RAM5の空きメモリ領域が不足しているか否か(空き状態)を判断する(ステップS130)。制御部1は、RAM5の空きメモリ領域が不足していることを検出すると(ステップS140、Yes)、RAM5上にロードされているプロセスの中からスワップアウトの対象となるアクセス頻度の低いプロセス(ページ)を抽出する。
スワップ処理部13は、抽出されたコード(ページ)が「スワップアウトする属性」であるか否かをスワップフラグ12に基づいて判断する(ステップS150)。スワップ処理部13は、抽出されたコードが「スワップアウトする属性」でない場合(ステップS150、No)、このコードをページ毎にRAM5から廃棄する(ステップS160)。
一方、抽出されたコードが「スワップアウトする属性」である場合(ステップS150、Yes)、スワップ処理部13は、このコードをページ毎にディスク装置9やスワップキャッシュ7へスワップアウトさせる(ステップS170)。
また、ここでは、抽出されたデータ(ページ)が「スワップアウトする属性」であるため、スワップ処理部13は、このデータをページ毎にディスク装置9やスワップキャッシュ7へスワップアウトさせる(ステップS180)。
この後、制御部1は、アプリケーションプログラム31の実行中に、再実行処理を行なう必要があるか否かを監視する。そして、再実行処理を行なう必要が生じると(ステップS190、Yes)、スワップ処理部13は再実行を行なうページ(コード)が「スワップアウトしない属性」であって廃棄されたものであるか否かをスワップフラグ12に基づいて判断する。
スワップ処理部13は、再実行を行なうコードがスワップフラグ12において「スワップアウトしない属性」に設定されている場合(「スワップアウトする属性」に設定されていない場合)(ステップS200、Yes)、このコードは廃棄されたものであるため、このコードをRAM5から再ロードする(ステップS210)。
一方、再実行を行なうコードがスワップフラグ12において「スワップアウトしない属性」に設定されていない場合(「スワップアウトする属性」に設定されている場合)(ステップS200、No)、このコードはスワップアウトしたものであるため、スワップ処理部13は、このコードをディスク装置9やスワップキャッシュ7からスワップインさせる(ステップS220)。
また、ここでは、再実行を行なうデータ(ページ)が「スワップアウトする属性」であるため、スワップ処理部13は、このデータをディスク装置9やスワップキャッシュ7からスワップインさせる(ステップS230)。これにより、制御部1は再実行処理の対象となったプロセスのメモリイメージをRAM5上に復元する。
ROM3へのアクセスはスワップキャッシュ7やディスク装置9へのアクセスよりも高速である。このため、ROM3内でROM化されたアプリケーションプログラム31の実行中にスワップが発生する状況において、ROM3から再ロード可能なメモリイメージはスワップキャッシュ7やディスク装置9へスワップアウトしてスワップインするよりも、再度ROM3からロードする方が高速にメモリイメージの復元を行なうことが可能となる。これは、ROM3(ROMデバイス)へのアクセス速度が、例えば数ナノ〜数十ナノ秒であるのに対し、スワップキャッシュ7やディスク装置9(ストレージデバイス)へのアクセス速度は、ROM3へのアクセス速度よりも1〜2桁程度低速であるためである。このことは、スワップキャッシュ7やディスク装置9へのアクセス時間は、ヘッド位置によってばらつきが生じる上、ヘッドシークの発生によって数ミリ秒程度を要することが要因となっている。
なお、本実施の形態1で説明した制御部1の処理は、カーネルのスワップ処理の下位部分を変更することによって実装可能である。すなわち、通常のスワップ処理が実行される状況において、スワップ処理の処理内容を変更することによって制御部1の処理を実現可能となる。なお、この制御部1の処理によってカーネルの他の部分やスワップ処理の上位部分に影響を与えることはなく、あたかも通常のスワップ処理を実行しているようにスワップアウトの際に所定のページが廃棄され、スワップインの際にROM3から所定の領域(コード)がロードされることとなる。
このように実施の形態1によれば、RAM5上のプロセスをスワップアウトさせる際にスワップアウトの対象となったプロセスの中から書き換えの行なわれないコードを抽出してこのコードを廃棄し、再実行処理時には廃棄したコードをROM3から再ロードすることとしたので、少ないスワップアクセス(スワップアウトやスワップインに関するRAM5、スワップキャッシュ7、ディスク装置9へのアクセス)で、RAM5の空きメモリ領域を容易に確保することが可能となる。また、廃棄したコードは高速アクセスの可能なROM3から再ロードするので、コードのロード時間を短縮させることが可能となる。これにより、再実行処理時に迅速にメモリイメージを復元することが可能となる。
また、スワップアウトの対象となったプロセスの中から書き換えの行なわれないコードを抽出してこのコードを廃棄するので、スワップ時のスワップキャッシュ7やディスク装置9の使用領域を低減させることが可能となる。
また、ROM3からアプリケーションプログラム31をロードした際に、RAM5上のプロセスにおいてコードやデータを廃棄させる対象とするかスワップアウトの対象とするかをスワップフラグ12(ページフラグやタスクフラグ)に設定しておくので、RAM5の空きメモリ領域が不足した際には、迅速かつ容易にコードやデータを廃棄またはスワップアウトの何れを行なうかを判断でき、コードやデータの廃棄またはスワップアウトを迅速かつ容易に行なうことが可能となる。
実施の形態2.
つぎに、図2および図4を用いてこの発明の実施の形態2について説明する。実施の形態2ではRAM5上のデータに対してスワップアウト又は廃棄の何れを行なうかを判断し、RAM5の空きメモリ領域の不足時にデータをスワップアウト又は廃棄する。
つぎに、図2および図4を用いてこの発明の実施の形態2について説明する。実施の形態2ではRAM5上のデータに対してスワップアウト又は廃棄の何れを行なうかを判断し、RAM5の空きメモリ領域の不足時にデータをスワップアウト又は廃棄する。
図4は、実施の形態2にかかる情報処理装置の動作手順を示すフローチャートである。制御部1(OS)は、ROM3上のアプリケーションプログラム31をRAM5にロードして、アプリケーションプログラム31の実行処理を開始する(ステップS310)。
スワップ判定部11は、アプリケーションプログラム31をRAM5にロードした際に、RAM5の空きメモリ領域の不足時にディスク装置9やスワップキャッシュ7へスワップアウトさせるもの(ページ)と、RAM5から廃棄させるもの(ページ)とを判定する。ここでは、まずRAM5の空きメモリ領域の不足時にコードを廃棄させると判定する。
ところで、データ領域(データ)であっても、アプリケーションプログラム31の実行時に書き換えが行なわれていればRAM5から廃棄することが可能である。例えば、定数セクションに配置された定数データを格納したページは、アプリケーションプログラム31の実行時に書き換えられることはない。したがって、このような書き換えの行なわれないデータ(ページ)は、一度廃棄しても再実行時にROM3から再ロードすることが可能である。そこで、本実施の形態2のスワップ判定部11は、書き換えの行なわれないデータに対しては、RAM5の空きメモリ領域の不足時に廃棄すると判断し、その他のデータに対してはディスク装置9やスワップキャッシュ7へスワップアウトさせると判断する。
このスワップ判定部11による判定は、例えばページ毎に行なう。この判定結果(スワップアウトするか否か)は、スワップフラグ(ページフラグ)12に設定しておく(ステップS320)。スワップ判定部11は、RAM5上のデータが書き換えられた際に、このデータに対してスワップフラグの設定(スワップアウト)を行なう。
制御部1は、アプリケーションプログラム31の実行中に、RAM5の空きメモリ領域が不足しているか否か(空き状態)を判断する(ステップS330)。制御部1は、RAM5の空きメモリ領域が不足していることを検出すると(ステップS340、Yes)、RAM5上にロードされているプロセスの中からスワップアウトの対象となるアクセス頻度の低いプロセス(ページ)を抽出する。
スワップ処理部13は、抽出されたデータ(ページ)が書き換えの行なわれたデータであるか否かをスワップフラグ12に基づいて判断する(ステップS350)。スワップ処理部13は、抽出されたデータが書き換えの行なわれたデータでない場合(ステップS350、No)、このデータをページ毎にRAM5から廃棄する(ステップS360)。
一方、抽出されたデータが書き換えの行なわれたデータである場合(ステップS350、Yes)、スワップ処理部13は、このデータをページ毎にディスク装置9やスワップキャッシュ7へスワップアウトさせる(ステップS370)。また、ここでは、抽出されたコード(ページ)が「スワップアウトしない属性」であるため、スワップ処理部13は、このコードをページ毎に廃棄する(ステップS380)。
この後、制御部1は、アプリケーションプログラム31の実行中に、再実行処理を行なう必要があるか否かを監視する。そして、再実行処理を行なう必要が生じると(ステップS390、Yes)、スワップ処理部13は再実行を行なうページ(データ)が書き換えの行なわれていないデータであって廃棄されていないものであるか否かをスワップフラグ12に基づいて判断する。
スワップ処理部13は、再実行を行なうデータがスワップフラグ12において書き換えの行なわれたデータとして設定されている場合(ステップS400、Yes)、このデータは廃棄されたものであるため、このデータをRAM5から再ロードする(ステップS410)。
一方、再実行を行なうデータがスワップフラグ12において書き換えの行なわれたデータとして設定されていない場合(ステップS400、No)、このデータはスワップアウトしたものであるため、スワップ処理部13は、このデータをディスク装置9やスワップキャッシュ7からスワップインさせる(ステップS420)。
また、ここでは、再実行を行なうコード(ページ)が「スワップアウトしない属性」であるため、スワップ処理部13は、このコードをRAM5から再ロードする(ステップS430)。これにより、制御部1は再実行処理の対象となったプロセスのメモリイメージをRAM5上に復元する。
なお、本実施の形態2においては、スワップフラグ12に基づいて、データを廃棄するか否かを判定したが、データを廃棄するか否かの判定処理はこの方法に限られない。例えば、RAM5上のページに書き込み可能か否かを示す「書き込み可能属性」を設定することとし、この「書き込み可能属性」が設定されているか否かに基づいて、データを廃棄するか否かを判定してもよい。この場合、「書き込み可能属性」が設定されている場合には、ページをスワップアウトさせ、「書き込み可能属性」が設定されていない場合にはページを廃棄する。
また、本実施の形態2においては、ページ単位又はタスク単位でデータを廃棄させる判定またはスワップアウトさせる判定を行い、この判定に基づいてページ単位又はタスク単位でデータを廃棄またはスワップアウトさせることとしたが、廃棄やスワップアウトの判定や処理はこれらの方法に限られない。
例えば、データの書き換え(変更)の有無に基づいてページ単位でデータを廃棄させる判定またはスワップアウトさせる判定を行っておく。そして、RAM5の空き領域が不足した際に、スワップアウトさせると判定されたページ数、廃棄させると判定されたページ数(データやコードの書き換え量)に基づいて、ページ単位又はタスク単位でコードやデータを廃棄またはスワップアウトさせることとしてもよい。この方法により、例えばスワップアウトさせると判定されたページ数が多い場合、このページを含むタスク単位でスワップアウトさせることができる。また、例えば廃棄させると判定されたページ数が多い場合、このページを含むタスク単位で廃棄させることができる。
このように実施の形態2によれば、RAM5上のプロセスをスワップアウトさせる際にスワップアウトの対象となったプロセスの中から書き換えの行なわれなかったデータを抽出してこのデータを廃棄し、再実行処理時には廃棄したデータをROM3から再ロードすることとしたので、少ないスワップアクセスで、RAM5の空きメモリ領域を容易に確保することが可能となる。また、廃棄したデータは高速アクセスの可能なROM3から再ロードするので、データのロード時間を短縮させることが可能となる。これにより、再実行処理時に迅速にメモリイメージを復元することが可能となる。
また、スワップアウトの対象となったプロセスの中から書き換えの行なわれなかったデータを抽出してこのデータを廃棄するので、スワップ時のスワップキャッシュ7やディスク装置9の使用領域を低減させることが可能となる。
なお、RAM5の空きメモリ領域が不足した際に、実施の形態1では書き換えの行なわないコードを廃棄し、実施の形態2では書き換えの行なわれなかったデータを廃棄することとしたが、書き換えの行なわないコードを廃棄するとともに書き換えの行なわれなかったデータを廃棄することとしてもよい。なお、この場合も再実行処理時には、廃棄したコードおよびデータをROM3から再ロードする。
以上のように、本発明にかかるオペレーティングシステムは、ROM化されたアプリケーションプログラムの実行に適している。
1 制御部
3 ROM
5 RAM
7 スワップキャッシュ
9 ディスク装置
11 スワップ判定部
12 スワップフラグ
13 スワップ処理部
20 OS
31 アプリケーションプログラム
100 情報処理装置
3 ROM
5 RAM
7 スワップキャッシュ
9 ディスク装置
11 スワップ判定部
12 スワップフラグ
13 スワップ処理部
20 OS
31 アプリケーションプログラム
100 情報処理装置
Claims (8)
- ROM上に格納されたアプリケーションプログラムをRAM上にロードして実行し、RAM内の記憶領域が不足した際には前記RAM内の記憶領域を開放して前記アプリケーションプログラムの継続処理を行なうオペレーティングシステムにおいて、
前記RAM上で実行される所定のプロセスのうち外部記憶装置に退避させる対象と前記RAM上から廃棄させる対象とを判別する対象判別部と、
前記RAM内の記憶領域が不足した際に、前記対象判別部の判別結果に基づいて前記プロセスの中の所定の対象を前記外部記憶装置に退避させるとともに前記プロセスの中の所定の対象を前記RAM上から廃棄させて前記RAM内の記憶領域を開放し、前記退避させた対象または廃棄させた対象を含むプロセスを再実行する際には、前記退避させた対象を前記外部記憶装置から前記RAM上に回復させるとともに前記廃棄させた対象を前記ROM上から再ロードさせて前記プロセスを再実行する記憶領域制御部と、
を備えることを特徴とするオペレーティングシステム。 - 前記対象判別部は、前記プロセスのデータ部分を前記外部記憶装置に退避させる対象と判別し、前記プロセスのコード部分を前記RAM上から廃棄させる対象と判別することを特徴とする請求項1に記載のオペレーティングシステム。
- 前記対象判別部は、前記プロセスのコード部分のうち書き換えの許されたコード部分を前記外部記憶装置に退避させる対象と判別し、前記プロセスのコード部分のうち書き換えの許されないコード部分を前記RAM上から廃棄させる対象と判別することを特徴とする請求項1に記載のオペレーティングシステム。
- 前記対象判別部は、前記プロセスのデータ部分のうち書き換えの行なわれたデータ部分を前記外部記憶装置に退避させる対象と判別し、前記プロセスのデータ部分のうち書き換えの行なわれていないデータ部分を前記RAM上から廃棄させる対象と判別することを特徴とする請求項1に記載のオペレーティングシステム。
- 前記対象判別部は、前記外部記憶装置に退避させる対象と前記RAM上から廃棄させる対象とを前記RAM内のページ単位又はタスク単位で判別することを特徴とする請求項1〜4のいずれか1つに記載のオペレーティングシステム。
- 前記記憶領域制御部は、前記RAM内の記憶領域の開放および前記プロセスの再実行を、前記RAM内のページ単位またはタスク単位で行なうことを特徴とする請求項1〜5のいずれか1つに記載のオペレーティングシステム。
- 前記記憶領域制御部は、前記RAM内の記憶領域が不足した際に、前記RAM上での前記データおよび前記コードの書き換え量に基づいて、前記RAM内の記憶領域の開放および前記プロセスの再実行を前記RAM内のページ単位またはタスク単位の何れで行なうかを判断し、当該判断結果に基づいて前記RAM内の記憶領域の開放および前記プロセスの再実行を行なうことを特徴とする請求項6に記載のオペレーティングシステム。
- 前記対象判別部の判別結果を、前記各ページの管理情報で構成されて前記タスクの管理を行なうためのタスク管理情報または前記ページ毎の管理情報として記憶する記憶部をさらに備えることを特徴とする請求項1〜7のいずれか1つに記載のオペレーティングシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005349308A JP2007156702A (ja) | 2005-12-02 | 2005-12-02 | オペレーティングシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005349308A JP2007156702A (ja) | 2005-12-02 | 2005-12-02 | オペレーティングシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007156702A true JP2007156702A (ja) | 2007-06-21 |
Family
ID=38241005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005349308A Pending JP2007156702A (ja) | 2005-12-02 | 2005-12-02 | オペレーティングシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007156702A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012032896A (ja) * | 2010-07-29 | 2012-02-16 | Fujitsu Frontech Ltd | 情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラム |
US11409648B2 (en) | 2018-04-06 | 2022-08-09 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method for performing memory swapping to reduce resource usage |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07114499A (ja) * | 1993-10-19 | 1995-05-02 | Hitachi Ltd | フラッシュメモリ仮想メモリシステム |
WO2000025261A1 (fr) * | 1998-10-26 | 2000-05-04 | Hitachi, Ltd. | Processeur de programme de commande pour carte a circuit integre |
JP2000200219A (ja) * | 1999-01-04 | 2000-07-18 | Nec Corp | 仮想メモリ管理方式 |
JP2003181059A (ja) * | 2001-12-19 | 2003-07-02 | Aruze Corp | 遊技機、遊技機の制御方法及び当該方法を実行可能な制御プログラムを記憶した記憶媒体並びにサーバ |
JP2004272479A (ja) * | 2003-03-06 | 2004-09-30 | Fuji Xerox Co Ltd | 情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体 |
-
2005
- 2005-12-02 JP JP2005349308A patent/JP2007156702A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07114499A (ja) * | 1993-10-19 | 1995-05-02 | Hitachi Ltd | フラッシュメモリ仮想メモリシステム |
WO2000025261A1 (fr) * | 1998-10-26 | 2000-05-04 | Hitachi, Ltd. | Processeur de programme de commande pour carte a circuit integre |
JP2000200219A (ja) * | 1999-01-04 | 2000-07-18 | Nec Corp | 仮想メモリ管理方式 |
JP2003181059A (ja) * | 2001-12-19 | 2003-07-02 | Aruze Corp | 遊技機、遊技機の制御方法及び当該方法を実行可能な制御プログラムを記憶した記憶媒体並びにサーバ |
JP2004272479A (ja) * | 2003-03-06 | 2004-09-30 | Fuji Xerox Co Ltd | 情報処理装置、画像形成装置、スワップアウト制御方法、そのプログラム及びそのプログラムを記録した記録媒体 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012032896A (ja) * | 2010-07-29 | 2012-02-16 | Fujitsu Frontech Ltd | 情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラム |
US11409648B2 (en) | 2018-04-06 | 2022-08-09 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method for performing memory swapping to reduce resource usage |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5255348B2 (ja) | クラッシュダンプ用のメモリアロケーション | |
US8347029B2 (en) | Systems and methods for fast state modification of at least a portion of non-volatile memory | |
US9081692B2 (en) | Information processing apparatus and method thereof | |
TWI335512B (en) | Technique for using memory attributes | |
CN109997118B (zh) | 在永久存储器系统中以超高速一致地存储大量数据的方法 | |
US7543124B1 (en) | Method for preventing page replacement of unreferenced read-ahead file pages | |
JP5860543B2 (ja) | ブートデータのロード | |
US20140372710A1 (en) | System and method for recovering from an unexpected shutdown in a write-back caching environment | |
JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
JP2014178913A (ja) | 電子機器、スナップショットイメージの作成方法及びプログラム | |
US8984267B2 (en) | Pinning boot data for faster boot | |
US8543791B2 (en) | Apparatus and method of reducing page fault rate in virtual memory system | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
US8417903B2 (en) | Preselect list using hidden pages | |
US10346234B2 (en) | Information processing system including physical memory, flag storage unit, recording device and saving device, information processing apparatus, information processing method, and computer-readable non-transitory storage medium | |
JP2007156702A (ja) | オペレーティングシステム | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
JP2010146142A (ja) | 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム | |
JP2012123762A (ja) | 情報処理装置及び情報処理方法 | |
JP2011165093A (ja) | メモリアクセス調査装置、メモリアクセス調査方法、及びプログラム | |
US20090064145A1 (en) | Computer System and Method for Activating Basic Program Therein | |
CN108572926B (zh) | 一种用于同步中央处理器所属缓存的方法和装置 | |
JP6627541B2 (ja) | ボリューム管理装置、ボリューム管理方法およびボリューム管理プログラム | |
JPH06131082A (ja) | サスペンド/リジューム方式採用コンピュータ | |
Wenxuan et al. | Fast boot and fast shutdown of Android on the embedded system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081022 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110125 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110712 |