(57)【特許請求の範囲】
【請求項１】
コンピュータシステムのメモリを管理する方法であって、
ユーザプロセスにより送信された割当てリクエストであって、前記ユーザプロセスについて前記コンピュータシステムのメモリの割当てを要求するのに利用される前記割当てリクエストを受信するステップと、
前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当てるステップと、
前記メモリについてオフラインフラグを設定するステップであって、前記オフラインフラグはロックされたメモリをオフラインに配置することが要求されるときに用いられる前記メモリのための複数のオフラインモードの１つを示す、前記設定するステップと、
前記ユーザプロセスにより送信されたロッキングリクエストであって、前記メモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するステップと、
前記メモリのオフラインフラグに示される前記オフラインモードと前記ロッキングリクエストとに従って前記メモリをロックするステップと、
オフラインに配置されることが要求されるときに前記ロックされたメモリのオフラインフラグに示される前記オフラインモードに従って前記ロックされたメモリをオフラインに配置するステップと、
を有する方法。
【請求項２】
モード情報を有し、前記ユーザプロセスにより送信される変更リクエストを受信するステップであって、前記モード情報は前記メモリについてユーザプロセスにより設定されたオフラインモードを示す、前記受信するステップと、
前記モード情報に従って、前記ユーザプロセスにより設定されたオフラインモードを示すため、前記メモリのオフラインフラグを変更するステップと、
をさらに有する、請求項１記載の方法。
【請求項３】
前記オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードの少なくとも１つを有する、請求項１又は２記載の方法。
【請求項４】
前記メモリのオフラインモードが前記デフォルトモードであるとき、前記コンピュータシステムの要求に従って前記メモリについて前記オフラインモードを再判定するステップと、
前記再判定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するステップと、
をさらに有する、請求項３記載の方法。
【請求項５】
前記コンピュータシステムの要求に従って前記メモリについて前記オフラインモードを再判定するステップは、
前記コンピュータシステムがシステム動作パフォーマンスを要求するとき、前記メモリのオフラインモードを前記デフォルトモードであると判定するステップと、
前記コンピュータシステムがホットスワップパフォーマンスを要求するとき、前記メモリのオフラインモードを前記マイグレートモードであると判定するステップと、
を有する、請求項４記載の方法。
【請求項６】
前記メモリのオフラインフラグと前記ロッキングリクエストとに従って前記メモリをロックするステップは、
前記メモリのオフラインフラグが前記デフォルトモード、前記通知モード又は前記強制アンロックモードを示すとき、前記メモリをロックするステップと、
前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記メモリをマイグレートするステップと、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに成功すると、マイグレートされたメモリをロックするステップと、
前記マイグレートされたメモリについて、前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに成功したとき、前記マイグレートモードを示すオフラインフラグを設定するステップと、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに不成功であったとき、前記メモリをロックするステップと、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに不成功であったとき、前記デフォルトモードを示すように前記メモリのオフラインフラグを変更するステップと、
を有する、請求項３乃至５何れか一項記載の方法。
【請求項７】
前記メモリのオフラインフラグに従って前記メモリをオフラインに配置するステップは、
前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされることを待機するステップと、
前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされた後に前記メモリをマイグレートするステップと、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリをアンロックするように前記ユーザプロセスをトリガするステップと、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリがアンロックされた後に前記メモリをマイグレートするステップと、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリがマイグレートされた後に前記マイグレートされたメモリをロックするため、前記ユーザプロセスをトリガするステップと、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリをアンロックするステップと、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリがアンロックされた後に前記メモリをマイグレートするステップと、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記マイグレートされたメモリをロックするステップと、
前記マイグレートされたメモリについて、前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記強制アンロックモードを示すオフラインフラグを設定するステップと、
を有する、請求項３乃至６何れか一項記載の方法。
【請求項８】
前記ユーザプロセスにより送信されるアンロッキングリクエストを受信するステップであって、前記アンロッキングリクエストは前記メモリがアンロックされることを要求するのに利用される、前記受信するステップと、
前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記ユーザプロセスが前記アンロッキングリクエストに従って実行されるノードに前記メモリを再マイグレートするステップと、
を有する、請求項３乃至７何れか一項記載の方法。
【請求項９】
ユーザプロセスにより送信される割当てリクエストであって、前記ユーザプロセスについてコンピュータシステムのメモリの割り当てを要求するのに利用される前記割当てリクエストを受信するよう構成される第１受信モジュールと、
前記第１受信モジュールにより受信される前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当て、ロックされたメモリをオフラインに配置することが要求されるときに用いられる前記メモリのための複数のオフラインモードの１つを示すオフラインフラグを前記メモリについて設定するよう構成される割当てモジュールと、
前記ユーザプロセスにより送信されるロッキングリクエストであって、前記コンピュータシステムのメモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するよう構成される第２受信モジュールと、
前記メモリのオフラインフラグに示される前記オフラインモードと前記第２受信モジュールにより受信される前記ロッキングリクエストとに従って前記メモリをロックするよう構成されるロッキングモジュールと、
オフラインに配置されることが要求されるときに前記ロックされたメモリのオフラインフラグに示される前記オフラインモードに従って前記ロッキングモジュールによりロックされたメモリをオフラインに配置するよう構成されるオフラインモジュールと、
を有するメモリ管理ユニット。
【請求項１０】
モード情報を有し、前記ユーザプロセスにより送信された変更リクエストを受信するよう構成される第３受信モジュールであって、前記モード情報は前記メモリについてユーザプロセスにより設定されたオフラインモードを示す、前記第３受信モジュールと、
前記第３受信モジュールにより受信されるモード情報に従って前記ユーザプロセスにより設定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される変更モジュールと、
をさらに有する、請求項９記載のメモリ管理ユニット。
【請求項１１】
前記オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードの少なくとも１つを有する、請求項９又は１０記載のメモリ管理ユニット。
【請求項１２】
前記コンピュータシステムの要求に従って前記メモリについて前記オフラインモードを再判定し、前記メモリのオフラインモードが前記デフォルトモードであるとき、前記再判定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される判定モジュールをさらに有する、請求項１１記載のメモリ管理ユニット。
【請求項１３】
前記判定モジュールは、
前記コンピュータシステムがシステム動作パフォーマンスを要求するとき、前記メモリのオフラインモードが前記デフォルトモードであると判定するよう構成される第１判定サブモジュールと、
前記コンピュータシステムがホットスワップパフォーマンスを要求するとき、前記メモリのオフラインモードが前記マイグレートモードであると判定するよう構成される第２判定サブモジュールと、
を有する、請求項１２記載のメモリ管理ユニット。
【請求項１４】
前記ロッキングモジュールは、
前記メモリのオフラインフラグが前記デフォルトモード、前記通知モード又は前記強制アンロックモードを示すとき、前記メモリをロックするよう構成される第１ロッキングサブモジュールと、
前記メモリのオフラインフラグが前記マイグレートモードであることを示すとき、前記メモリをマイグレートし、前記メモリがマイグレートに成功したとき、マイグレートされたメモリをロックし、前記マイグレートされたメモリについて、前記メモリがマイグレートに成功したとき、前記マイグレートモードを示すオフラインフラグを設定し、前記メモリがマイグレートに不成功であったとき、前記メモリをロックし、前記メモリがマイグレートに不成功であったとき、前記デフォルトモードを示すように前記メモリのオフラインフラグを変更するよう構成される第２ロッキングサブモジュールと、
を有する、請求項１１乃至１３何れか一項記載のメモリ管理ユニット。
【請求項１５】
前記オフラインモジュールは、
前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされることを待機し、前記メモリがアンロックされた後に前記メモリをマイグレートするよう構成される第１オフラインサブモジュールと、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリをアンロックするよう前記ユーザプロセスをトリガし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記メモリがマイグレートされた後に前記マイグレートされたメモリをロックするため前記ユーザプロセスをトリガするよう構成される第２オフラインサブモジュールと、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリをアンロックし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記マイグレートされたメモリをロックし、前記マイグレートされたメモリについて前記強制アンロックモードを示すオフラインフラグを設定するよう構成される第３オフラインサブモジュールと、
を有する、請求項１１乃至１４何れか一項記載のメモリ管理ユニット。
【請求項１６】
前記ユーザプロセスにより送信されるアンロッキングリクエストを受信するよう構成される第４受信モジュールであって、前記アンロッキングリクエストは前記メモリがアンロックされることを要求するのに利用される、前記第４受信モジュールと、
前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記ユーザプロセスが前記第４受信モジュールにより受信されるアンロッキングリクエストに従って実行されるノードに前記メモリを再マイグレートするよう構成される再マイグレートモジュールと、
をさらに有する、請求項１１乃至１５何れか一項記載のメモリ管理ユニット。
【請求項１７】
少なくとも１つのメモリと、
前記メモリに接続されるプロセッサと、
を有するコンピュータシステムであって、
前記プロセッサは、
ユーザプロセスについて当該コンピュータシステムのメモリの割当てを要求するのに利用される前記ユーザプロセスにより送信された割当てリクエストを受信し、
前記割当てリクエストに従って前記ユーザプロセスに前記メモリを割当て、
ロックされたメモリをオフラインに配置することが要求されるときに用いられる前記メモリのための複数のオフラインモードの１つを示すオフラインフラグを前記メモリについて設定し、
前記メモリがロックされることを要求するのに利用される前記ユーザプロセスにより送信されるロッキングリクエストを受信し、
前記メモリのオフラインフラグに示される前記オフラインモードと前記ロッキングリクエストとに従って前記メモリをロックし、
オフラインに配置されることが要求されるときに前記ロックされたメモリのオフラインフラグに示される前記オフラインモードに従って前記ロックされたメモリをオフラインに配置する、
よう構成されるコンピュータシステム。
【請求項１８】
前記プロセッサはさらに、
前記メモリのユーザプロセスにより設定されたオフラインモードを示すモード情報を有し、前記ユーザプロセスにより送信される変更リクエストを受信し、
前記モード情報に従って前記ユーザプロセスにより設定されたオフラインモードを示すように前記メモリのオフラインフラグを変更する、
よう構成される、請求項１７記載のシステム。
【請求項１９】
前記オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードの少なくとも１つを有する、請求項１７又は１８記載のシステム。
【請求項２０】
前記プロセッサはさらに、
前記メモリのオフラインモードが前記デフォルトモードであるとき、当該コンピュータシステムの要求に従って前記メモリのオフラインモードを再判定し、
前記再判定されたオフラインモードを示すように前記メモリのオフラインフラグを変更する、
よう構成される、請求項１９記載のシステム。
【請求項２１】
当該コンピュータシステムの要求に従って前記メモリのオフラインモードを再判定する際、前記プロセッサはさらに、
当該コンピュータシステムがシステム動作パフォーマンスを要求するとき、前記メモリのオフラインモードを前記デフォルトモードであると判定し、
当該コンピュータシステムがホットスワップパフォーマンスを要求するとき、前記メモリのオフラインモードを前記マイグレートモードであると判定する、
よう構成される、請求項２０記載のシステム。
【請求項２２】
前記メモリのオフラインフラグと前記ロッキングリクエストとに従って前記メモリをロックする際、前記プロセッサはさらに、
前記メモリのオフラインフラグが前記デフォルトモード、前記通知モード又は前記強制アンロックモードを示すとき、前記メモリをロックし、
前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記メモリをマイグレートし、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに成功したとき、マイグレートされたメモリをロックし、
前記マイグレートされたメモリについて、前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに成功したとき、前記マイグレートモードを示すオフラインフラグを設定し、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに不成功であったとき、前記メモリをロックし、
前記メモリのオフラインフラグが前記マイグレートモードを示し、前記メモリがマイグレートに不成功であったとき、前記デフォルトモードを示すように前記メモリのオフラインフラグを変更する、
よう構成される、請求項１９乃至２１何れか一項記載のシステム。
【請求項２３】
前記メモリのオフラインフラグに従って前記メモリをオフラインに配置する際、前記プロセッサはさらに、
前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされるのを待機し、
前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされた後に前記メモリをマイグレートし、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリをアンロックするため前記ユーザプロセスをトリガし、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリがアンロックされた後に前記メモリをマイグレートし、
前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリがマイグレートされた後に前記マイグレートされたメモリをロックするため前記ユーザプロセスをトリガし、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリをアンロックし、
前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記マイグレートされたメモリをロックし、
前記マイグレートされたメモリについて、前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記強制アンロックモードを示すオフラインフラグを設定する、
よう構成される、請求項１９乃至２２何れか一項記載のシステム。
【請求項２４】
前記プロセッサはさらに、
前記メモリがアンロックされることを要求するのに利用される前記ユーザプロセスにより送信されるアンロッキングリクエストを受信し、
前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記アンロッキングリクエストに従って前記ユーザプロセスが実行されるノードに前記メモリを再マイグレートする、
よう構成される、請求項１９乃至２３何れか一項記載のシステム。
【請求項２５】
請求項１乃至８何れか一項記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの分野に関し、特にコンピュータの分野におけるコンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステムに関する。
【背景技術】
【０００２】
中程度のサーバ又はハイエンドサーバは、ある程度のフレキシビリティを有することが要求され、デバイスのホットスワップ機能は、フレキシビリティの重要な部分である。すなわち、サーバは、キャパシティの拡張とフォルト隔離の課題を達成するため、コンピュータシステムをインタラプトさせることなくデバイスの動的な追加又は削除を実現し、これにより、コンピュータシステムの信頼性、サービス可用性又はエネルギーの節約の要求を満たす。
【０００３】
ホットスワップデバイスは、一般に、例えば、プロセッサ、メモリ又は入出力（ＩＯ）周辺デバイスなどを含み、ここで、メモリは、コンピュータシステムの重要なリソースの１つであるため、ホットスワップの最重要な構成部分の１つである。メモリホットプラギング（ｍｅｍｏｒｙ  ｈｏｔ−ｐｌｕｇｇｉｎｇ）は、コンピュータシステムをインタラプトさせることなく追加されるメモリデバイスであり、メモリホットドローイング（ｍｅｍｏｒｙ  ｈｏｔ−ｄｒａｗｉｎｇ）は、コンピュータシステムをインタラプトさせることなく追加されるメモリデバイスである。メモリホットドローイングは、ターゲットメモリにおいて占有されるメモリをマイグレート及びリカバすることを必要とする。しかしながら、コンピュータシステムには、カーネルにより占有される物理ページとユーザプロセスによりロックされる物理ページとを含むマイグレート不可なページが存在する。
【０００４】
アプリケーションプロセスでは、カーネルにより占有される物理ページはカーネルによるメモリの適用処理においてコンピュータシステムによりマイグレート不可なページとしてマーク付けされるため、コンピュータシステムは、ターゲットメモリをオフラインに配置する目的を達成するため、特定エリア（マイグレート不可なメモリエリア）から物理メモリを割り当てる。ユーザプロセスがメモリに適用されると、メモリは、共通のマイグレート可能なメモリに属するが、ユーザプロセスがメモリをロックすることを指定した後、メモリは、ターゲットメモリをオフラインに配置する際の障害になるマイグレート不可なページとしてマーク付けされる。ユーザプロセスによりロックされたメモリがオフラインに配置可能であるか否かは、メモリのホットスワップを実現する際のキーファクタの１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザプロセスによりロックされるメモリがオフラインに取得することが困難であるという問題のため、繰り返しの試行中にメモリがユーザプロセスによりアンロックされるという予想のため、メモリをマイグレートするために試行が繰り返し行われる。しかしながら、繰り返しの試行を介したマイグレート方法は、ユーザプロセスによりロックされたメモリのアンロックがメモリをマイグレートするための試行によって全く影響を受けないため、メモリがオフラインに配置されることを保証することができず、これら２つの間の必要な関係は存在しない。従って、メモリをオフラインに配置する試行のプロセスにおいて、ユーザプロセスによりロックされるメモリは、永続的にロック状態に維持される可能性がある。
【０００６】
従って、ユーザプロセスによりロックされるメモリをオフラインに配置するため、コンピュータシステムのメモリを管理するのに適した手段が必要とされ、これにより、メモリのホットスワップを実現する。
【０００７】
本発明の実施例は、ユーザプロセスによりロックされたメモリをオフラインに配置し、これによりメモリのホットスワップを実現するコンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステムを提供する。
【課題を解決するための手段】
【０００８】
一態様では、本発明の実施例は、コンピュータシステムのメモリを管理する方法であって、ユーザプロセスにより送信された割当てリクエストであって、前記ユーザプロセスについて前記コンピュータシステムのメモリの割当てを要求するのに利用される前記割当てリクエストを受信するステップと、前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当てるステップと、前記メモリについてオフラインフラグを設定するステップであって、前記オフラインフラグは前記メモリについてオフラインモードを示す、前記設定するステップと、前記ユーザプロセスにより送信されたロッキングリクエストであって、前記メモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するステップと、前記メモリのオフラインフラグと前記ロッキングリクエストとに従って前記メモリをロックするステップと、前記メモリのオフラインフラグに従って前記メモリをオフラインに配置するステップとを有する方法を提供する。
【０００９】
他の態様では、本発明の実施例は、ユーザプロセスにより送信される割当てリクエストであって、前記ユーザプロセスについてコンピュータシステムのメモリの割り当てを要求するのに利用される前記割当てリクエストを受信するよう構成される第１受信モジュールと、前記第１受信モジュールにより受信される前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当て、前記メモリのオフラインモードを示すオフラインフラグを前記メモリについて設定するよう構成される割当てモジュールと、前記ユーザプロセスにより送信されるロッキングリクエストであって、前記コンピュータシステムのメモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するよう構成される第２受信モジュールと、前記メモリのオフラインフラグと前記第２受信モジュールにより受信されるロッキングリクエストとに従って前記メモリをロックするよう構成されるロッキングモジュールと、前記メモリのオフラインフラグに従って前記ロッキングモジュールによりロックされたメモリをオフラインに配置するよう構成されるオフラインモジュールとを有するメモリ管理ユニットを提供する。
【００１０】
さらなる他の態様では、本発明の実施例は、少なくとも１つのメモリと、本発明の実施例によるメモリ管理ユニットとを有するコンピュータシステムを提供する。メモリ管理ユニットは、少なくとも１つのメモリを管理するよう構成される。メモリ管理ユニットは、ユーザプロセスにより送信される割当てリクエストであって、前記ユーザプロセスについてコンピュータシステムのメモリの割り当てを要求するのに利用される前記割当てリクエストを受信するよう構成される第１受信モジュールと、前記第１受信モジュールにより受信される前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当て、前記メモリのオフラインモードを示すオフラインフラグを前記メモリについて設定するよう構成される割当てモジュールと、前記ユーザプロセスにより送信されるロッキングリクエストであって、前記コンピュータシステムのメモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するよう構成される第２受信モジュールと、前記メモリのオフラインフラグと前記第２受信モジュールにより受信されるロッキングリクエストとに従って前記メモリをロックするよう構成されるロッキングモジュールと、前記メモリのオフラインフラグに従って前記ロッキングモジュールによりロックされたメモリをオフラインに配置するよう構成されるオフラインモジュールとを有する。
【発明の効果】
【００１１】
上記技術的手段に基づき、本発明の実施例によるコンピュータシステムを管理する方法、メモリ管理ユニット及びコンピュータシステムにおいて、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定することによって、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置し、これにより、メモリのホットスワップを実現し、システムリソースの浪費を回避することが可能である。
【００１２】
本発明の実施例による技術的手段をより明確に説明するため、実施例を示す添付した図面が以下において概略的に紹介される。以下の説明における添付した図面は、本発明の一部の実施例であり、当業者は、創作的な努力なく添付した図面から他の図面を導出してもよい。
【図面の簡単な説明】
【００１３】
【図１Ａ】図１Ａは、本発明の実施例によるコンピュータシステムのメモリを管理する方法の概略的なフローチャートである。
【図１Ｂ】図１Ｂは、本発明の他の実施例によるコンピュータシステムのメモリを管理する方法の概略的なフローチャートである。
【図１Ｃ】図１Ｃは、本発明のさらなる他の実施例によるコンピュータシステムのメモリを管理する方法の概略的なフローチャートである。
【図２】図２は、本発明の実施例によるメモリのオフラインモードを変更する方法の概略的なフローチャートである。
【図３】図３は、本発明の実施例によるメモリをロックする方法の概略的なフローチャートである。
【図４】図４は、本発明の実施例によるロックされたメモリをオフラインに配置する方法の概略的なフローチャートである。
【図５】図５は、本発明の実施例によるメモリをアンロックする方法の概略的なフローチャートである。
【図６】図６は、本発明の実施例によるメモリ管理ユニットの概略的なブロック図である。
【図７】図７は、本発明の他の実施例によるメモリ管理ユニットの概略的なブロック図である。
【図８】図８は、本発明のさらなる他の実施例によるメモリ管理ユニットの概略的なブロック図である。
【図９】図９は、本発明の実施例によるロッキングモジュールの概略的なブロック図である。
【図１０】図１０は、本発明の実施例によるオフラインモジュールの概略的なブロック図である。
【図１１】図１１は、本発明の実施例による判定モジュールの概略的なブロック図である。
【図１２】図１２は、本発明の実施例によるコンピュータシステムの概略的なブロック図である。
【発明を実施するための形態】
【００１４】
本発明の実施例による技術的手段は、本発明の実施例において添付した図面を参照して以下で明確に説明される。開示される実施例は本発明の実施例の全てでなく一部であることは明らかである。創作的な努力なく本発明の実施例に基づき当業者により取得される他のすべての実施例は、本発明の保護範囲内に属する。
【００１５】
本発明の実施例による技術的手段は、パーソナルコンピュータ（ＰＣ）、大規模コンピュータシステム又は各種スーパーコンピュータを含む各種コンピュータシステムに適用可能であることに留意すべきである。本発明の実施例では、少なくとも１つのメモリを含むコンピュータシステムが、説明のための具体例として取り上げられるが、本発明の実施例はこれに限定されるものでない。
【００１６】
図１Ａは、本発明の実施例によるコンピュータシステムのメモリを管理する方法１００の概略的なフローチャートである。図１Ａに示されるように、方法１００は以下を含む。
【００１７】
Ｓ１１０：ユーザプロセスに対するコンピュータシステムのメモリの割当てを要求するのに利用されるユーザプロセスにより送信される割り当て要求を受信する。
【００１８】
Ｓ１２０：割り当て要求に従ってユーザプロセスに対してメモリを割り当て、メモリのオフラインモードを示すのに利用されるオフラインフラグをメモリについて設定する。
【００１９】
Ｓ１３０：メモリがロックされることを要求するのに利用されるユーザプロセスにより送信されるロッキングリクエストを受信する。
【００２０】
Ｓ１４０：メモリのオフラインフラグとロッキングリクエストに従ってメモリをロックする。
【００２１】
Ｓ１５０：メモリのオフラインフラグに従ってメモリをオフラインに配置する。
【００２２】
ユーザプロセスにより送信され、コンピュータシステムのメモリの割当てを要求するのに利用される割り当てリクエストを受信した後、コンピュータシステムのカーネル、オペレーティングシステム又はメモリ管理ユニットは、ユーザプロセスに対してメモリを割り当て、メモリのオフラインモードを示すためのオフラインフラグをメモリについて設定し、ユーザプロセスにより送信され、メモリをロックすることを要求するのに利用されるリクエストの受信後、カーネル又はオペレーティングシステムは、ユーザプロセスのロックリクエストとメモリのオフラインフラグとに従ってメモリをロックし、ロックされたメモリをオフラインに配置することが要求されると、メモリのオフラインフラグに従ってメモリをオフラインに配置してもよい。
【００２３】
従って、本発明の実施例によるコンピュータシステムのメモリを管理する方法において、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定すると、カーネルは、ユーザプロセスによるロックされるメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置可能であり、これにより、メモリのホットスワップを実現し、システムリソースの浪費を回避することが可能である。
【００２４】
本発明の実施例では、オフラインモード又はオフラインポリシーは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードの少なくとも１つを含むものであってもよい。任意的には、オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードを含む。
【００２５】
デフォルトモードでは、ユーザプロセスは、デフォルトモードを介しメモリがオフラインに配置されることを指定し、ユーザプロセスがオフラインポリシーを指定しないとき、当該モードがまた利用されてもよい。マイグレートモードでは、メモリがロックされる前、メモリは、マイグレート不可エリアにマイグレートされる必要があり、その後にロックされる。通知モードでは、カーネルがメモリをオフラインに配置することが要求される前に、カーネルは、メモリをアンロックするためユーザプロセスをトリガする。強制アンロックモードでは、カーネルは、メモリをオフラインに配置することが要求されると、メモリを強制的にアンロックし、その後にメモリをオフラインに取得してもよい。本発明の実施例の４つのオフラインモードの名称及び概略は、本発明の実施例の理解を容易にするため単に与えられたものであり、本発明の実施例はこれに限定されるものでないことに留意すべきである。さらに、４つのオフラインモードの具体的な意味は、本発明の実施例において説明される具体的な処理を参照して理解されるべきである。
【００２６】
本発明の実施例では、ユーザプロセスは、要求に従って適用されるメモリのオフラインモードを変更する。すなわち、ユーザプロセスは、メモリのオフラインモードを設定する。従って、図１Ｂに示されるように、本発明の実施例によるコンピュータシステムのメモリを管理する方法１００はさらに以下を含むものであってもよい。
【００２７】
Ｓ１６０：メモリについてユーザプロセスにより設定されるオフラインモードを示すモード情報を含み、ユーザプロセスにより送信される変更リクエストを受信する。
【００２８】
Ｓ１７０：モード情報に従ってユーザプロセスにより設定されたオフラインモードを示すようにメモリのオフラインフラグを変更する。
【００２９】
すなわち、ユーザプロセスがメモリについて適用された後、ユーザプロセスは、要求に従って適用されたメモリについてオフラインモードを設定し、モード情報に従ってカーネルがユーザプロセスにより設定されたオフラインモードを示すようにメモリのオフラインフラグを変更するように、モード情報を含む変更リクエストをカーネルに送信してもよい。
【００３０】
本発明の実施例では、カーネルがユーザプロセスにより送信されるロッキングリクエストを受信した後、カーネルは、メモリのオフラインフラグに従ってメモリのオフラインモードを決定し、メモリのオフラインモードがデフォルトモードである場合、カーネルは、所望されるようにメモリのオフラインモードをリセットしてもよい。すなわち、図１Ｂに示されるように、本発明の実施例による方法１００はさらに以下を含むものであってもよい。
【００３１】
Ｓ１８０：メモリのオフラインモードがデフォルトモードである場合、コンピュータシステムの要求に従ってメモリのオフラインモードを再判定し、再判定されたオフラインモードを示すようにメモリのオフラインフラグを変更する。
【００３２】
任意的には、コンピュータシステムがシステム動作パフォーマンスを要求する場合、カーネルは、メモリのオフラインモードがデフォルトモードであると判定し、コンピュータシステムがホットスワップパフォーマンスを要求する場合、カーネルは、メモリのオフラインモードがマイグレートモードであると判定する。
【００３３】
本発明の実施例による方法はカーネル、オペレーティングシステム又はメモリ管理ユニットにより実行可能であることに留意すべきである。説明の簡単化のため、カーネルは以下において実行本体として利用されるが、本発明の実施例はこれに限定されるものでない。
【００３４】
具体的には、ステップＳ１１０において、ユーザプロセスは、ユーザプロセスの要求に従ってメモリの割当てを要求するため割当要求をカーネルに送信してもよい。
【００３５】
ステップＳ１２０において、カーネルは、割り当て要求に従ってユーザプロセスに対してメモリを割り当て、メモリに対して当該メモリのオフラインモードを示すのに利用されるオフラインフラグを設定する。任意的には、カーネルは、割り当てられたメモリについてデフォルトモードを示すオフラインフラグを設定する。例えば、カーネルは、メモリについてオフラインフラグＰＧ＿ｆｌａｇを追加し、当該オフラインフラグにＤＥＦＡＵＬＴの値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴである。明らかに、カーネルはまたメモリに他のオフラインモードを設定してもよく、本発明の実施例はこれに限定されるものでない。
【００３６】
任意的には、ユーザプロセスは、カーネルにより提供されたインタフェースを介し適用されたメモリについてオフラインモード又はオフラインポリシーを設定又は形成してもよい。具体的には、ステップＳ１６０において、ユーザプロセスは、ユーザプロセスの要求に従って、メモリについてユーザプロセスにより設定されたオフラインモードを示すモード情報を含むメモリのオフラインモードを変更するための変更リクエストをカーネルに送信してもよい。例えば、変更リクエストは、ＤＥＦＡＵＬＴ、ＭＩＧＲＡＴＥ、ＮＯＴＩＦＹ及びＵＮＬＯＣＫなどの値に割り当てられるＢＥＨＡＶＩＯＲパラメータを含むものであってもよく、それぞれは、ユーザプロセスがメモリのオフラインモードをデフォルトモード、マイグレートモード、通知モード及び強制アンロックモードとなるよう設定することを示す。
【００３７】
ステップＳ１７０において、カーネルは、モード情報に従ってメモリのオフラインモードを変更する。具体的には、カーネルは、変更リクエストにおいて送信されるＢＥＨＡＶＩＯＲパラメータに従って、ユーザプロセスにより設定されたオフラインモードを示すようにメモリのオフラインフラグを変更してもよい。
【００３８】
具体的には、例えば、オフラインモードが変更されることが要求されるメモリＡについて、カーネルは、変更リクエストに含まれるＢＥＨＡＶＩＯＲパラメータを解析してもよい。ＢＥＨＡＶＩＯＲ＝＝ＤＥＦＡＵＬＴである場合、カーネルは、ユーザプロセスがメモリＡのオフラインモードをデフォルトモードとなるよう設定すると判定してもよい。このとき、カーネルは、メモリＡのオフラインフラグＰＧ＿ｆｌａｇを変更してもよく、すなわち、オフラインフラグをＤＥＦＡＵＬＴの値に割り当て、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴとしてもよい。ＢＥＨＡＶＩＯＲ＝＝ＭＩＧＲＡＴＥである場合、カーネルは、ユーザプロセスがメモリＡのオフラインモードをマイグレートモードとなるよう設定していると判定してもよく、このとき、カーネルは、メモリＡのオフラインフラグをＭＩＧＲＡＴＥの値に割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＭＩＧＲＡＴＥとしてもよい。同様に、ＢＥＨＡＶＩＯＲ＝＝ＮＯＴＩＦＹである場合、カーネルは、ユーザプロセスがメモリＡのオフラインモードを通知モードになるよう設定していると判定し、このとき、カーネルはメモリＡのオフラインフラグをＮＯＴＩＦＹの値に割り当て、ＰＧ＿ｆｌａｇ＝ＮＯＴＩＦＹとしてもよい。ＢＥＨＡＶＩＯＲ＝＝ＵＮＬＯＣＫである場合、カーネルは、ユーザプロセスがメモリＡのオフラインモードが強制アンロックモードになるよう設定していると判定し、このとき、カーネルは、メモリＡのオフラインフラグをＵＮＬＯＣＫの値に割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＵＮＬＯＣＫとしてもよい。
【００３９】
ステップＳ１３０において、ユーザプロセスは、ユーザプロセスの要求に従ってコンピュータシステムのメモリをロックするようカーネルに要求してもよい。
【００４０】
ステップＳ１４０において、カーネルがユーザプロセスにより送信されたロッキングリクエストを受信した後、カーネルは、ロックされるよう要求されたメモリのオフラインモードを判定する必要があり、具体的なオフラインモードとロッキングリクエストとに従ってメモリをロックする。
【００４１】
具体的には、カーネルは、メモリのオフラインフラグを解析することによって、メモリのオフラインモードを判定してもよい。例えば、メモリのオフラインフラグがＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、メモリのオフラインモードはデフォルトモードである。同様に、メモリのオフラインフラグＰＧ＿ｆｌａｇがＭＩＧＲＡＴＥ、ＮＯＴＩＦＹ又はＵＮＬＯＣＫであるとカーネルが判定した場合、メモリのオフラインモードはマイグレートモード、通知モード又は強制アンロックモードであるとカーネルは判定してもよい。
【００４２】
任意的には、メモリのオフラインフラグがデフォルトモード、通知モード又は強制アンロックモードを示す場合、メモリはロックされる。メモリのオフラインモードがマイグレートモードを示す場合、メモリはマイグレートされ、メモリがマイグレートに成功した場合、マイグレートされたメモリはロックされ、マイグレートモードを示すオフラインフラグがマイグレートされたメモリについて設定される。メモリがマイグレートに不成功であった場合、メモリはロックされ、メモリのオフラインフラグは、デフォルトモードを示すよう変更される。
【００４３】
任意的には、メモリのオフラインモードがデフォルトモードであるとカーネルが判定した場合、カーネルは、当該メモリについてより適切なオフラインモードを再判定するようにしてもよい。すなわち、ステップＳ１８０において、カーネルは、コンピュータシステムの要求に従ってメモリのオフラインモードを再判定し、再判定されたオフラインモードを示すようにメモリのオフラインフラグを変更する。
【００４４】
ステップＳ１５０において、カーネルがユーザプロセスによりロックされたメモリをオフラインに配置する必要がある場合、カーネルは、メモリのオフラインフラグを解析することによって、メモリのオフラインモードを判定し、オフラインモードに従ってメモリをオフラインに配置するようにしてもよい。
【００４５】
任意的には、メモリのオフラインフラグがデフォルトモード又はマイグレートモードを示す場合、メモリはアンロックとなるよう待機され、メモリがアンロックになった後にマイグレートされる。メモリのオフラインフラグが通知モードを示す場合、ユーザプロセスはメモリをアンロックするようトリガされ、メモリがアンロックされた後にメモリはマイグレートされ、メモリがマイグレートされた後にマイグレートされたメモリをロックするようユーザプロセスはトリガされる。メモリのオフラインフラグが強制アンロックモードを示す場合、メモリはアンロックされ、メモリがアンロックされた後にマイグレートされ、マイグレートされたメモリに対して、強制アンロックモードを示すオフラインフラグが設定される。
【００４６】
従って、本発明の実施例によるコンピュータシステムのメモリを管理する方法では、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定して、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置可能であり、これにより、メモリのホットスワップを実現し、システムリソースの浪費を回避することができる。
【００４７】
本発明の実施例では、任意的には、図１Ｃに示されるように、ユーザプロセスがロックされたメモリをアンロックするため適用される場合、本発明の実施例による方法１００はさらに以下を含む。
【００４８】
Ｓ１９０：メモリがアンロックされることを要求するのに利用されるユーザプロセスにより送信されるアンロッキングリクエストを受信する。
【００４９】
Ｓ１９５：アンロッキングリクエストに従って、メモリのオフラインフラグがマイグレートモードを示す場合、メモリをユーザプロセスが実行されているノードに再マイグレートする。
【００５０】
すなわち、ユーザプロセスがロックされたメモリのアンロックをアクティブに要求するプロセスでは、メモリのオフラインモードがマイグレートモードであることをメモリのオフラインフラグが示す場合、ロックされたメモリがアンロックされる前に、カーネルは、ユーザプロセスが実行されるノードにロックされたメモリを再マイグレートするため、ローカルメモリに適用されてもよい。デフォルトモード、通知モード又は強制アンロックモードであるオフラインモードによるロックされたメモリについて、カーネルは、ユーザプロセスの適用に従ってロックされたメモリを直接アンロックしてもよい。例えば、この場合、ＭＩＧＲＡＴＥオフラインフラグのロックされたメモリについて、アンロックされる前に、メモリは、ユーザプロセスが実行されているノードに再マイグレートされ、システムパフォーマンスをさらに向上させることができる。
【００５１】
上記のステップのシーケンス番号は実行順序を意味しておらず、ステップの実行順序はファンクション及び内部ロジックに従って決定されるべきであり、本発明の実施例の実現処理を何れかの方法に限定することを意図していないことに留意すべきである。
【００５２】
従って、本発明の実施例によるコンピュータシステムのメモリを管理する方法では、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定して、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置可能であり、メモリのホットスワップを実現し、システムパフォーマンスを向上させ、システムリソースの浪費を回避することができる。
【００５３】
図２〜５に示される特定の実施例を参照して、本発明の実施例によるメモリのオフラインモードを変更する方法、メモリをロックする方法、ロックされたメモリをオフラインに配置する方法、及びメモリをアンロックする方法が、以下で詳細に説明される。
【００５４】
図２に示されるように、本発明の実施例によるメモリのオフラインモードを設定する方法２００は以下を含む。
【００５５】
Ｓ２０１：ユーザプロセスは、当該ユーザプロセスの要求に従ってメモリＡについて適用される。
【００５６】
Ｓ２０２：カーネルは、ユーザプロセスにより送信される割り当てリクエストに従ってユーザプロセスについてメモリを割り当て、メモリのオフラインモードを示すのに利用されるオフラインフラグを当該メモリについて設定する。任意的には、カーネルは、メモリのオフラインフラグＰＧ＿ｆｌａｇをデフォルトモードＤＥＦＡＵＬＴとなるよう設定し、すなわち、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴである。
【００５７】
任意的には、ユーザプロセスがメモリＡに適用され、メモリＡを取得した後、ユーザプロセスは、カーネルにより提供されるインタフェースを介しメモリＡのオフラインモードを設定してもよく、ここで、オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードを含む。
【００５８】
Ｓ２０３：ユーザプロセスは、メモリのオフラインモードを変更するため適用される変更リクエストをカーネルに送信する。ここで、変更リクエストは、メモリについてユーザプロセスにより設定されるオフラインモードを示すためのモード情報を含み、モード情報は、例えば、ＢＥＨＡＶＩＯＲパラメータである。
【００５９】
Ｓ２０４：カーネルは、ユーザプロセスにより提供されるＢＥＨＡＶＩＯＲパラメータなどのモード情報を解析することによって、メモリＡについてユーザプロセスにより設定されるオフラインモードを判定する。
【００６０】
メモリＡについてユーザプロセスにより設定されたオフラインモードがデフォルトモードである場合、プロセスはステップＳ２０５に移行し、メモリＡについてユーザプロセスにより設定されるオフラインモードがデフォルトモードでない場合、プロセスはステップＳ２０６、Ｓ２０７又はＳ２０８に移行する。具体的には、メモリＡについてユーザプロセスにより設定されるオフラインモードがマイグレートモードである場合、プロセスはステップＳ２０６に移行し、メモリＡについてユーザプロセスにより設定されるオフラインモードが通知モードである場合、プロセスはステップＳ２０７に移行し、メモリＡについてユーザプロセスにより設定されるオフラインモードが強制アンロックモードである場合、プロセスはステップＳ２０８に移行する。
【００６１】
Ｓ２０５：カーネルは、メモリのオフラインフラグにＤＥＦＡＵＬＴの値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴである。このとき、デフォルトモードであるユーザプロセスにより設定されるオフラインモードのメモリＡについて、メモリＡのオフラインフラグを設定するプロセスは終了する。
【００６２】
Ｓ２０６：カーネルは、メモリＡのオフラインフラグに値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＭＩＧＲＡＴＥである。このとき、マイグレートモードであるユーザプロセスにより設定されるオフラインモードのメモリＡについて、メモリＡについてオフラインモードを設定するプロセスは終了する。
【００６３】
Ｓ２０７：カーネルは、メモリＡのオフラインフラグにＮＯＴＩＦＹの値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＮＯＴＩＦＹである。このとき、通知モードであるユーザプロセスにより設定されるオフラインモードのメモリＡについて、メモリＡのオフラインモードを設定するプロセスは終了する。
【００６４】
Ｓ２０８：カーネルは、メモリＡのオフラインフラグにＵＮＬＯＣＫの値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＵＮＬＯＣＫである。このとき、強制アンロックモードであるユーザプロセスにより設定されるオフラインモードのメモリＡについて、メモリＡのオフラインモードを設定するプロセスは終了する。
【００６５】
上記のステップのシーケンス番号は実行順序を意味するものでなく、ステップの実行順序はファンクションと内部ロジックとに従って判定されるべきであり、本発明の実施例の実現プロセスを何れかの方法により限定することを意図していないことに留意すべきである。
【００６６】
従って、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定し、カーネルは、メモリをロックし、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置できる。
【００６７】
図３は、本発明の実施例によるメモリをロックする方法３００の概略的なフローチャートである。図３に示されるように、方法３００は以下を含む。
【００６８】
Ｓ３０１：ユーザプロセスは、要求に従ってメモリＡをロックすることをカーネルに要求する。
【００６９】
Ｓ３０２：カーネルは、メモリＡのオフラインフラグＰＧ＿ｆｌａｇを解析することによって、メモリＡについてオフラインモードを判定する。
【００７０】
メモリＡのオフラインモードがデフォルトモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ３０３に移行し、メモリＡのオフラインモードがデフォルトモードでない、すなわち、ＰＧ＿ｆｌａｇ！＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ３０５、Ｓ３０９又はＳ３１０に移行する。具体的には、メモリＡのオフラインモードがマイグレートモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＭＩＧＲＡＴＥであるとカーネルが判定した場合、プロセスはステップＳ３０５に移行し、メモリＡのオフラインモードが通知モードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＮＯＴＩＦＹであるとカーネルが判定した場合、プロセスはステップＳ３０９に移行し、メモリＡのオフラインモードが強制アンロックモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＵＮＬＯＣＫであるとカーネルが判定した場合、プロセスはステップＳ３１０に移行する。
【００７１】
Ｓ３０３：カーネルは、コンピュータシステムのコンフィギュレーション又は要求を判定する。コンピュータシステムがシステム動作パフォーマンスを要求しているとカーネルが判定した場合、プロセスはステップＳ３０４に移行し、コンピュータシステムがホットスワップパフォーマンスを要求した場合、プロセスはステップＳ３０５に移行する。
【００７２】
Ｓ３０４：メモリＡのオフラインモードがデフォルトモードである場合、カーネルは、メモリＡをロックし、メモリのオフラインフラグにＤＥＦＡＵＬＴの値を割り当て、すなわち、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴとする。このとき、デフォルトモードであるオフラインモードのメモリＡについて、メモリＡをロックするプロセスは終了する。
【００７３】
Ｓ３０５：メモリＡのオフラインモードがマイグレートモードである場合、カーネルは、マイグレート不可エリアであり、一般にプライマリノードに限定されるシステムの指定されたエリアにおいて、メモリＢに再適用する。
【００７４】
Ｓ３０６：カーネルは、メモリＡをメモリＢにマイグレートし、メモリＡをリリースする。
【００７５】
Ｓ３０７：カーネルは、メモリＡがマイグレートに成功したか判定する。メモリＡがマイグレートに成功した場合、プロセスはステップＳ３０８に移行し、そうでない場合、プロセスはステップＳ３０４に移行する。
【００７６】
Ｓ３０８：カーネルは、メモリＢをロックし、メモリＢについてオフラインフラグＰＧ＿ｆｌａｇを設定し、オフラインフラグにＭＩＧＲＡＴＥの値を割り当て、ＰＧ＿ｆｌａｇ＝ＭＩＧＲＡＴＥである。このとき、マイグレートモードであるオフラインモードのメモリＡについて、メモリＡをロックするプロセスは終了する。
【００７７】
Ｓ３０９：メモリＡのオフラインモードが通知モードである場合、カーネルはメモリＡをロックする。このとき、通知モードであるオフラインモードのメモリＡについて、メモリＡをロックするプロセスは終了する。
【００７８】
Ｓ３１０：メモリＡのオフラインモードが強制アンロックモードである場合、カーネルはメモリＡをロックする。このとき、強制アンロックモードであるオフラインモードのメモリＡについて、メモリＡをロックするプロセスは終了する。
【００７９】
上記のステップのシーケンス番号は実行順序を意味せず、ステップの実行順序はファンクションと内部ロジックとに従って決定されるべきであり、本発明の実施例の実現プロセスを何れかの方法により限定することを意図していないことに留意すべきである。
【００８０】
図４は、本発明の実施例によるロックされたメモリをオフラインに配置する方法４００の概略的なフローチャートである。図４に示されるように、方法４００は以下を含む。
【００８１】
Ｓ４０１：カーネルは、要求に従ってメモリＡをオフラインに配置することを決定する。
【００８２】
Ｓ４０２：カーネルは、メモリＡのオフラインフラグＰＧ＿ｆｌａｇを解析することによって、メモリＡについて設定されたオフラインモードを判定する。
【００８３】
メモリＡのオフラインモードがデフォルトモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ４０３に移行し、メモリＡのオフラインモードがデフォルトモードでない、すなわち、ＰＧ＿ｆｌａｇ！＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ４０３、Ｓ４０６又はＳ４０８に移行する。具体的には、メモリＡのオフラインモードがマイグレートモードであるすなわち、ＰＧ＿ｆｌａｇ＝＝ＭＩＧＲＡＴＥであるとカーネルが判定した場合、プロセスはステップＳ４０３に移行し、メモリＡのオフラインモードが通知モードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＮＯＴＩＦＹであるとカーネルが判定した場合、プロセスはステップＳ４０６に移行し、メモリＡのオフラインモードが強制アンロックモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＵＮＬＯＣＫであるとカーネルが判定した場合、プロセスはステップＳ４０８に移行する。
【００８４】
Ｓ４０３：メモリＡのオフラインモードがデフォルトモード又はマイグレートモードである場合、カーネルは、メモリＡがユーザプロセスによりアンロックされることを待機する。
【００８５】
Ｓ４０４：カーネルは、メモリＡがユーザプロセスによりアンロックされているかチェックする。メモリＡがアンロックされている場合、プロセスはステップＳ４０５に移行し、そうでない場合、プロセスはステップＳ４０３に移行し、すなわち、カーネルはメモリＡがアンロックされることを待機し続ける。
【００８６】
Ｓ４０５：メモリＡがユーザプロセスによりアンロックされている場合、カーネルは、メモリＡをマイグレートする。メモリＡのマイグレートはメモリＡを他のメモリにマイグレートすることであることに留意すべきである。マイグレート後の新たなメモリについて、カーネルは、ＰＧ＿ｆｌａｇ＝ＤＥＦＡＵＬＴとなるように新たなメモリのオフラインフラグを設定してもよい。このとき、デフォルトモード又はマイグレートモードであるオフラインモードのメモリＡについて、メモリＡをオフラインに配置するプロセスは終了する。
【００８７】
Ｓ４０６：メモリＡのオフラインモードが通知モードである場合、カーネルは、メモリをアンロックするためユーザプロセスをトリガし、メモリＡがユーザプロセスによりアンロックされた後にメモリＡをマイグレートする。すなわち、メモリＡのオフラインモードが通知モードである場合、プロセスは、ステップＳ４０６からステップＳ４０４、Ｓ４０５及びＳ４０７に移行する。
【００８８】
Ｓ４０７：メモリＡがマイグレートした後、カーネルは、マイグレート後の新たなメモリをロックするため、ユーザプロセスをトリガする。マイグレート後の新たなメモリについて、カーネルは、ＰＧ＿ｆｌａｇ＝ＮＯＴＩＦＹとなるように新たなメモリのオフラインフラグを設定してもよい。このとき、通知モードであるオフラインモードのメモリＡについて、メモリＡをオフラインに配置するプロセスは終了する。
【００８９】
Ｓ４０８：メモリＡのオフラインモードが強制アンロックモードである場合、カーネルはメモリＡをアンロックする。
【００９０】
Ｓ４０９：カーネルは、メモリＡがアンロックに成功したかチェックする。メモリＡがアンロックされた場合、プロセスはステップＳ４１０に移行し、そうでない場合、プロセスはステップＳ４０８に移行し、すなわち、カーネルは、メモリＡをアンロックし続ける。
【００９１】
Ｓ４１０：メモリＡがアンロックされた後、カーネルはメモリＡをマイグレートし、例えば、メモリＡをメモリＢにマイグレートする。
【００９２】
Ｓ４１１：カーネルは、新たなメモリＢをロックし、新たなメモリＢのオフラインモードが強制アンロックモードであることを特定するため、新たなメモリＢについてオフラインフラグを設定し、、すなわち、オフラインフラグに割り当てられた値がＵＮＬＯＣＫであり、ＰＧ＿ｆｌａｇ＝ＵＮＬＯＣＫである。このとき、強制アンロックモードであるオフラインモードのメモリＡについて、メモリＡをオフラインに配置するプロセスは終了する。
【００９３】
図５は、本発明の実施例によるメモリをアンロックする方法５００の概略的なフローチャートである。図５に示されるように、方法５００は以下を含む。
【００９４】
Ｓ５０１：ユーザプロセスは、ロックされたメモリＡをアンロックするようカーネルに要求する。
【００９５】
Ｓ５０２：カーネルは、メモリＡのオフラインフラグを解析することによって、メモリＡのオフラインモードを判定する。
【００９６】
メモリＡのオフラインモードがデフォルトモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ５０４に移行し、メモリＡのオフラインモードがデフォルトモードでない、すなわち、ＰＧ＿ｆｌａｇ！＝ＤＥＦＡＵＬＴであるとカーネルが判定した場合、プロセスはステップＳ５０３又はＳ５０４に移行する。具体的には、メモリＡのオフラインモードがマイグレートモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＭＩＧＲＡＴＥであるとカーネルが判定した場合、プロセスはステップＳ５０３及びＳ５０４に移行し、メモリＡのオフラインモードが通知モードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＮＯＴＩＦＹである、又は強制アンロックモードである、すなわち、ＰＧ＿ｆｌａｇ＝＝ＵＮＬＯＣＫであると判定した場合、プロセスはステップＳ５０４に直接移行する。
【００９７】
Ｓ５０３：カーネルは、システムパフォーマンスをさらに向上させるため、ユーザプロセスが実行されているノードにメモリＡを再マイグレートする。
【００９８】
Ｓ５０４：カーネルはメモリＡをアンロックする。このとき、ユーザプロセスによるロックされたメモリＡをアンロックするプロセスは終了する。
【００９９】
上記のステップのシーケンス番号は実行順序を意味せず、ステップの実行順序はファンクションと内部ロジックとに従って決定されるべきであり、本発明の実施例の実現プロセスを何れかの方法により限定することを意図していないことが留意されるべきである。
【０１００】
従って、本発明の実施例によるコンピュータシステムのメモリをマイグレートする方法では、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定して、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置でき、システムパフォーマンスを向上させ、システムリソースの浪費を回避することができる。
【０１０１】
図１Ａ〜５を参照して、本発明の実施例によるコンピュータシステムのメモリを管理する方法が詳細に説明され、本発明の実施例によるメモリ管理ユニットとコンピュータシステムとが、以下で図６〜１２を参照して詳細に説明される。
【０１０２】
図６は、本発明の実施例によるメモリ管理ユニット７００の概略的なブロック図である。図６に示されるように、メモリ管理ユニット７００は、ユーザプロセスにより送信される割当てリクエストであって、前記ユーザプロセスについてコンピュータシステムのメモリの割り当てを要求するのに利用される前記割当てリクエストを受信するよう構成される第１受信モジュール７１０と、前記第１受信モジュール７１０により受信される前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当て、前記メモリのオフラインモードを示すオフラインフラグを前記メモリについて設定するよう構成される割当てモジュール７２０と、前記ユーザプロセスにより送信されるロッキングリクエストであって、前記コンピュータシステムのメモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するよう構成される第２受信モジュール７３０と、前記メモリのオフラインフラグと前記第２受信モジュール７３０により受信されるロッキングリクエストとに従って前記メモリをロックするよう構成されるロッキングモジュール７４０と、前記メモリのオフラインフラグに従って前記ロッキングモジュールによりロックされたメモリをオフラインに配置するよう構成されるオフラインモジュール７５０と有する。
【０１０３】
本発明の実施例によるメモリ管理ユニットでは、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定することによって、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置可能であり、これにより、システムパフォーマンスを向上させ、システムリソースの浪費を回避することが可能である。
【０１０４】
本発明の実施例では、任意的には、オフラインモード又はオフラインポリシーは、ＤＥＦＡＵＬＴモード、ＭＩＧＲＡＴＥモード、ＮＯＴＩＦＹモード及び強制ＵＮＬＯＣＫモードの少なくとも１つを有してもよい。任意的には、オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードを有する。
【０１０５】
本発明の実施例では、任意的には、図７に示されるように、メモリ管理ユニット７００はさらに、モード情報を有し、前記ユーザプロセスにより送信された変更リクエストを受信するよう構成される第３受信モジュール７６０であって、前記モード情報は前記メモリについてユーザプロセスにより設定されたオフラインモードを示す、前記第３受信モジュール７６０と、前記第３受信モジュール７６０により受信されるモード情報に従って前記ユーザプロセスにより設定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される変更モジュール７７０とをさらに有する。
【０１０６】
本発明の実施例では、任意的には、図７に示されるように、メモリ管理ユニット７００はさらに、前記メモリのオフラインモードがデフォルトモードである場合、前記コンピュータシステムの要求に従って前記メモリについて前記オフラインモードを再判定し、前記再判定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される判定モジュール７００をさらに有する。
【０１０７】
任意的には、図８に示されるように、メモリ管理ユニット７００はさらに、前記ユーザプロセスにより送信されるアンロッキングリクエストを受信するよう構成される第４受信モジュール７９０であって、前記アンロッキングリクエストは前記メモリがアンロックされることを要求するのに利用される、前記第４受信モジュール７９０と、前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記ユーザプロセスが前記第４受信モジュールにより受信されるアンロッキングリクエストに従って実行されるノードに前記メモリを再マイグレートするよう構成される再マイグレートモジュール７９５とをさらに有する。
【０１０８】
本発明の実施例では、図９に示されるように、本発明の実施例による前記ロッキングモジュール７４０は、前記メモリのオフラインフラグが前記デフォルトモード、前記通知モード又は前記強制アンロックモードを示すとき、前記メモリをロックするよう構成される第１ロッキングサブモジュール７４１と、前記メモリのオフラインフラグが前記マイグレートモードであることを示すとき、前記メモリをマイグレートし、前記メモリがマイグレートに成功したとき、マイグレートされたメモリをロックし、前記マイグレートされたメモリについて、前記メモリがマイグレートに成功したとき、前記マイグレートモードを示すオフラインフラグを設定し、前記メモリがマイグレートに不成功であったとき、前記メモリをロックし、前記メモリがマイグレートに不成功であったとき、前記デフォルトモードを示すように前記メモリのオフラインフラグを変更するよう構成される第２ロッキングサブモジュール７４２とを有する。
【０１０９】
任意的には、図１０に示されるように、前記オフラインモジュール７５０は、前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされることを待機し、前記メモリがアンロックされた後に前記メモリをマイグレートするよう構成される第１オフラインサブモジュール７５１と、前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリをアンロックするよう前記ユーザプロセスをトリガし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記メモリがマイグレートされた後に前記マイグレートされたメモリをロックするため前記ユーザプロセスをトリガするよう構成される第２オフラインサブモジュール７５２と、前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリをアンロックし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記マイグレートされたメモリをロックし、前記マイグレートされたメモリについて前記強制アンロックモードを示すオフラインフラグを設定するよう構成される第３オフラインサブモジュール７５３とを有する。
【０１１０】
任意的には、図１１に示されるように、前記判定モジュール７５０は、前記コンピュータシステムがシステム動作パフォーマンスを要求するとき、前記メモリのオフラインモードが前記デフォルトモードであると判定するよう構成される第１判定サブモジュール７８１と、前記コンピュータシステムがホットスワップパフォーマンスを要求するとき、前記メモリのオフラインモードが前記マイグレートモードであると判定するよう構成される第２判定サブモジュール７８２とを有する。
【０１１１】
本発明の実施例によるメモリ管理ユニット７００は、本発明の実施例による方法におけるカーネル又はオペレーティングシステムに対応してもよく、メモリ管理ユニット７００の各モジュールの上記及び他の処理及び／又は機能はそれぞれ、簡単化のため、ここでは再度詳細には説明されない図１Ａ〜５の方法１００〜５００の対応するステップを実現するため提供される。
【０１１２】
本発明の実施例によるメモリ管理ユニットでは、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定することによって、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置可能であり、これにより、システムパフォーマンスを向上させ、システムリソースの浪費を回避することが可能である。
【０１１３】
図１２は、本発明の実施例によるコンピュータシステム８００の概略的なブロック図である。図１２に示されるように、コンピュータシステムは、少なくとも１つのメモリ８１０と、本発明の実施例によるメモリ管理ユニット８２０とを有し、メモリ管理ユニット８２０は、少なくとも１つのメモリ８１０を管理するよう構成され、ユーザプロセスにより送信される割当てリクエストであって、前記ユーザプロセスについてコンピュータシステムのメモリの割り当てを要求するのに利用される前記割当てリクエストを受信するよう構成される第１受信モジュールと、前記第１受信モジュール７１０により受信される前記割当てリクエストに従って前記ユーザプロセスについて前記メモリを割り当て、前記メモリのオフラインモードを示すオフラインフラグを前記メモリについて設定するよう構成される割当てモジュールと、前記ユーザプロセスにより送信されるロッキングリクエストであって、前記コンピュータシステムのメモリがロックされることを要求するのに利用される前記ロッキングリクエストを受信するよう構成される第２受信モジュールと、前記メモリのオフラインフラグと前記第２受信モジュールにより受信されるロッキングリクエストとに従って前記メモリをロックするよう構成されるロッキングモジュールと、前記メモリのオフラインフラグに従って前記ロッキングモジュールによりロックされたメモリをオフラインに配置するよう構成されるオフラインモジュールと有してもよい。
【０１１４】
本発明の実施例では、任意的には、オフラインモードは、デフォルトモード、マイグレートモード、通知モード及び強制アンロックモードの少なくとも１つを有する。任意的には、メモリ管理ユニット８２０はさらに、モード情報を有し、前記ユーザプロセスにより送信された変更リクエストを受信するよう構成される第３受信モジュールであって、前記モード情報は前記メモリについてユーザプロセスにより設定されたオフラインモードを示す、前記第３受信モジュールと、前記第３受信モジュールにより受信されるモード情報に従って前記ユーザプロセスにより設定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される変更モジュールとをさらに有する。
【０１１５】
任意的には、メモリ管理ユニット８２０はさらに、前記メモリのオフラインモードがデフォルトモードである場合、前記コンピュータシステムの要求に従って前記メモリについて前記オフラインモードを再判定し、前記再判定されたオフラインモードを示すように前記メモリのオフラインフラグを変更するよう構成される判定モジュールをさらに有する。
【０１１６】
任意的には、メモリ管理ユニット８２０はさらに、前記ユーザプロセスにより送信されるアンロッキングリクエストを受信するよう構成される第４受信モジュールであって、前記アンロッキングリクエストは前記メモリがアンロックされることを要求するのに利用される、前記第４受信モジュールと、前記メモリのオフラインフラグが前記マイグレートモードを示すとき、前記ユーザプロセスが前記第４受信モジュールにより受信されるアンロッキングリクエストに従って実行されるノードに前記メモリを再マイグレートするよう構成される再マイグレートモジュールとをさらに有する。
【０１１７】
本発明の実施例では、任意的には、前記ロッキングモジュールは、前記メモリのオフラインフラグが前記デフォルトモード、前記通知モード又は前記強制アンロックモードを示すとき、前記メモリをロックするよう構成される第１ロッキングサブモジュールと、前記メモリのオフラインフラグが前記マイグレートモードであることを示すとき、前記メモリをマイグレートし、前記メモリがマイグレートに成功したとき、マイグレートされたメモリをロックし、前記マイグレートされたメモリについて、前記メモリがマイグレートに成功したとき、前記マイグレートモードを示すオフラインフラグを設定し、前記メモリがマイグレートに不成功であったとき、前記メモリをロックし、前記メモリがマイグレートに不成功であったとき、前記デフォルトモードを示すように前記メモリのオフラインフラグを変更するよう構成される第２ロッキングサブモジュールとを有する。
【０１１８】
本発明の実施例では、任意的には、前記オフラインモジュールは、前記メモリのオフラインフラグが前記デフォルトモード又は前記マイグレートモードを示すとき、前記メモリがアンロックされることを待機し、前記メモリがアンロックされた後に前記メモリをマイグレートするよう構成される第１オフラインサブモジュールと、前記メモリのオフラインフラグが前記通知モードを示すとき、前記メモリをアンロックするよう前記ユーザプロセスをトリガし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記メモリがマイグレートされた後に前記マイグレートされたメモリをロックするため前記ユーザプロセスをトリガするよう構成される第２オフラインサブモジュールと、前記メモリのオフラインフラグが前記強制アンロックモードを示すとき、前記メモリをアンロックし、前記メモリがアンロックされた後に前記メモリをマイグレートし、前記マイグレートされたメモリをロックし、前記マイグレートされたメモリについて前記強制アンロックモードを示すオフラインフラグを設定するよう構成される第３オフラインサブモジュールとを有する。
【０１１９】
本発明の実施例によるメモリ管理ユニット８２０は、本発明の実施例による装置におけるメモリ管理ユニット７００に対応してもよく、メモリ管理ユニット８２０の各モジュールの上記及び他の処理及び／又は機能はそれぞれ、簡単化のため、ここでは再度詳細には説明されない図１Ａ〜５の方法１００〜５００の対応するステップを実現するため提供される。
【０１２０】
本発明の実施例によるコンピュータシステムでは、カーネルとユーザプロセスとの間のインタラクションを介し、メモリについてオフラインモードを設定することによって、カーネルは、ユーザプロセスによりロックされたメモリをオフラインに配置するため、メモリのオフラインモードに従ってメモリをオフラインに配置し、これにより、メモリのホットスワップを実現し、システムパフォーマンスを向上させ、システムリソースの浪費を回避することが可能である。
【０１２１】
本発明の実施例のロックされたメモリは、ユーザプロセスにより適用されるロックされたメモリに限定されずものでなく、他の目的のためのロックされたメモリがまた、本発明の実施例による手段を利用することによってオフラインに配置されてもよいことに留意すべきである。さらに、ロックされたメモリのオフラインポリシーのマイグレートポリシーは、ユーザプロセスにより形成され、カーネルにより実行される手段に限定されるものでなく、マイグレートポリシーは、ユーザプロセスが特別なメモリエリアに移動させるために適用されるメモリを指定し、これにより、マイグレートすることなくメモリをオフラインに配置する要求を実現してもよい。
【０１２２】
当業者は、ここに開示された実施例に関して説明された具体例のユニット及びアルゴリズムのステップが、電子ハードウェア、コンピュータソフトウェア又はこれら２つの組み合わせにより実現可能であることを理解してもよい。ハードウェアとソフトウェアとの間の互換性を明確に説明するため、各具体例の構成及びステップは、上記説明における機能に従って概略的に説明された。これらの機能がハードウェア又はソフトウェアにより実行されるかは、技術的手段の特定の適用及び設計制約条件に依存する。当業者は、異なる方法を利用して、特定の各適用について説明された機能を実現してもよいが、実現形態は本発明の範囲を超えるとみなされるべきでない。
【０１２３】
便宜上及び簡単な説明のため、上記システム、装置及びユニットの詳細な動作プロセスのため、方法の実施例における対応するプロセスが参照され、詳細はここでは再度説明されないことが、当業者に明確に理解できる。
【０１２４】
本出願において提供される複数の実施例において、開示されたシステム、装置及び方法は他の方法により実現可能であることが理解されるべきである。例えば、開示された装置の実施例は単なる一例である。例えば、ユニットの分割は、単なる論理的な機能的分割であり、実際の実現形態では他の分割であってもよい。例えば、複数のユニット又はコンポーネントは、他のシステムに合成又は統合されてもよく、あるいは、いくつかの特徴は無視又は実行されなくてもよい。さらに、図示又は説明された結合、直接的な結合又は通信接続は、いくつかのインタフェース、装置又はユニットの間の間接的な結合又は通信接続を介し実現されてもよく、又は電気的、機械的又は他の形式によるものであってもよい。
【０１２５】
別々のコンポーネントとして説明されるユニットは、物理的に分離されてもよいし、又はそうでなくてもよい。ユニットして示されるコンポーネントは、物理的ユニットであってもよいし、そうでなくてもよく、すなわち、統合されるか、又は複数のネットワークユニットに分散されてもよい。これらのユニットの一部又は全てが、実際の要求に従って実施例の手段の課題を実現するため選択されてもよい。
【０１２６】
さらに、本発明の実施例における機能ユニットは、処理モジュールに統合されてもよいし、又はそれぞれが別々の物理ユニットであってもよく、あるいは、ユニットの２以上が１つのユニットに統合される。統合されたユニットは、ハードウェア又はソフトウェア機能ユニットを介し実現されてもよい。
【０１２７】
ソフトウェア機能ユニットの形態により実現され、独立した製品として販売又は利用される場合、統合されたユニットはまた、コンピュータ可読記憶媒体に格納されてもよい。このような理解に基づき、本発明の技術的手段、従来技術に貢献する部分又は技術的手段の全て若しくは一部は、ソフトウェアプロダクトの形態により実質的に実現されてもよい。コンピュータソフトウェアプロダクトは、記憶媒体に格納され、コンピュータ装置（パーソナルコンピュータ、サーバ又はネットワーク装置など）に本発明の実施例において説明される方法のステップの全て又は一部を実行するよう指示するための複数の命令を有する。記憶媒体は、ＵＳＢフラッシュドライブ、モバイルハードディスク、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク若しくは光ディスクなど、プログラムコードを格納可能な各種媒体を含む。
【０１２８】
上記説明は、本発明の単なる特定の実施例であるが、本発明の保護範囲はこれに限定されるものでない。何れか等価な改良又は置換が、本発明の技術的範囲内であると当業者に容易にみなされる。従って、本発明の保護範囲は、添付した請求項に従う。
【図１Ａ】
0005636133.tif 000002
【図１Ｂ】
0005636133.tif 000003
【図１Ｃ】
0005636133.tif 000004
【図２】
0005636133.tif 000005
【図３】
0005636133.tif 000006
【図４】
0005636133.tif 000007
【図５】
0005636133.tif 000008
【図６】
0005636133.tif 000009
【図７】
0005636133.tif 000010
【図８】
0005636133.tif 000011
【図９】
0005636133.tif 000012
【図１０】
0005636133.tif 000013
【図１１】
0005636133.tif 000014
【図１２】
0005636133.tif 000015