(57)【要約】【課題】優先度の高いタスクを常時、迅速に実行することができるオペレーティングシステムを提供する。【解決手段】オペレーティングシステムは、プロセッサ１０及びキャッシュ装置２０を備えるコンピュータ１で稼働し、該キャッシュ装置２０はキャッシュメモリ２３を備え、さらに、オペレーティングシステムは、各アプリケーションソフトウエアに対応するタスク管理情報１００を有し、タスク管理情報１００はキャッシュ優先フラグを有し、プロセッサ１０は、タスクがタスクＡからタスクＢへ切り替わる際、タスクＢのキャッシュ優先フラグが「０」である場合には、キャッシュメモリ２３に対する情報の格納及び消去を禁止し、タスクＢのキャッシュ優先フラグが「１」である場合には、キャッシュメモリ２３に対する情報の格納及び消去を許可する。【選択図】図３
2007094735.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを備えるコンピュータにおいて少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムであって、
前記キャッシュメモリは少なくとも前記第１のタスクの情報を格納し、
少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定することを特徴とするオペレーティングシステム。
【請求項２】
前記優先度は優先フラグで示され、前記タスク管理情報が前記優先度が高いことを示す優先フラグを含む場合には、前記第１のタスクの情報の消去を許可し、前記タスク管理情報が前記優先度が低いことを示す優先フラグを含む場合には、前記第１のタスクの情報の消去を許可しないことを特徴とする請求項１記載のオペレーティングシステム。
【請求項３】
キャッシュメモリを備えるコンピュータにおいて少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムであって、
前記キャッシュメモリは少なくとも前記第１のタスクの情報を格納し、
少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定することを特徴とするオペレーティングシステム。
【請求項４】
前記第１タスク優先度及び第２タスク優先度はそれぞれ優先フラグで示され、前記タスク管理情報が、前記第２タスク優先度が低いことを示す優先フラグを含み、且つ前記第１タスク優先度が高いことを示す優先フラグを含む場合には、前記第１のタスクの情報の消去を許可せず、前記タスク管理情報が、前記第２タスク優先度が高いことを示す優先フラグを含み、且つ前記第１タスク優先度が低いことを示す優先フラグを含む場合には、前記第１のタスクの情報の消去を許可することを特徴とする請求項３記載のオペレーティングシステム。
【請求項５】
少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法であって、
前記オペレーティングシステムは少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、
前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納ステップと、
前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定ステップとを有することを特徴とするキャッシュメモリの制御方法。
【請求項６】
少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法であって、
前記オペレーティングシステムは少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、
前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納ステップと、
前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定ステップとを有することを特徴とするキャッシュメモリの制御方法。
【請求項７】
少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法を前記コンピュータに実行させるプログラムであって、
前記オペレーティングシステムは少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、
前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納モジュールと、
前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定モジュールとを有することを特徴とするプログラム。
【請求項８】
少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法を前記コンピュータに実行させるプログラムであって、
前記オペレーティングシステムは少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、
前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納モジュールと、
前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定モジュールとを有することを特徴とするプログラム。
【請求項９】
請求項７項に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項８項に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム、キャッシュメモリの制御方法、プログラム及び記憶媒体に関し、特にキャッシュメモリを用いるオペレーティングシステムに関する。
【背景技術】
【０００２】
コンピュータ上で稼働するオペレーティングシステムは、該システムの性能向上及びコスト削減を目的としてキャッシュメモリを用いる。キャッシュメモリは、例えば、コンピュータが備えるＣＰＵ等のプロセッサ内部のメモリであって、小容量ではあるが、当該コンピュータが備える主記憶装置よりも高速にアクセスすることが可能なメモリである。
【０００３】
キャッシュメモリは、主記憶装置、例えば、ＨＤＤに格納されたアプリケーションソフトウエア等（以下、「タスク」という。）の命令やデータ（以下、まとめて「情報」という。）のうち、最近においてプロセッサ等によってアクセスされた情報や、該情報のアドレス近傍に存在する情報を格納する。また、キャッシュメモリはブロックと称される情報の最小単位毎に情報を格納する。
【０００４】
キャッシュメモリを用いるオペレーティングシステムでは、所望の情報にアクセスする際、キャッシュメモリが所望の情報を格納している場合、プロセッサ等はキャッシュメモリに格納されている所望の情報にアクセスする。これによりプロセッサ等は所望の情報に迅速にアクセスすることができ、もってオペレーティングシステムの性能が向上する。
【０００５】
また、キャッシュメモリが所望の情報を格納していない場合（ミスヒットした場合）、キャッシュメモリはＨＤＤに格納されている所望の情報及び該所望の情報のアドレス近傍に存在する情報を新たに格納し、プロセッサ等はキャッシュメモリに新たに格納された所望の情報にアクセスする。
【０００６】
ここで、ミスヒットしてキャッシュメモリが所望の情報及び該所望の情報のアドレス近傍に存在する情報を新たに格納する場合、既にキャッシュメモリが他の情報で占められてキャッシュメモリに新たな情報を格納する空き容量が存在しないことがある。そのときには、キャッシュメモリは既に格納している情報のうち所定の条件、例えば、最新のアクセスタイミングから現在までの時間が最も長いこと、に該当する情報をブロック単位で消去して空き容量を確保する。これにより、キャッシュメモリには比較的最近にプロセッサ等がアクセスした情報のみが維持される。また、このとき、消去する情報の内容がキャッシュメモリにおいて書き換えられていた場合には、ＨＤＤは該書き換えられた情報に対応するアドレスの情報を当該書き換えられた情報によって置き換える。
【０００７】
また、通常キャッシュメモリにはロックフラグが設定可能であり、該ロックフラグが設定された場合、キャッシュメモリは上述した新たな情報の格納及び所定の条件に該当する情報の消去を行わない（例えば、特許文献１参照）。
【特許文献１】特開２００１−１０１０１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のリアルタイムオペレーティングシステムでは、優先度の低いタスクがたまたま実行されて、該優先度の低いタスクの情報にプロセッサ等がアクセスする場合がある。そのとき、キャッシュメモリは優先度の低いタスクの情報を新たに格納し、既に格納している優先度の高いタスクの情報であっても最新のアクセスタイミングから現在までの時間が長い情報を消去することがある。
【０００９】
その後、上記優先度の高いタスクが実行されると、キャッシュメモリには上記優先度の高いタスクの情報がもはや格納されていない。このため、プロセッサ等はＨＤＤに格納されている優先度の高いタスクの情報にアクセスする必要があり、優先度の高いタスクの実行に時間を要するという問題があった。
【００１０】
本発明の目的は、優先度の高いタスクを常時、迅速に実行することができるオペレーティングシステム、キャッシュメモリの制御方法、プログラム及び記憶媒体を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明のオペレーティングシステムは、キャッシュメモリを備えるコンピュータにおいて少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムであって、前記キャッシュメモリは少なくとも前記第１のタスクの情報を格納し、少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定することを特徴とする。
【００１２】
上記目的を達成するために、本発明のオペレーティングシステムは、キャッシュメモリを備えるコンピュータにおいて少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムであって、前記キャッシュメモリは少なくとも前記第１のタスクの情報を格納し、少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定することを特徴とする。
【００１３】
上記目的を達成するために、本発明のキャッシュメモリの制御方法は、少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法であって、前記オペレーティングシステムは少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納ステップと、前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定ステップとを有することを特徴とする。
【００１４】
上記目的を達成するために、本発明のキャッシュメモリの制御方法は、少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法であって、前記オペレーティングシステムは少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納ステップと、前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定ステップとを有することを特徴とする。
【００１５】
上記目的を達成するために、本発明のプログラムは、少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法を前記コンピュータに実行させるプログラムであって、前記オペレーティングシステムは少なくとも前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納モジュールと、前記第２のタスクを実行する場合、前記優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定モジュールとを有することを特徴とする。
【００１６】
上記目的を達成するために、少なくとも第１のタスク及び第２のタスクを実行するオペレーティングシステムが稼働するコンピュータが備えるキャッシュメモリの制御方法を前記コンピュータに実行させるプログラムであって、前記オペレーティングシステムは少なくとも前記第１のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第１タスク優先度及び前記第２のタスクの情報の前記キャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、前記キャッシュメモリが少なくとも前記第１のタスクの情報を格納するタスク情報格納モジュールと、前記第２のタスクを実行する場合、前記第１タスク優先度及び第２タスク優先度に応じて前記キャッシュメモリからの前記第１のタスクの情報の消去を許可するか否かを判定するタスク情報消去判定モジュールとを有することを特徴とする。
【００１７】
上記目的を達成するために、本発明の記憶媒体は、上記プログラムを格納することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、コンピュータがキャッシュメモリを備え、オペレーティングシステムは少なくとも第１のタスク及び第２のタスクを実行し、且つ少なくとも第２のタスクの情報のキャッシュメモリへの格納に関する優先度を含むタスク管理情報を有し、キャッシュメモリは少なくとも第１のタスクの情報を格納し、第２のタスクが実行される場合、優先度に応じてキャッシュメモリからの第１のタスクの情報の消去を許可するか否かを判定するので、優先度の高いタスクの情報がキャッシュメモリに維持され、その結果、優先度の高いタスクを常時、迅速に実行することができる。
【００１９】
本発明によれば、コンピュータがキャッシュメモリを備え、オペレーティングシステムは少なくとも第１のタスク及び第２のタスクを実行し、且つ少なくとも第１のタスクの情報のキャッシュメモリへの格納に関する優先度である第１タスク優先度及び第２のタスクの情報のキャッシュメモリへの格納に関する優先度である第２タスク優先度を含むタスク管理情報を有し、キャッシュメモリは少なくとも第１のタスクの情報を格納し、第２のタスクを実行する場合、第１タスク優先度及び第２タスク優先度に応じてキャッシュメモリからの第１のタスクの情報の消去を許可するか否かを判定するので、優先度の高いタスクの情報が確実にキャッシュメモリに維持され、その結果、優先度の高いタスクを確実に常時、迅速に実行することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００２１】
まず、本発明の第１の実施の形態に係るオペレーティングシステムについて説明する。
【００２２】
図１は、本実施の形態に係るオペレーティングシステムが稼働するコンピュータのハードウェアの概略構成を示す図である。
【００２３】
図１において、コンピュータ１は、ＣＰＵ等のプロセッサ１０と、該プロセッサ１０に接続されたキャッシュ装置２０と、該キャッシュ装置２０に接続されたメインメモリ３０とを備える。プロセッサ１０は、キャッシュ装置２０を介して、メインメモリ３０に接続される。なお、本実施の形態に係るオペレーティングシステムはリアルタイムオペレーティングシステムであり、コンピュータ１の各構成要素の動作をリアルタイムで制御する。
【００２４】
メインメモリ３０は、アプリケーションソフトウエアそのもの（以下、「タスク」という。）や該タスクの命令やデータ（以下、まとめて「情報」という。）を格納する、低速でしかアクセス可能でない大容量の記憶装置である。キャッシュ装置２０は、メインメモリ３０の一部の領域に格納されているタスクの情報を一時的に格納する高速アクセスが可能な小容量の記憶装置である。プロセッサ１０は、メインメモリ３０又はキャッシュ装置２０に格納されている命令を実行し、メインメモリ３０及びキャッシュ装置２０の間で情報の交換、例えば、格納や消去を行なう演算装置である。
【００２５】
キャッシュ装置２０は、キャッシュメモリ２３と、「１」である場合にキャッシュメモリ２３への情報の格納及びキャッシュメモリ２３からの情報の消去が禁止されるロックフラグ２２と、キャッシュメモリ２３及びプロセッサ１０の間のアクセス制御、並びにキャッシュメモリ２３及びメインメモリ３０の間のアクセス制御を行うキャッシュコントローラ２１とを備える。なお、ロックフラグ２２が「０」である場合には、キャッシュメモリ２３への情報の格納及びキャッシュメモリ２３からの情報の消去が許可される。
【００２６】
図２は、本実施の形態に係るオペレーティングシステムが有するタスク管理情報を説明するための図である。
【００２７】
図２において、タスク管理情報１００は、該タスク管理情報１００が対応するタスク（以下、「対応タスク」という。）の認証用番号等を示す「タスクＩＤ」と、対応タスクの優先度を示す「優先度」と、対応タスクの情報のキャッシュメモリ２３内における維持の優先度を示す「キャッシュ優先フラグ」とを有する。なお、図２の例では、「優先度」は「高」「低」で表しているが、より細かくレベルを設定できるようにしてもよい。また「キャッシュ優先フラグ」は、対応タスクの情報がキャッシュメモリ２３に格納されていた場合に有効（値が設定される）となる。「キャッシュ優先フラグ」の値が「１」である場合には対応タスクの情報のキャッシュメモリ２３内における維持が必要であり、「０」である場合には対応タスクの情報のキャッシュメモリ２３内における維持が必要でないことを示す。
【００２８】
具体的には、高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要があるタスクに対応するタスク管理情報１００では、「優先度」が高く設定されるだけでなく、「キャッシュ優先フラグ」に「１」が設定される。また、高い応答性を必要とせず、キャッシュメモリ２３を有効に活用する必要がないタスクに対応するタスク管理情報１００では、「優先度」が低く設定されるだけでなく、「キャッシュ優先フラグ」に「０」が設定される。
【００２９】
タスク管理情報１００は、メインメモリ３０が格納するタスクのそれぞれに対応して設定され、該設定された各タスク管理情報１００は、キャッシュメモリ２３等の高速アクセスが可能な記憶装置に格納される。
【００３０】
次に、図１のコンピュータ１において実行される本実施の形態に係るキャッシュメモリの制御方法について説明する。
【００３１】
図３は、図１におけるプロセッサが実行する、本実施の形態に係るキャッシュメモリの制御方法としての第１のタスクスイッチ（変更）処理のフローチャートである。本処理はコンピュータ１が実行するタスクがタスクＡからタスクＢへ切り替わる際に実行される。
【００３２】
図３において、まず、プロセッサ１０は、タスクＢに対応するタスク管理情報１００の「キャッシュ優先フラグ」（以下、「タスクＢのキャッシュ優先フラグ」という。）が「１」か否かを判別する（ステップＳ１）。タスクＢのキャッシュ優先フラグが「１」でない場合には、タスクＢが高い応答性を必要とせず、キャッシュメモリ２３を有効に活用する必要がない。このことから、ロックフラグ２２を「１」に設定してタスクＡの情報を格納しているキャッシュメモリ２３に対する情報の格納及び消去を禁止（キャッシュをロック）する（ステップＳ２）。
【００３３】
ステップＳ１の判別の結果、タスクＢのキャッシュ優先フラグが「１」である場合には、タスクＢが高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要がある。そのため、ロックフラグ２２を「０」に設定してタスクＡの情報を格納しているキャッシュメモリ２３に対する情報の格納及び消去を許可（キャッシュをアンロック）する（ステップＳ３）。
【００３４】
次いで、キャッシュ装置２０のロックフラグ２２を参照して、キャッシュメモリ２３へタスクＢの情報を格納することによってタスクスイッチを実行し（ステップＳ４）、本処理を終了する。
【００３５】
具体的には、ステップＳ４において、キャッシュメモリ２３が各種タスク（タスクＡも含む）の情報で占められておらず、キャッシュメモリ２３に空き容量が存在する場合には、キャッシュメモリ２３へタスクＢの情報を格納する。これは、ロックフラグ２２の設定（キャッシュのロック・アンロックに関する設定）に拘わらず実行される。
【００３６】
また、ステップＳ４において、キャッシュメモリ２３が各種タスクの情報で占められてキャッシュメモリ２３に空き容量が存在しない場合には、ロックフラグ２２が「０」に設定されていれば、キャッシュメモリ２３からタスクＡの情報を消去する。これと共に、キャッシュメモリ２３へタスクＢの情報を格納する。一方、ロックフラグ２２が「１」に設定されていれば、キャッシュメモリ２３からタスクＡの情報を消去せずそのまま維持し、キャッシュメモリ２３へタスクＢの情報を格納しない。
【００３７】
図３の処理によれば、コンピュータ１が実行するタスクがタスクＡからタスクＢへ切り替わる際、タスクＢのキャッシュ優先フラグが「０」である場合には、キャッシュをロックし、タスクＢのキャッシュ優先フラグが「１」である場合には、キャッシュをアンロックするので、キャッシュメモリ２３には、高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要があるタスクの情報が維持される。その結果、優先度の高いタスクを常時、迅速に実行することができる。
【００３８】
次に、本発明の第２の実施の形態に係るオペレーティングシステムについて説明する。
【００３９】
本実施の形態は、その構成、作用が上述した第１の実施の形態と基本的に同じであり、キャッシュのロック・アンロックを設定する際、タスクＢのキャッシュ優先フラグだけでなく、タスクＡのキャッシュ優先フラグも考慮する点で異なるのみである。したがって、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
【００４０】
図４は、図１におけるプロセッサが実行する、本実施の形態に係るキャッシュメモリの制御方法としての第２のタスクスイッチ（変更）処理のフローチャートである。本処理も、図４の処理と同様に、コンピュータ１が実行するタスクがタスクＡからタスクＢへ切り替わる際に実行される。
【００４１】
図４において、まず、プロセッサ１０は、タスクＡのキャッシュ優先フラグが「１」か否かを判別する（ステップＳ１０）。その結果、タスクＡのキャッシュ優先フラグが「１」である場合には、さらに、タスクＢのキャッシュ優先フラグが「１」か否かを判別する（ステップＳ１１）。
【００４２】
ステップＳ１１の判別の結果、タスクＢのキャッシュ優先フラグが「１」でない場合には、タスクＡが高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要がある。また、タスクＢが高い応答性を必要とせず、キャッシュメモリ２３を有効に活用する必要がない。このことから、ロックフラグ２２を「１」に設定してタスクＡの情報を格納しているキャッシュメモリ２３に対する情報の格納及び消去を禁止（キャッシュをロック）する（ステップＳ１３）。
【００４３】
また、ステップＳ１１の判別の結果、タスクＢのキャッシュ優先フラグが「１」である場合には、タスクＡだけでなくタスクＢも高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要がある。このことから、キャッシュ装置２０のロックフラグ２２の変更（キャッシュのロック・アンロックに関する設定の変更）は行わず、そのままステップＳ１５に進む。
【００４４】
また、ステップ１０の判別の結果、タスクＡのキャッシュ優先フラグが「１」でない場合であっても、さらに、タスクＢのキャッシュ優先フラグが「１」か否かを判別する（ステップＳ１２）。ここで、タスクＢのキャッシュ優先フラグが「１」でない場合には、タスクＡだけでなくタスクＢも高い応答性を必要とせず、キャッシュメモリ２３を有効に活用する必要もない。そのため、キャッシュ装置２０のロックフラグ２２の変更は行わず、そのままステップＳ１５に進む。
【００４５】
ステップＳ１２の判別の結果、タスクＢのキャッシュ優先フラグが「１」である場合には、タスクＡが高い応答性を必要とせず、キャッシュメモリ２３を有効に活用する必要がない。また、タスクＢが高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要がある。これらのことから、ロックフラグ２２を「０」に設定してタスクＡの情報を格納しているキャッシュメモリ２３に対する情報の格納及び消去を許可（キャッシュをアンロック）する（ステップＳ１４）。
【００４６】
次いで、キャッシュ装置２０のロックフラグ２２を参照して、キャッシュメモリ２３へタスクＢの情報を格納することによってタスクスイッチを実行し（ステップＳ１５）、本処理を終了する。
【００４７】
具体的には、ステップＳ１５において、キャッシュメモリ２３が各種タスクの情報で占められておらず、キャッシュメモリ２３に空き容量が存在する場合には、ロックフラグ２２の設定に拘わらず、キャッシュメモリ２３へタスクＢの情報を格納する。
【００４８】
また、ステップＳ１５において、キャッシュメモリ２３が各種タスクの情報で占められてキャッシュメモリ２３に空き容量が存在しない場合には、ロックフラグ２２が「０」に設定されていれば、キャッシュメモリ２３からタスクＡの情報を消去する。それと共に、キャッシュメモリ２３へタスクＢの情報を格納する。一方、ロックフラグ２２が「１」に設定されていれば、キャッシュメモリ２３からタスクＡの情報を消去せずそのまま維持し、キャッシュメモリ２３へタスクＢの情報を格納しない。
【００４９】
図４の処理によれば、コンピュータ１が実行するタスクが、タスクＡからタスクＢへ切り替わる際、タスクＡのキャッシュ優先フラグが「１」であり、且つタスクＢのキャッシュ優先フラグが「１」でない場合には、キャッシュをロックする。一方、タスクＡのキャッシュ優先フラグが「１」でなく、且つタスクＢのキャッシュ優先フラグが「１」である場合には、キャッシュをアンロックする。これにより、キャッシュメモリ２３には、高い応答性を必要とし、キャッシュメモリ２３を有効に活用する必要があるタスクの情報が確実に維持される。その結果、優先度の高いタスクを常時、迅速に実行することが確実にできる。
【００５０】
また、上述した図４の処理によれば、タスクＡ及びＢのキャッシュ優先フラグが共に「１」である場合や、いずれも「１」でない場合には、キャッシュ装置２０のロックフラグ２２の変更（キャッシュのロック・アンロックに関する設定の変更）は行わない。よって、以前に設定したキャッシュ装置２０のロックフラグ２２が活用される。その結果、タスクＡの情報のキャッシュメモリ２３からの消去に関してヒステリシスを考慮することができ、もってタスクＡの情報のキャッシュメモリ２３からの消去を柔軟に行うことができる。
【００５１】
上述した第１及び第２の実施の形態に係るオペレーティングシステムはリアルタイムオペレーティングシステムであるとした。しかしながら、本発明を適用可能なオペレーティングシステムはリアルタイムオペレーティングシステムである必要はなく、キャッシュメモリを用いるオペレーティングシステムであればよい。
【００５２】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【００５３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５４】
また、プログラムコードを供給するための記憶媒体としては、例えば、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ）、磁気テープ、不揮発性のメモリカード、他のＲＯＭ等の上記プログラムコードを記憶できるものであればよい。或いは、上記プログラムコードは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給されてもよい。
【００５５】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【００５６】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【００５７】
上記プログラムコードの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施の形態に係るオペレーティングシステムが稼働するコンピュータのハードウェアの概略構成を示す図である。
【図２】本実施の形態に係るオペレーティングシステムが有するタスク管理情報を説明するための図である。
【図３】図１におけるプロセッサが実行する、本実施の形態に係るキャッシュメモリの制御方法としての第１のタスクスイッチ処理のフローチャートである。
【図４】図１におけるプロセッサが実行する、本発明の第２の実施の形態に係るキャッシュメモリの制御方法としての第２のタスクスイッチ処理のフローチャートである。
【符号の説明】
【００５９】
１  コンピュータ
１０  プロセッサ
２０  キャッシュ装置
２１  キャッシュコントローラ
２２  ロックフラグ
２３  キャッシュメモリ
３０  メインメモリ
１００  タスク管理情報
【図１】
2007094735.tif 000003
【図２】
2007094735.tif 000004
【図３】
2007094735.tif 000005
【図４】
2007094735.tif 000006