JP2010009265A - スワップ装置及びスワップ処理方法 - Google Patents
スワップ装置及びスワップ処理方法 Download PDFInfo
- Publication number
- JP2010009265A JP2010009265A JP2008166808A JP2008166808A JP2010009265A JP 2010009265 A JP2010009265 A JP 2010009265A JP 2008166808 A JP2008166808 A JP 2008166808A JP 2008166808 A JP2008166808 A JP 2008166808A JP 2010009265 A JP2010009265 A JP 2010009265A
- Authority
- JP
- Japan
- Prior art keywords
- swap
- start instruction
- task
- unit
- memory 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】仮想記憶を備えたコンピュータシステムにおけるスワップ処理において、タスクが実行可能状態になった直後の、プログラムの動作特性を踏まえて、スワップアウト処理を抑制するページを指定し、抑制することで、スワップアウトによる速度性能的なオーバーヘッドを抑制したスワップ装置を提供すること。
【解決手段】タスク識別子と、タスク管理情報を取得し、呼び出し元関数段数指定部によって指定された段数の最大値までさかのぼって当該タスクが実行中の関数の呼び出し元関数のアドレスを抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力するスワップアウト抑制対象選択部を用いて、スワップアウト処理を抑制するページを指定する。
【選択図】図2
【解決手段】タスク識別子と、タスク管理情報を取得し、呼び出し元関数段数指定部によって指定された段数の最大値までさかのぼって当該タスクが実行中の関数の呼び出し元関数のアドレスを抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力するスワップアウト抑制対象選択部を用いて、スワップアウト処理を抑制するページを指定する。
【選択図】図2
Description
本発明は、コンピュータ上で実行される種々のプログラムが使用しているメモリ領域に実施されるメモリ退避技術に関するものである。
仮想メモリシステムにおいて、使用しているメモリ領域が主記憶装置内でひっ迫した場合に、主記憶装置の容量を超えるサイズのプログラムを実行することを可能とする、スワップという技術が存在する。これは、主記憶装置内に格納されているメモリ領域の一部を二次記憶装置内に退避して、主記憶装置内の当該メモリ領域を解放し、主記憶装置にあきメモリ領域を確保することで実現している。
主に、主記憶装置内の当該メモリ領域を二次記憶装置に書き込む処理をスワップアウト処理と、二次記憶装置内の当該メモリ領域を主記憶内へ読み込む処理であるスワップイン処理が存在する。
スワップアウト処理またはスワップイン処理が実行されると、記憶装置からの読み込み処理および書き込み処理の処理時間がオーバーヘッドとなり、システム全体の処理効率が低下するという問題がある。携帯電話などの組み込み機器では、メモリ領域のスワップインによる性能劣化により、キーレスポンスが低下するなどの問題が生じる。
このため、スワップアウト処理およびスワップイン処理によるオーバーヘッドを削減する技術が存在している。
従来のスワップ装置としては、タスク単位でのスワップアウト時に、タスクが使用するメモリ領域についてLRU(Least Recently Used)などの置換アルゴリズムを適用し、効率的なスワップアウト処理を実施するものがあった(例えば、特許文献1参照)。
LRUは、仮想記憶を備えたコンピュータシステムで広く使用されてきたアルゴリズムであり、最も遠い過去にアクセスされたメモリ領域をスワップアウト対象とするものである。
裏返せば、直前に実行されていた処理が、近い将来に再び実行されることを期待したものである。
一般的なコンピュータプログラムには、ループまたは反復処理が多用される特徴があるので、LRUによる置換アルゴリズムが効率的なページ置換に効果を発揮していた。
また、あらかじめ、特定のメモリ領域を、置換アルゴリズムによるスワップアウトの対象となることを抑制することで、スワップイン処理によるオーバーヘッドを削減する従来技術が存在する(例えば、特許文献2参照)。CPUが主記憶装置からデータを読み込み、読み込まれたデータがCPUのデータレジスタに格納された際に、その格納された値をアドレスとして見立てて、そのアドレスが含まれるメモリ領域がスワップアウトされることを抑制している。
特開2000−200219号公報
特開昭60−181946号公報
しかしながら、前記従来の技術では、タスク単位でスワップアウトを行うときに、スワップアウトされたタスクが再びスワップインするときのプログラムの動作特性について考慮されていない。
通常、タスクが、待機状態に入るなど、長時間実行されなくなったときに、当該タスクが使用していたメモリ領域は主記憶装置から二次記憶装置へスワップアウトされる。その後、当該タスクが再び実行されるときに、タスクが使用するメモリ領域が二次記憶装置から主記憶装置へスワップインされる。
ここで、タスクが使用するメモリ領域がスワップアウトする前にタスクが実行していた処理と、再びスワップインした後に実行される処理とが異なるケースがほとんどである。つまり、長時間実行されなくなったタスクが再び実行されるときには、当該タスクによりアクセスされるメモリ領域が、スワップアウトされている可能性が高い。
また、特許文献2では、データレジスタに格納されたデータを用いて、スワップアウト処理を抑制するメモリ領域を選択している。つまり、データレジスタにアドレスが格納されなかった場合も、アドレスとは無関係な値が、データレジスタに格納される場合も、その値をアドレスと見なし当該領域をスワップアウト抑制対象となる。これにより、十分な量のメモリ領域をスワップアウトできず、主記憶装置を効率的に活用できないという課題があった。
前記従来の課題を解決するために、本発明のスワップ装置では、スワップアウト抑制対象選択処理の開始指示を出力する、スワップアウト抑制対象選択処理開始指示部と、タスク識別子を記憶する、タスク識別子記憶部と、タスクの管理情報を記憶する、タスク管理情報記憶部と、前記スワップアウト抑制対象選択処理開始指示部から開始指示を受け取り、前記タスク識別子記憶部からタスク識別子を取得し、取得したタスク識別子で識別されるタスクに対応する前記タスク管理情報記憶部から、当該タスクが待機状態に遷移する直前に実行していた関数の呼び出し元関数のアドレスを再帰的に抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力する、スワップアウト抑制対象選択部と、前記スワップアウト抑制対象選択部が出力したメモリ領域の識別子を記憶するスワップアウト抑制対象記憶部と、スワップアウト処理の開始指示を出力するスワップアウト処理開始指示部と、前記スワップアウト処理開始指示部から開始指示を受け取り、コンピュータシステムが使用しているメモリ領域の中からスワップアウト対象となるメモリ領域を選択して、選択したメモリ領域の識別子を出力し、開始指示を出力するスワップアウト候補選択部と、前記スワップアウト候補選択部が選択したメモリ領域の識別子を記憶する、スワップアウト候補記憶部と、前記スワップアウト抑制対象記憶部が記憶する情報と、前記スワップアウト候補記憶部が記憶する情報とを用いて、スワップアウト対象のメモリ領域を選択するスワップアウト対象選択部と、前記スワップアウト対象選択部によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込部と、を備えることを特徴とする。
本構成により、関数のアドレスおよび、呼び出し元関数のアドレスを用いることにより、関数のコールフローをもとに、プログラムの動作特性を考慮したスワップアウト抑制処理を行うことができる。
本発明によれば、関数のアドレスおよび、呼び出し元関数のアドレスを用いることにより、関数のコールフローをもとに、プログラムの動作特性を考慮したスワップアウト抑制処理を行う。これにより、待機状態に遷移したタスクが再び実行可能状態に遷移した直後に、アクセスされる可能性が高いメモリ領域を、主記憶にとどめておくことができ、スワップイン処理によるオーバーヘッドを削減することが可能となる。
以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態におけるスワップ装置を備えたコンピュータシステムの構成を示すハードウェア構成図である。
図1は、本発明の実施の形態におけるスワップ装置を備えたコンピュータシステムの構成を示すハードウェア構成図である。
このコンピュータシステムは、例えば、PC(Personal Computer;パーソナルコンピュータあるいはパソコン)等の汎用のコンピュータ、AV機器、通信機器、家電機器などの組み込み機器等である。
コンピュータシステム100は、CPU(Central Processing Unit;中央演算処理部)1、メモリ装置2、通信装置34、入力装置40、表示装置45、タイマー回路51及び割り込みコントローラ55を備えている。
これらの各構成要素は、バスライン50を通じて互いに接続されている。
また、必要に応じて、バスライン50には、ハードディスク装置25及び読み取り書き込み装置32を接続することが可能となっている。
ハードディスク装置25、読み取り書き込み装置、入力装置40及び表示装置45は、それぞれ、インタフェース26、35、41及び46を通じてバスライン50に接続される。
CPU1は、単一のCPUで構成されても良く、複数のCPUで構成されても良い。一例として、コンピュータシステム100は、複数のCPU11、12、13、・・・を有するものとする。CPU1は、ROM21又はハードディスク装置25が格納するコンピュータプログラムを、必要に応じてRAM22に書き込みつつ、コンピュータプログラムが規定する処理を実行する。
メモリ装置2は、ROM(Read Only Memory)21及びRAM(Random Access Memory)22を備えている。
ROM21は、CPU1の動作を規定するコンピュータプログラムを記憶している。コンピュータプログラムは、ハードディスク装置25に記憶させることもできる。ROM21には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリまたは記憶媒体も含まれる。
RAM22は、CPU1が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する(主記憶装置)。RAM22には、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
ハードディスク装置25は、内蔵する不図示のハードディスクに、コンピュータプログラム、あるいはデータを書き込み及び読み出す装置である(二次記憶装置)。
読み取り書き込み装置32は、記録媒体31(例えばCD、DVD、BD−ROM、メモリカードなど)に記録されたコンピュータプログラム、あるいはデータを読み取る装置である。また、読み取り書き込み装置32は、記録媒体31(例えばCD、DVD、BD−ROM、メモリカードなど)にプログラムあるいはデータを書き込む装置である。
通信装置34は、電話回線、ネットワーク線、無線、赤外線通信等の通信回線33を通じて、外部と自身との間で、コンピュータプログラム、あるいはデータを交換する装置である。
入力装置40は、ユーザの操作によりデータ等を入力する装置であり、例えば、PDAに配列されたキーボード、携帯電話機に配列された入力ボタン、あるいは着脱自在のマウス、キーボードである。また、マイクなどの音声入力機器などであってもよい。
表示装置45は、データ、画像等を画面に表示したり、データ等を音声で表示したりする装置であり、例えばLCD(Liguid Crystal Display;液晶表示器)、有機EL、プラズマディスプレイ、スピーカである。
タイマー回路51は、一定の周期でタイマー割り込み信号を出力する装置である。割り込みコントローラ55は、タイマー回路51、入力装置40、処理実行中でないCPU、ネットワークデバイスとしての通信装置34、ハードディスク装置25、読み取り書き込み装置32等から送られる割り込み要求信号を受け取る。その後、タイマー回路51は、受け取った割り込み要求信号を、処理実行中のCPU1へ中継する装置である。各装置からの割り込み要求には優先度が付けられている。
割り込みコントローラ55は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
以上のように、コンピュータシステム100は、コンピュータとして構成されている。上記コンピュータプログラムは、ROM21、不図示のフレキシブルディスク、CD−ROM等のプログラム記録媒体31を通じて供給することも、電気通信回線33等の伝送媒体を通じて供給することも可能である。
例えば、プログラム記録媒体31としてCD−ROMに記録されたコンピュータプログラムは、読み取り書き込み装置32をコンピュータシステム100へ接続することにより、読み出すことができる。更に、読み出したコンピュータプログラムをRAM22あるいはハードディスク装置25に格納することができる。
プログラム記録媒体としてROM21を用いてコンピュータプログラムが供給される場合には、当該ROM21をコンピュータシステム100に搭載することにより、CPU1は上記コンピュータプログラムに従った処理を実行可能となる。電気通信回線33等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置34を通じて受信され、例えば、RAM22あるいはハードディスク装置25に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータをも含む。
図2は、本実施の形態におけるスワップ装置の構成を示すブロック図である。
本発明の実施の形態におけるスワップ装置では、スワップアウト抑制対象選択処理開始指示部201と、タスク識別子記憶部202と、呼び出し元関数段数指定部203と、タスク管理情報記憶部204と、スワップアウト抑制対象選択部205と、スワップアウト抑制対象記憶部206と、スワップアウト処理開始指示部207と、スワップアウト候補選択部208と、スワップアウト候補記憶部209と、スワップアウト対象選択部210と、デバイス書込部211と、を有する。
スワップアウト抑制対象選択処理開始指示部201は、スワップアウト抑制対象選択処理の開始タイミングを判断する。開始タイミングに、タスクスイッチ直前に実行されていたタスクのタスクIDをタスク識別子記憶部202へ出力し、スワップアウト抑制対象選択部205に開始指示を通知する。
タスク識別子記憶部202は、スワップアウト抑制対象選択処理開始指示部201が出力したタスクIDを記憶する。
呼び出し元関数段数指定部203は、スワップアウト抑制対象選択部202が再帰的に関数をたどるときの段数の最大値を指定する。
タスク管理情報記憶部204は、タスクの管理情報を記憶する。
スワップアウト抑制対象選択部205は、タスク識別子記憶部202からタスク識別子を取得する。取得したタスク識別子で識別されるタスクに対応するタスク管理情報記憶部204から、呼び出し元関数段数指定部203に指定された段数の最大値までさかのぼって、当該タスクが実行中の関数の、呼び出し元関数のアドレスを抽出する。そして、呼び出し元関数が格納された、メモリ領域の識別子の配列を出力する。
スワップアウト抑制対象記憶部206は、スワップアウトの抑制対象のメモリ領域を特定する情報を記憶する。
スワップアウト処理開始指示部207は、スワップアウト処理の開始タイミングを判断し、スワップアウト候補選択部208に、開始指示を出力する。
スワップアウト候補選択部208は、スワップアウト処理開始指示部207から開始指示を受け取り、使用しているメモリ領域の中からスワップ対象となるメモリ領域を選択する。そして、選択したメモリ領域を特定する情報をスワップアウト候補記憶部209に格納し、スワップアウト対象選択部210に開始指示を通知する。
スワップアウト候補記憶部209は、スワップアウト候補選択部208により選択されたスワップ対象となるメモリ領域を特定する情報を記憶する。
スワップアウト対象選択部210は、スワップアウト候補選択部208からの開始指示を受け、スワップ対象となるメモリ領域を選択する。この選択は、スワップアウト候補記憶部209が記憶する、メモリ領域を特定する情報と、スワップアウト抑制対象記憶部206が記憶する、メモリ領域を特定する情報とを用いて行う。
デバイス書込部211は、スワップアウト対象選択部210により選択されたメモリ領域を二次記憶装置に書き込むことで、スワップアウト処理を行う。
次に、各構成の詳細を、図面を参照しながら説明する。
タスク識別子記憶部202は、コンピュータシステム上でタスクを識別する識別子であるタスクIDを記憶する。
次に、タスク管理情報記憶部204の構成を、図3を参照しながら説明する。
タスク管理情報記憶部204には、コンピュータシステム上でタスクを識別する識別子であるタスクID301、レジスタイメージ情報302、スタック情報303、ページ管理情報304、スワップアウト抑制対象記憶部305が含まれる。レジスタイメージ情報302は、タスクスイッチ直前のCPUの状態を保持する。スタック情報303は、関数が使用するローカル変数および呼び出し元関数のレジスタイメージを格納する。ページ管理情報304は、メモリ領域の割り当てを管理する。
なお、タスク管理情報記憶部204には、その他の情報306を含んでいてもよい。その他の情報の一例として、タスクの優先度、ほかのタスクの、タスク管理情報記憶部204のアドレスなどが挙げられる。
図4は、レジスタイメージ情報302の構成を例示する図である。
レジスタイメージ情報302には、CPUのレジスタの値が格納されている。
レジスタの代表的な例としては、汎用レジスタ401、プログラムカウンタ402、リンクレジスタ403、スタックポインタ404、フレームポインタ405を含んでいる。
汎用レジスタ401は、演算の際に値を指定する用途または、メモリアクセスの際にアドレスを指定する用途で使用される。プログラムカウンタ402は、現在実行中の命令のアドレスを示す。リンクレジスタ403は、現在実行中の関数が呼び出される直前の、プログラムカウンタの値を示す。スタックポインタ404は、スタック領域の境界を示す。フレームポインタ405は、呼び出し元関数と、現在実行中の関数との、スタック上の境界を示す。
なお、その他にも、レジスタイメージ情報302には、CPUの状態を示すフラグレジスタ、浮動小数点レジスタ、コプロセッサの状態を示すレジスタなどが含まれていてもよい。なお、このレジスタの呼び名は、使用するCPUの種類により異なることがある。例えば、プログラムカウンタはインストラクションポインタという名称で呼称されていることもある。
次に、スワップアウト抑制対象記憶部206の構成を、図5を参照しながら説明する。
スワップアウト抑制対象記憶部206は、ページID501、関数の段数502の配列で構成される。
ページID501は、典型的には数字で表現される。なお、その他にもメモリ領域上で位置を特定できるものであれば、ページID501の代わりに、物理アドレス、論理アドレス、セグメント名などほかの情報を用いてもよい。
関数の段数502は、典型的には、現在実行中の関数を「0」、呼び出し元の関数を「1」、呼び出し元関数を呼び出した関数を「2」とするなど、関数呼び出しの段数が深くなるにつれて値を大きくするものとする。なお、関数の段数502は、関数の段数を識別できるものであればよく、関数呼び出しの段数が深くなるにつれて値を小さくしてもよい。
また、ステップS1018で、呼び出し元関数のアドレスを再帰的にたどる方法の一つとして、スタック情報303を用いる方法が挙げられる。
図6は、スタック情報303の構成を例示した図である。
関数Aが関数Bを呼び出し、その後に関数Bが関数Cを呼び出し、その後に関数Cが関数Dを呼び出すケースを例にとって説明する。
この場合、まず関数Aが使用していたローカル変数601が、スタック領域に格納され、次いで、関数Bが呼び出される直前の、関数Aのレジスタイメージ情報602がスタック上に格納される。
前述したように、レジスタイメージ情報602には、プログラムカウンタの値、リンクレジスタの値、フレームポインタの値が含まれる。
次に、関数B実行時には関数Bのローカル変数603がスタック上に格納される。さらに、関数Cが呼び出される時に、関数Bのレジスタイメージ情報604がスタック上に格納される。
同様にして、関数Cのローカル変数605、関数Cのレジスタイメージ情報606、関数Dのローカル変数607がスタック上に格納される。
関数Cのレジスタイメージ情報606に含まれているフレームポインタ608は、関数Bのレジスタイメージ情報604のアドレスである。また、関数Bのレジスタイメージ情報604に含まれるフレームポインタ609は、関数Aのレジスタイメージ情報602のアドレスである。
スタック情報303に格納されている各関数のレジスタイメージ情報に含まれるフレームポインタの値を再帰的にたどり、呼び出し元の関数および呼び出し元関数を呼び出した関数が使用していた、レジスタイメージ情報を取得できる。
次に、スワップアウト候補記憶部209の構成を、図7を参照しながら説明する。
スワップアウト候補記憶部209は、ページID701と、スワップアウト順位702とを有している。
なお、スワップアウト順位702は、スワップアウト候補選択部208の置換アルゴリズムにより、ページを順位付けしたものである。例えば、ページをスワップアウトする優先順位が高いページから順に、スワップアウト順位を、「1」、「2」、「3」のように順位付けする。
なお、スワップアウト順位702は、ページをスワップアウトする順序を指定できるものであればよい。例えば、「100」、「99」、「98」といったように、ページをスワップアウトする優先順位が高い順に値を小さくしていってもよい。スワップアウト許可を示す「1」とスワップアウト不許可を示す「0」だけで構成されていてもよい。ページをスワップアウトする優先順位が同一の値を持つページが複数存在していてもかまわない。
次に、このように構成された本実施の形態にかかるスワップ装置の動作を、図面を参照しながら説明する。
図8は、スワップ装置の処理のフローを例示した図である。
第1に、スワップアウト抑制対象のページを選択する処理について説明する。
スワップアウト抑制対象選択処理開始指示部201は、開始指示を出力する(ステップS811)。
次に、スワップアウト抑制対象選択部205は、スワップアウト抑制対象のページIDを、スワップアウト抑制対象記憶部206へ書き込む(ステップS812)。
第2に、スワップアウトの対象となるページを選択し、実際にページをスワップアウトする処理について説明する。
まず、スワップアウト処理開始指示部207は、開始指示を出力する(ステップS821)。
次に、スワップアウト候補選択部208は、スワップアウト候補のページIDを、スワップアウト候補記憶部209へ書き込む(ステップS822)。
次に、スワップアウト対象選択部210が、スワップアウト抑制対象記憶部206と、スワップアウト候補記憶部209に記載されている情報をもとに、スワップアウト対象ページを選択する(ステップS823)。
次に、デバイス書込部211がスワップアウト対象ページを二次記憶装置に書き込む(ステップS824)。
以下、各ステップの詳細を説明する。
まず、ステップS811における、スワップアウト抑制対象選択処理開始指示部201の動作を説明する。
図9は、スワップアウト抑制対象選択処理開始指示部201の処理のフローを例示する図である。
まず、スワップアウト抑制対象選択処理開始指示部201は、コンピュータシステムが起動した後、処理を開始する。(ステップS900)。
次に、タスクスイッチが発生するまで待機する(ステップS901)。
次に、タスクスイッチの直前に実行されていたタスクが、実行可能状態から待機状態に遷移したか判定する(ステップS902)。
ステップS902での判定結果がYesの場合、すなわちタスクの状態が待機状態に遷移した場合は、タスク識別子記憶部202へタスクスイッチの直前に実行されていたタスクのタスクIDを出力する(ステップS903)。スワップアウト抑制対象選択部205へ開始指示を出力(ステップS904)した後、ステップS901に戻る。
ステップS902での判定結果がNoの場合は、ステップS901に戻る。
なお、待機状態とは、タスクがほかのタスク若しくはデバイス等からの通知があるまで待機していており、タスクが即座に実行できない状態である。通知の例として、ユーザからのキー入力完了通知、デバイスの処理完了通知、あらかじめ指定された時刻になったことの通知などがある。また、実行可能状態とは、待機状態でない状態のことであり、タスクが即時に実行可能な状態である。
次に、ステップS812における、スワップアウト抑制対象選択部205の動作を説明する。
図10は、スワップアウト抑制対象選択部205の処理のフローを例示した図である。
まず、開始指示を受け取ったか判定する(ステップS1002)。ステップS1002での判定結果がNoの場合は処理を終了する。
ステップS1002での判定結果がYesの場合は、タスク識別子記憶部202から、スワップアウト抑制対象選択処理のメモリ領域を選ぶ対象となるタスクのタスクIDを取得する(ステップS1004)。
その次に呼び出し元関数段数指定部203に問い合わせを行い、関数の段数を取得する(ステップS1006)。その次に、ステップS1004で取得したタスクIDに対応するタスク管理情報を読み込む(ステップS1007)。
その次に、関数の段数に「0」を代入する(ステップS1008)。
次にタスク管理情報記憶部204のレジスタイメージ情報302から、プログラムカウンタ402の値と、リンクレジスタ403の値と、フレームポインタ404の値を取得する(ステップS1010)。
次に、ステップS1010で取得した値をページIDに変換する(ステップS1011)。
次に、ステップS1011で変換したページIDと、関数の段数をスワップアウト抑制対象記憶部206に追加する(ステップS1012)、次に関数の段数に「1」を加える(ステップS1014)。
次に、関数の段数が、ステップS1006で取得した、関数をたどる際の最大段数に達したか判定を行う。
ステップS1016の判定の結果がNoの場合、すなわち最大段数に達していない場合は、ステップS1010で取得したフレームポインタの値を用いて、呼び出し元関数のレジスタイメージを取得する(ステップS1018)。その後、再びステップS1010に戻る。
また、ステップS1016の判定の結果がYesの場合、すなわち最大段数に達した場合は、処理を終了する。
呼び出し元関数段数指定部203は、スワップアウト抑制対象選択部205を受けたタイミングで動作を開始し、タスクの優先順位をもとに、段数を出力する。例えば、タスクの優先度に、定数を乗じた値を段数として出力する。
なお、呼び出し元関数段数指定部203は、ほかにも、コンピュータシステムのメモリ残量をもとに、段数を出力してもよいし、あらかじめ定められた固定値を出力してもよい。また、これらの値を組み合わせた値を出力してもよい。
次に、ステップS821における、スワップアウト処理開始指示部207の動作を説明する。
スワップアウト処理開始指示部207は、スワップアウト処理の開始タイミングを判断し、スワップアウト候補選択部208に、開始指示を出力する。
具体的には、主記憶装置上のメモリ領域の空きサイズと、前もって決められているしきい値との比較を行い、空きサイズがしきい値より小さい場合に、スワップアウト処理を開始すると判断し、開始指示を出力する。
なお、スワップアウト処理開始指示部207は、定期的に開始指示を通知してもよいし、タスクスイッチを検出したタイミングで開始指示を通知してもよい。
次に、ステップS822における、スワップアウト候補選択部208の動作を説明する。
スワップアウト候補選択部208は、スワップアウト処理開始指示部207から開始指示を受け取り、特定の置換アルゴリズムに従って、使用しているメモリ領域の中からスワップ対象となるメモリ領域を選択する。
特定の置換アルゴリズムの例としては、前述したLRUが挙げられるが、その他にも、NRU(Not Recently Used)、ランダム、ラウンドロビンなどがある。
次に、スワップアウト候補選択部208は、選択したメモリ領域を特定する情報をスワップアウト候補記憶部209に格納する。さらに、スワップアウト候補選択部208は、スワップアウト対象選択部210に、開始指示を通知する。
次に、ステップS823における、スワップアウト対象選択部210の動作を説明する。
図11は、スワップアウト対象選択部210の処理のフローを例示した図である。
まず、スワップアウト対象選択部210は、スワップアウト候補記憶部209の全要素を取得する(ステップS1102)。
次に、スワップアウト抑制対象記憶部206の全要素を取得し、一時配列に格納する(ステップS1104)。次に、スワップアウト抑制対象記憶部206に記憶されている、関数の段数の最大値を、一時変数に格納する(ステップS1106)。
次に、スワップアウト候補記憶部209に含まれるページID701のうち、一時配列に格納されているページID701と一致しないページをスワップアウト対象として選択する(ステップS1108)。
S1108で選択したページのページID701を、デバイス書込部211へ通知する(ステップS1110)。
次に、S1108で選択した、ページの数の総和があらかじめ定められた一定値に達したか判定を行う(ステップS1112)。判定の結果がYesの場合は処理を終了する。判定の結果がNoの場合は、一時配列から関数の段数が一時変数と一致するページを削除し(ステップS1114)、一時変数の値を「1」減らし(ステップS1116)、ステップ1008に戻る。目標値に達するまでページがスワップアウトされる。
なお、このほかにも、スワップアウト対象選択部210は、図11に示した以外のフローで実現してもよい。
例えば、スワップアウト候補記憶部209からページIDを取得し、そのページIDがスワップアウト抑制対象記憶部206に含まれるか否かを判定する。ページIDがスワップアウト抑制対象記憶部206に含まれる場合は、ページIDを出力せずにスワップアウト候補記憶部209から別のページIDを取得する。一方。ページIDがスワップアウト抑制対象記憶部206に含まれる場合は、デバイス書込部211へ通知するといった簡易な処理のフローで実現してもよい。
次に、ステップS824における、デバイス書込部211の動作を説明する。
デバイス書込部211は、スワップアウト対象選択部210により選択されたメモリ領域を二次記憶装置に書き込むことで、スワップアウト処理を行う。
なお、デバイス書込部211が書き込むメモリ領域の単位は、OSが管理する、メモリ領域の単位であるページ単位でもよい。また、前もって決められた特定のサイズに合わせた単位でも良いし、またこれに限らず特定の観点から指定することのできる単位であってもよい。
なお、この書き込み先である二次記憶装置は、通信装置34から通信回線33を介して通じている、外部のコンピュータシステム100上の、情報の書き換え・読み取りができる記憶装置であってもよい。
また、RAM22であってもよい。不図示であるNAND型フラッシュメモリであってもよい。ハードディスク装置25であってもよい。読込書き込装置32によって書き込み・読み込みが行われる記録媒体31(例えばCDやDVDやメモリカードなど)であってもよい。
また、スワップアウト候補選択部208は、選択したメモリ領域を、その都度デバイス書込部211に通知することで、デバイス書込部211と並列して動作することが可能である。
並列して動作することで、システム全体のスワップ処理完了までの時間を、スワップ処理選択部210とデバイス書込部211がシーケンシャルに動作するときよりも削減できる。
なお、スワップ対象選択部210は、スワップアウト処理開始指示からの開始指示を受け取ったタイミングで処理を開始してもよい。OSまたはアプリケーションからの任意のトリガーを受け取ったタイミングで処理を開始してもよい。定期的に処理を行ってもよい。タスクスイッチのタイミングで処理を開始してもよい。コンピュータシステムの残り空きメモリの量が、あらかじめ定められたしきい値を下回ったことが検知されたタイミングで開始してもよい。
以上により、プログラムのコールフローを考慮して、近い将来に実行されるプログラムが使用するメモリ領域をスワップアウト処理の対象から除外することが可能となり、スワップ処理にかかるオーバーヘッドを削減することができる。
(実施の形態2)
図12は、本発明の実施の形態2におけるスワップ装置の構成を例示したブロック図である。
図12は、本発明の実施の形態2におけるスワップ装置の構成を例示したブロック図である。
ここでは、実施の形態1と同じ構成要素には同じ符号を付し、その説明を省略する。図11に示すスワップ装置は、スワップアウト処理開始指示部207、スワップアウト候補選択部208、スワップアウト候補記憶部209、スワップアウト抑制対象選択処理開始指示部201、タスク識別子記憶部202、呼び出し元関数段数指定部203、タスク管理情報記憶部204、スワップアウト抑制対象選択部205、スワップアウト抑制対象記憶部206、スワップアウト対象選択部210、デバイス書込部211と、スワップアウト抑制解除処理開始指示部1201と、第2のタスク識別子記憶部1202と、スワップアウト抑制解除部1203を有する。
スワップアウト抑制解除処理開始指示部1201は、スワップアウト抑制解除処理の開始指示を出力する。
スワップアウト抑制解除部1203は、スワップアウト抑制解除処理開始指示部1201から開始指示を受け取る。その後、第2のタスク識別子記憶部1202で指定されたタスクに対応する、スワップアウト抑制対象記憶部206の項目を、削除する機能を有する。
図13は、実施の形態2における動作のフローを説明する図である。実施の形態1と同じ、図8で説明した動作フローについては、その説明を省略する。実施の形態2で新たに加わった動作フローについて説明する。
まず、スワップアウト抑制解除処理開始指示部1201は、開始指示を出力する(ステップS1301)。次に、スワップアウト抑制解除部1203は、スワップアウト抑制対象記憶部206から、スワップアウト抑制解除対象のページIDを削除する(ステップS1302)。
図14は、スワップアウト抑制解除処理開始指示部1201の処理のフローを例示した図である。図13のステップS1301に相当する。
まず、スワップアウト抑制解除処理開始指示部1201は、コンピュータシステムが起動した後、処理を開始する。(ステップS1400)。
次に、タスクスイッチが発生するまで待機する(ステップS1401)。
ステップS1401での判定結果がYesの場合、すなわちタスクスイッチが発生した場合は、タスクスイッチの直前に実行されていたタスクが、待機状態から実行可能状態に遷移したか判定する(ステップS1402)。
ステップS1402での判定結果がYesの場合、すなわちタスクの状態が実行可能状態に遷移した場合は、第2のタスク識別子記憶部1202へ、タスクスイッチ直前に実行されていたタスクIDを出力する(ステップS1403)。次に、スワップアウト抑制解除部1203へ開始指示を出力(ステップS1404)して、ステップS1401に戻る。
ステップS1402での判定結果がNoの場合は、ステップS1401に戻る。
図15は、スワップアウト抑制解除部1203の処理のフローを例示した図である。図13のステップS1302に相当する。
まず、第2のタスク識別子記憶部1202からタスクIDを取得する(ステップS1504)。
次に、ステップS1504で取得したタスクIDに対応するタスク管理情報記憶部204を読み込む(ステップS1506)。
次に、S1506で取得した、タスク管理情報記憶部204に含まれるスワップアウト抑制対象記憶部206の全項目を、削除する(ステップS1508)。
以上により、スワップアウトの抑制処理が不要となったページの、スワップアウトの抑制を、適切なタイミングで、解除することができる。これにより、多くのページをスワップアウトすることが可能となるので、主記憶装置を有効に活用することができる。
なお、本発明にかかる構成要素は、典型的にはソフトウェアとして実現される。ただし、これらの構成要素の一部または全部を、専用の集積回路で実現してもよい。集積回路は集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field ProgrammableGate Array)、LSI内部の回路セルの接続、設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
なお、本実施の形態では、携帯電話を例にとって説明を行ったが、本発明は仮想記憶を備えたコンピュータシステムであれば、携帯電話以外にも適用可能である。例えば、パーソナルコンピュータや、テレビや、レコーダー、カーナビゲーションシステムなどにも応用できる。
また、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良または変形を行うことができる。
本発明にかかるスワップ装置は、携帯電話、テレビ、BDレコーダー、カーナビゲーションシステム等の組み込み機器向けの、メモリを効率的に使用するための技術として有用である。また、組み込み機器に限らず、パーソナルコンピュータ等の用途にも応用できる。
1,11,12,13 CPU
2 メモリ装置
21 ROM
22 RAM
25 ハードディスク装置
26 インタフェース
31 記憶媒体
32 読取書込装置
33 通信回線
34 通信装置
35 インタフェース
40 入力装置
41 インタフェース
45 表示装置
46 インタフェース
50 バスライン
51 タイマー回路
55 割込コントローラ
100 情報処理装置
101 スワップ装置
201 スワップアウト処理開始指示部
202 スワップアウト候補選択部
203 スワップアウト候補記憶部
204 スワップアウト抑制対象選択処理開始指示部
205 タスク識別子記憶部
206 呼び出し元関数段数指定部
207 タスク管理情報記憶部
208 スワップアウト抑制対象選択部
209 スワップアウト抑制対象記憶部
210 スワップアウト対象選択部
211 デバイス書込部
301 タスクID
302 レジスタイメージ情報
303 スタック情報
304 ページ管理情報
305 スワップアウト抑制対象記憶部
306 その他の情報
401 汎用レジスタ
402 プログラムカウンタ
403 リンクレジスタ
404 スタックレジスタ
405 フレームポインタ
406 その他のレジスタ
501 ページID
502 関数の段数
600 スタック情報
601 関数Aのローカル変数
602 関数Aのレジスタイメージ情報
603 関数Bのローカル変数
604 関数Bのレジスタイメージ情報
605 関数Cのローカル変数
701 ページID
702 スワップアウト順位
1201 スワップアウト抑制解除処理開始指示部
1202 スワップアウト抑制解除部
2 メモリ装置
21 ROM
22 RAM
25 ハードディスク装置
26 インタフェース
31 記憶媒体
32 読取書込装置
33 通信回線
34 通信装置
35 インタフェース
40 入力装置
41 インタフェース
45 表示装置
46 インタフェース
50 バスライン
51 タイマー回路
55 割込コントローラ
100 情報処理装置
101 スワップ装置
201 スワップアウト処理開始指示部
202 スワップアウト候補選択部
203 スワップアウト候補記憶部
204 スワップアウト抑制対象選択処理開始指示部
205 タスク識別子記憶部
206 呼び出し元関数段数指定部
207 タスク管理情報記憶部
208 スワップアウト抑制対象選択部
209 スワップアウト抑制対象記憶部
210 スワップアウト対象選択部
211 デバイス書込部
301 タスクID
302 レジスタイメージ情報
303 スタック情報
304 ページ管理情報
305 スワップアウト抑制対象記憶部
306 その他の情報
401 汎用レジスタ
402 プログラムカウンタ
403 リンクレジスタ
404 スタックレジスタ
405 フレームポインタ
406 その他のレジスタ
501 ページID
502 関数の段数
600 スタック情報
601 関数Aのローカル変数
602 関数Aのレジスタイメージ情報
603 関数Bのローカル変数
604 関数Bのレジスタイメージ情報
605 関数Cのローカル変数
701 ページID
702 スワップアウト順位
1201 スワップアウト抑制解除処理開始指示部
1202 スワップアウト抑制解除部
Claims (11)
- スワップアウト抑制対象選択処理の開始指示と、タスク識別子を出力する、スワップアウト抑制対象選択処理開始指示部と、
タスク識別子を記憶する、タスク識別子記憶部と、
タスクの管理情報を記憶する、タスク管理情報記憶部と、
前記スワップアウト抑制対象選択処理開始指示部から開始指示を受け取り、前記タスク識別子記憶部からタスク識別子を取得し、取得したタスク識別子で識別されるタスクに対応する前記タスク管理情報記憶部から、当該タスクが待機状態に遷移する直前に実行していた関数の呼び出し元関数のアドレスを再帰的に抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力する、スワップアウト抑制対象選択部と、
前記スワップアウト抑制対象選択部が出力したメモリ領域の識別子を記憶するスワップアウト抑制対象記憶部と、
スワップアウト処理の開始指示を出力するスワップアウト処理開始指示部と、
前記スワップアウト処理開始指示部から開始指示を受け取り、コンピュータシステムが使用しているメモリ領域の中からスワップアウト対象となるメモリ領域を選択して、選択したメモリ領域の識別子を出力し、開始指示を出力するスワップアウト候補選択部と、
前記スワップアウト候補選択部が選択したメモリ領域の識別子を記憶する、スワップアウト候補記憶部と、
前記スワップアウト候補選択部から開始指示を受け取り、前記スワップアウト抑制対象記憶部が記憶する情報と、前記スワップアウト候補記憶部が記憶する情報と、を用いて、スワップアウト対象のメモリ領域を選択するスワップアウト対象選択部と、
前記スワップアウト対象選択部によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込部と、
を有することを特徴とするスワップ装置。 - 前記スワップアウト抑制対象選択処理開始指示部は、タスクの状態を監視し、監視対象のタスクが実行可能状態から、待機状態に遷移したタイミングで、開始指示を出力することを特徴とした、請求項1記載のスワップ装置。
- 前記スワップアウト抑制対象選択部が再帰的に関数をたどるときの関数の段数の最大値を指定する呼び出し元関数段数指定部を有し、
前記スワップアウト抑制対象選択部は、前記スワップアウト抑制対象選択処理開始指示部から開始指示を受け取ったタイミングで処理を開始し、前記タスク識別子記憶部からタスク識別子を取得し、当該タスクが実行中の関数から、呼び出し元関数段数指定部によって指定された段数の最大値までさかのぼって呼び出し元関数のアドレスを抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力することを特徴とする請求項2記載のスワップ装置。 - 前記呼び出し元関数段数指定部は、タスクの優先順位をもとに、段数を出力することを特徴とする、請求項3記載のスワップ装置。
- 前記呼び出し元関数段数指定部は、コンピュータシステムのメモリ残量をもとに、段数を出力することを特徴とした、請求項3記載のスワップ装置。
- 前記呼び出し元関数段数指定部は、あらかじめ定められた固定値を出力することを特徴とする、請求項3記載のスワップ装置。
- スワップアウト抑制解除処理の開始指示を出力するスワップアウト抑制解除処理開始指示部と、
前記スワップアウト抑制解除処理開始指示部から開始指示を受け取り、前記タスク識別子記憶部で指定されたタスクに対応する前記スワップアウト抑制対象記憶部の要素を削除するスワップアウト抑制解除部を有する請求項3記載のスワップ装置。 - 前記スワップアウト抑制解除処理開始指示部は、タスクの状態を監視し、監視対象のタスクが待機状態から、実行可能状態に遷移したタイミングで、開始指示を出力することを特徴とした、請求項3記載のスワップ装置。
- タスク識別子を記憶する、タスク識別子記憶部と、タスクの管理情報を記憶する、タスク管理情報記憶部を備えたコンピュータシステムにおいて、
スワップアウト抑制対象選択処理の開始指示と、タスク識別子を出力する、スワップアウト抑制対象選択処理開始指示ステップと、
前記スワップアウト抑制対象選択処理開始指示ステップから開始指示を受け取り、前記タスク識別子出力ステップからタスク識別子を取得し、取得したタスク識別子で識別されるタスクに対応する前記タスク管理情報記憶ステップから、当該タスクが待機状態に遷移する直前に実行していた関数の呼び出し元関数のアドレスを再帰的に抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力する、スワップアウト抑制対象選択ステップと、
スワップアウト処理の開始指示を出力するスワップアウト処理開始指示ステップと、
前記スワップアウト処理開始指示ステップから開始指示を受け取り、コンピュータシステムが使用しているメモリ領域の中からスワップアウト対象となるメモリ領域を選択して、選択したメモリ領域の識別子を出力し、開始指示を出力するスワップアウト候補選択ステップと、
前記スワップアウト候補選択ステップから開始指示を受け取り、前記スワップアウト抑制対象選択ステップが出力した情報と、前記スワップアウト候補選択ステップが出力した情報と、を用いて、スワップアウト対象のメモリ領域を選択するスワップアウト対象選択ステップと、
前記スワップアウト対象選択ステップによって選択されたメモリ領域のスワップアウト処理を行うデバイス書込ステップと、
を有することを特徴とするスワップ処理方法。 - タスク識別子を記憶する、タスク識別子記憶部と、タスクの管理情報を記憶する、タスク管理情報記憶部を備えたコンピュータシステムにおいて、
スワップアウト抑制対象選択処理の開始指示と、タスク識別子を出力する、スワップアウト抑制対象選択処理開始指示ステップと、
タスク識別子を記憶する、タスク識別子出力ステップと、
タスクの管理情報を記憶する、タスク管理情報記憶ステップと、
前記スワップアウト抑制対象選択処理開始指示ステップから開始指示を受け取り、前記タスク識別子出力ステップからタスク識別子を取得し、取得したタスク識別子で識別されるタスクに対応する前記タスク管理情報記憶ステップから、当該タスクが待機状態に遷移する直前に実行していた関数の呼び出し元関数のアドレスを再帰的に抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力する、スワップアウト抑制対象選択ステップと、
スワップアウト処理の開始指示を出力するスワップアウト処理開始指示ステップと、
前記スワップアウト処理開始指示ステップから開始指示を受け取り、コンピュータシステムが使用しているメモリ領域の中からスワップアウト対象となるメモリ領域を選択して、選択したメモリ領域の識別子を出力し、開始指示を出力するスワップアウト候補選択ステップと、
前記スワップアウト候補選択ステップから開始指示を受け取り、前記スワップアウト抑制対象選択ステップが出力した情報と、前記スワップアウト候補選択ステップが出力した情報と、を用いて、スワップアウト対象のメモリ領域を選択するスワップアウト対象選択ステップと、
前記スワップアウト対象選択ステップによって選択されたメモリ領域のスワップアウト処理を行うデバイス書込ステップと、
を有することを特徴とするプログラム。 - スワップアウト抑制対象選択処理の開始指示と、タスク識別子を出力する、スワップアウト抑制対象選択処理開始指示部と、
タスク識別子を記憶する、タスク識別子記憶部と、
タスクの管理情報を記憶する、タスク管理情報記憶部と、
前記スワップアウト抑制対象選択処理開始指示部から開始指示を受け取り、前記タスク識別子記憶部からタスク識別子を取得し、取得したタスク識別子で識別されるタスクに対応する前記タスク管理情報記憶部から、当該タスクが待機状態に遷移する直前に実行していた関数の呼び出し元関数のアドレスを再帰的に抽出して、呼び出し元関数が格納されたメモリ領域の識別子の配列を出力する、スワップアウト抑制対象選択部と、
前記スワップアウト抑制対象選択部が出力したメモリ領域の識別子を記憶するスワップアウト抑制対象記憶部と、
スワップアウト処理の開始指示を出力するスワップアウト処理開始指示部と、
前記スワップアウト処理開始指示部から開始指示を受け取り、コンピュータシステムが使用しているメモリ領域の中からスワップアウト対象となるメモリ領域を選択して、選択したメモリ領域の識別子を出力し、開始指示を出力するスワップアウト候補選択部と、
前記スワップアウト候補選択部が選択したメモリ領域の識別子を記憶する、スワップアウト候補記憶部と、
前記スワップアウト候補選択部から開始指示を受け取り、前記スワップアウト抑制対象記憶部が記憶する情報を用いて、前記スワップアウト候補記憶部が記憶する情報と、スワップアウト対象のメモリ領域を選択するスワップアウト対象選択部と、
前記スワップアウト対象選択部によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込部と、
を有することを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008166808A JP2010009265A (ja) | 2008-06-26 | 2008-06-26 | スワップ装置及びスワップ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008166808A JP2010009265A (ja) | 2008-06-26 | 2008-06-26 | スワップ装置及びスワップ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010009265A true JP2010009265A (ja) | 2010-01-14 |
Family
ID=41589693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008166808A Pending JP2010009265A (ja) | 2008-06-26 | 2008-06-26 | スワップ装置及びスワップ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010009265A (ja) |
-
2008
- 2008-06-26 JP JP2008166808A patent/JP2010009265A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437631B2 (en) | Operating system hot-switching method and apparatus and mobile terminal | |
KR100746797B1 (ko) | 프로세서 및 정보처리 방법 | |
JP5259714B2 (ja) | 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置 | |
TWI426452B (zh) | Work processing device | |
KR20150132218A (ko) | 게스트 운영 체계 및 가상 프로세서들과 함께 하이퍼바이저를 이용하는 시스템들 및 방법들 | |
EP2972834B1 (en) | Systems and methods of executing multiple hypervisors | |
US8726056B2 (en) | Clock control device, clock control method, clock control program and integrated circuit | |
CN107577523B (zh) | 一种任务执行的方法及装置 | |
JPWO2012127596A1 (ja) | 端末装置、プロセス管理方法、およびプロセス管理プログラム | |
TWI426451B (zh) | Work processing device | |
JP2018063505A (ja) | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム | |
CN115269196A (zh) | 线程池动态创建方法、装置、设备及存储介质 | |
JP4609113B2 (ja) | プロセッサ | |
JP5405663B2 (ja) | メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 | |
CN110928574A (zh) | 微控制器、中断处理芯片、设备及中断处理方法 | |
JP2009020555A (ja) | スワップ処理装置 | |
CN114090196A (zh) | 一种协程切换的方法、装置及设备 | |
JP5621191B2 (ja) | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム | |
JP2010009265A (ja) | スワップ装置及びスワップ処理方法 | |
JP5573333B2 (ja) | 携帯端末装置及び携帯端末装置のアプリケーション起動方法並びにコンピュータプログラム | |
JP6584655B2 (ja) | フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング | |
JP5231496B2 (ja) | 情報処理装置及びそのサスペンド/リジューム方法 | |
US9348732B2 (en) | Microstackshots | |
JP2007048030A (ja) | ソフトウェア割り込み制御システムおよびその制御方法 | |
JP2017215738A (ja) | 計算機システム、及び、計算機システムの制御方法 |