IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-530593セキュア・ゲスト・リソースの延期された回収
<>
  • 特表-セキュア・ゲスト・リソースの延期された回収 図1
  • 特表-セキュア・ゲスト・リソースの延期された回収 図2
  • 特表-セキュア・ゲスト・リソースの延期された回収 図3
  • 特表-セキュア・ゲスト・リソースの延期された回収 図4
  • 特表-セキュア・ゲスト・リソースの延期された回収 図5
  • 特表-セキュア・ゲスト・リソースの延期された回収 図6
  • 特表-セキュア・ゲスト・リソースの延期された回収 図7A
  • 特表-セキュア・ゲスト・リソースの延期された回収 図7B
  • 特表-セキュア・ゲスト・リソースの延期された回収 図8A
  • 特表-セキュア・ゲスト・リソースの延期された回収 図8B
  • 特表-セキュア・ゲスト・リソースの延期された回収 図9
  • 特表-セキュア・ゲスト・リソースの延期された回収 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-23
(54)【発明の名称】セキュア・ゲスト・リソースの延期された回収
(51)【国際特許分類】
   G06F 21/60 20130101AFI20240816BHJP
   G06F 9/455 20180101ALI20240816BHJP
【FI】
G06F21/60
G06F9/455 150
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024504184
(86)(22)【出願日】2022-08-02
(85)【翻訳文提出日】2024-01-23
(86)【国際出願番号】 IB2022057151
(87)【国際公開番号】W WO2023012655
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】17/394,642
(32)【優先日】2021-08-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】インブレンダ、クラウディオ
(72)【発明者】
【氏名】ボーントレーガー、クリスチャン
(72)【発明者】
【氏名】フランク、ヤーノシュ、アンドレアス
(72)【発明者】
【氏名】ブラッドベリー、ジョナサン
(57)【要約】
コンピューティング環境内のセキュア・ゲスト・リソースの延期された回収が提供され、この回収は、コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のリソースを残しながら、コンピューティング環境からのセキュア・ゲストの除去を開始することを含む。この延期は、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースを回収することも含み、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる。
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
プログラム命令が具現化されている少なくとも1つのコンピュータ可読ストレージ媒体を備えており、前記プログラム命令が、処理回路によって読み取り可能であり、前記処理回路に、
前記コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始することと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含む方法を実行させ、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ・プログラム製品。
【請求項2】
前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを回収することが、前記セキュア・ゲストの除去の後に、非同期的に発生する、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記セキュア・ゲストの除去が、非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む、請求項1または2に記載のコンピュータ・プログラム製品。
【請求項4】
前記1つまたは複数のセキュア・ゲスト・リソースが、前記セキュア・ゲストに関連付けられたゲスト・メモリを含む、請求項1ないし3のいずれかに記載のコンピュータ・プログラム製品。
【請求項5】
前記ホストによって、前記セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを指定することをさらに含む、請求項1ないし4のいずれかに記載のコンピュータ・プログラム製品。
【請求項6】
前記回収することが、前記1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、前記1つまたは複数のセキュア・ゲスト・リソースが前記破棄状態にあることに基づいて、前記1つまたは複数のセキュア・ゲスト・リソースを再使用のために消去することとを含み、前記消去が、前記セキュア・ゲストの除去の後に発生する、請求項1ないし5のいずれかに記載のコンピュータ・プログラム製品。
【請求項7】
前記1つまたは複数のセキュア・ゲスト・リソースが、1つまたは複数のセキュア・メモリ・ページを含み、前記決定することが、ページ・メタデータをチェックして、前記1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが前記破棄状態にあることを確認することを含む、請求項6に記載のコンピュータ・プログラム製品。
【請求項8】
前記回収することが、前記1つまたは複数のセキュア・メモリ・ページを消去すること、および前記1つまたは複数のセキュア・メモリ・ページに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む、請求項7に記載のコンピュータ・プログラム製品。
【請求項9】
前記開始することが、前記ホストによって、前記セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストを除去するための要求を、前記コンピューティング環境のセキュア・プラットフォームに送信することを含む、請求項1ないし8のいずれかに記載のコンピュータ・プログラム製品。
【請求項10】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
前記コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始することと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含み、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ・システム。
【請求項11】
前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを回収することが、前記セキュア・ゲストの除去の後に、非同期的に発生する、請求項10に記載のコンピュータ・システム。
【請求項12】
前記セキュア・ゲストの除去が、非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む、請求項10または11に記載のコンピュータ・システム。
【請求項13】
前記1つまたは複数のセキュア・ゲスト・リソースが、前記セキュア・ゲストに関連付けられたゲスト・メモリを含む、請求項10ないし12のいずれかに記載のコンピュータ・システム。
【請求項14】
前記ホストによって、前記セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを指定することをさらに含む、請求項10ないし13のいずれかに記載のコンピュータ・システム。
【請求項15】
前記回収することが、前記1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、前記1つまたは複数のセキュア・ゲスト・リソースが前記破棄状態にあることに基づいて、前記1つまたは複数のセキュア・ゲスト・リソースを再使用のために消去することとを含み、前記消去が、前記セキュア・ゲストの除去の後に発生する、請求項10ないし14のいずれかに記載のコンピュータ・システム。
【請求項16】
前記1つまたは複数のセキュア・ゲスト・リソースが、1つまたは複数のセキュア・メモリ・ページを含み、前記決定することが、ページ・メタデータをチェックして、前記1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが前記破棄状態にあることを確認することを含む、請求項15に記載のコンピュータ・システム。
【請求項17】
前記回収することが、前記1つまたは複数のセキュア・メモリ・ページを消去すること、および前記1つまたは複数のセキュア・メモリ・ページに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む、請求項16に記載のコンピュータ・システム。
【請求項18】
コンピューティング環境内の処理を容易にするためのコンピュータ実装方法であって、前記コンピュータ実装方法が、
前記コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始することと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含み、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ実装方法。
【請求項19】
前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを回収することが、前記セキュア・ゲストの除去の後に、非同期的に発生する、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記セキュア・ゲストの除去が、非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む、請求項18または19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
1つまたは複数の態様は、一般に、コンピューティング環境内の処理を容易にすることに関連しており、特に、そのような処理を改善することに関連している。
【背景技術】
【0002】
特定のコンピューティング環境は、仮想化をサポートすることができ、仮想化では、コンピューティング環境のハイパーバイザまたは仮想マシン・マネージャが、コンピューティング環境の仮想マシンまたは仮想サーバなどの、さまざまなゲストをホストする。仮想マシンは、システム・リソースに対するアクセス権限を持ち、ゲスト・オペレーティング・システムなどのオペレーティング・システムを実行することができる。さまざまな所有者によって、さまざまなゲストが所有されることが可能であり、これらのゲストのうちの一部は、セキュア・ゲストであることができる。
【0003】
従来のハイパーバイザまたはホストは、ホストされたゲストを完全に制御する。特に、ハイパーバイザは、ホストされたゲストのメモリを検査し、変更する能力さえも有する。しかし、セキュア・ゲストは、完全には信頼できないハイパーバイザによってホストされ得るゲストである。そのようなセキュア・ゲストのイメージは、読み込まれるときに保護され、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)の内容の保護は、ゲストの存続期間全体を通じて維持される。ゲストの保護は、少なくとも完全性保護を含み(例えば、ハイパーバイザは、どのゲストの状態も悪意を持って変更することができない)、加えて、セキュア・ゲストにおいて実行されている初期のイメージ、コード、およびデータの機密性を維持することを含むことができる。
【発明の概要】
【0004】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品の提供によって、従来技術の特定の欠点が克服され、追加の利点がもたらされる。このコンピュータ・プログラム製品は、プログラム命令が具現化されている少なくとも1つのコンピュータ可読ストレージ媒体を含む。これらのプログラム命令は、処理回路に方法を実行させるために、処理回路によって読み取ることができる。この方法は、コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソース(secure guest resources)を残しながら、コンピューティング環境からのセキュア・ゲストの除去を開始することを含む。さらに、この方法は、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースを回収することを含み、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、1つまたは複数のセキュア・ゲスト・リソースが使用可能になる。有利なことに、この方法は、特に、コンピューティング環境内に大量のリソースを有するセキュア・ゲストの場合に、コンピューティング環境からセキュア・ゲストをより高速に除去する。また、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、セキュア・ゲスト・リソースが再使用可能になり、これによって、コンピューティング環境内のメモリ負荷を有利に低くする。
【0005】
1つまたは複数の実施形態では、セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを回収することは、セキュア・ゲストの除去の後に、非同期的に発生する。この方法は、1つまたは複数のセキュア・ゲスト・リソースの回収を延期することによって、コンピューティング環境からセキュア・ゲストをより高速に除去する。
【0006】
1つまたは複数の実施形態では、セキュア・ゲストの除去は、非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む。有利なことに、1つの実装では、セキュア・ゲスト(すなわち、セキュア仮想マシン)に関連付けられたメモリが非同期的に回収され得るが、別の実装では、非同期的に回収されるセキュア・ゲストのメモリの残りの部分を残して、セキュア・ゲストの除去と同一の広がりを持つセキュア・ゲストに関連付けられたメモリの一部が回収され得る。別の実施形態では、1つまたは複数のセキュア・ゲスト・リソースが、セキュア・ゲストに関連付けられたゲスト・メモリを含む。
【0007】
1つの実施形態では、この方法は、ホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを指定することをさらに含む。
【0008】
1つまたは複数の実装では、回収することは、1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることに基づいて、1つまたは複数のセキュア・ゲスト・リソースを再使用のために消去することとを含み、この消去は、セキュア・ゲストの除去の後に発生する。このようにして、破棄されたセキュア・ゲスト・リソースがより高速に解放され得る。例えば、セキュア・メモリが除去または消去されることを可能にするために、メモリ所有者が正しい状態にあるかどうかをチェックする必要がない。さらに、このプロセスは、メモリが並列に回収され得るという点において、より少ない競合をもたらす。
【0009】
1つの実施形態では、1つまたは複数のセキュア・ゲスト・リソースは、1つまたは複数のセキュア・メモリ・ページを含み、決定することは、ページ・メタデータをチェックして、1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが破棄状態にあることを確認することを含む。さらに、1つの実装では、回収することは、1つまたは複数のセキュア・メモリ・ページを消去すること、および1つまたは複数のセキュア・メモリ・ページに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む。
【0010】
1つまたは複数の実施形態では、開始することは、ホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、セキュア・ゲストを除去するための要求を、セキュア・コンピューティング環境のセキュア・プラットフォームに送信することを含む。
【0011】
1つまたは複数の態様に関連するコンピュータ・システムおよびコンピュータ実装方法も本明細書に記載され、請求される。さらに、1つまたは複数の態様に関連するサービスも本明細書に記載され、請求されてよい。
【0012】
さらなる特徴および利点が、本明細書に記載された技術によって実現される。他の実施形態および態様は、本明細書において詳細に説明され、請求される態様の一部と見なされる。
【0013】
1つまたは複数の態様は、本明細書の最後にある特許請求の範囲において例として具体的に指摘され、明確に請求される。前述の内容、ならびに1つまたは複数の態様の目的、特徴、および利点は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0014】
図1】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの例を示す図である。
図2】本発明の1つまたは複数の態様に従って、機密データがセキュア・ゲストに含まれている、セキュア・ゲストおよびセキュア・ゲスト・リソースの1つの例を示す図である。
図3】本発明の1つまたは複数の態様に従う、コンピューティング環境のセキュア・ゲストによって利用されるセキュア・ゲスト・リソースの1つの実施形態のブロック図表現である。
図4】本発明の1つまたは複数の実施形態の特定の態様を例示するワークフローの1つの実施形態を示す図である。
図5】本発明の1つまたは複数の態様に従って、使用されるメモリ・ページ・メタデータの1つの例を示す図である。
図6】本発明の1つまたは複数の実施形態の特定の態様を例示する別のワークフローのブロック図表現である。
図7A】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
図7B】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
図8A】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の例を示す図である。
図8B】本発明の1つまたは複数の態様に従って、図8Aのメモリのさらなる詳細を示す図である。
図9】本発明の1つまたは複数の態様に従って、クラウド・コンピューティング環境の1つの実施形態を示す図である。
図10】本発明の1つまたは複数の態様に従って、抽象モデル・レイヤの1つの例を示す図である。
【発明を実施するための形態】
【0015】
本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にするための能力が提供される。例として、この能力は、コンピューティング環境内で除去されているセキュア・ゲスト(すなわち、セキュア仮想マシン)のセキュア・ゲスト・リソースの延期された回収を実現することを含む。1つの例では、延期された回収は、コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、コンピューティング環境からのセキュア・ゲストの除去を開始することを含む。次に、ホストは、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースを回収し、セキュア・ゲスト・リソースは、それらが回収されるときに再使用可能になる。さらなる例では、1つまたは複数のセキュア・ゲスト・リソースの回収は、セキュア・ゲストの除去の後に、非同期的に発生する。別の例では、セキュア・ゲストの除去は、非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む。1つの例では、セキュア・ゲスト・リソースが、セキュア・ゲストに関連付けられたゲスト・メモリを含む。さらなる例では、ホスト・システムは、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを指定する。特定の実施形態では、回収することは、1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることに基づいて、1つまたは複数のセキュア・ゲスト・リソースを再使用のために消去することとを含み、この消去は、セキュア・ゲストの除去の後に発生する。別の例では、1つまたは複数のセキュア・ゲスト・リソースは、破棄状態にある1つまたは複数のセキュア・メモリ・ページを含み、決定することは、ページ・メタデータをチェックして、1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが破棄状態にあることを確認することを含む。1つの例では、回収することは、1つまたは複数のセキュア・メモリ・ページを消去すること、および1つまたは複数のセキュア・メモリに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む。
【0016】
本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの実施形態が、図1を参照して説明される。例として、コンピューティング環境は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/Architecture(R)命令セット・アーキテクチャに基づく。z/Architecture命令セット・アーキテクチャの1つの実施形態は、“z/Architecture Principles of Operation," IBM Publication No.SA22-7832-12, Thirteenth Edition, September 2019という公開文献に記載されており、この公開文献は本明細書において参照によってその全体が本明細書に組み込まれている。しかし、z/Architecture命令セット・アーキテクチャは1つの例示的なアーキテクチャにすぎず、International Business Machines Corporationまたは他の実体あるいはその両方の、他のアーキテクチャまたは他の種類のコンピューティング環境あるいはその両方が、本発明の1つまたは複数の態様を含むか、または使用するか、あるいはその両方であることができる。z/ArchitectureおよびIBMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0017】
図1を参照すると、1つの例では、コンピューティング環境100は中央処理装置複合体(CPC:central processor complex)102を含む。中央処理装置複合体102は、例えば、IBM Z(R)サーバ(または、International Business Machines Corporationもしくは他の実体によって提供される他のサーバもしくはマシン)であり、例えば、1つまたは複数のプロセッサ・ユニット(プロセッサとも呼ばれる)110および入出力(I/O:input/output)サブシステム111に結合されたメモリ104(システム・メモリ、メイン・メモリ、主記憶装置、中央記憶装置、ストレージとも呼ばれる)などの、複数のコンポーネントを含んでいる。プロセッサ・ユニット110の例としては、1つまたは複数の汎用プロセッサ(セントラル・プロセッサまたは中央処理装置(CPU:central processing units)としても知られている)または1つまたは複数の他のプロセッサあるいはその両方が挙げられる。IBM Zは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0018】
I/Oサブシステム111は、中央処理装置複合体の一部であるか、または中央処理装置複合体から分離することができる。I/Oサブシステム111は、主記憶装置104と、中央処理装置複合体に結合された入出力制御ユニット108および入出力(I/O)デバイス106との間の情報の流れを方向付ける。
【0019】
多くの種類のI/Oデバイスが使用されることができる。1つの特定の種類は、データ・ストレージ・デバイス140である。データ・ストレージ・デバイス140は、1つまたは複数のプログラム142、1つまたは複数のコンピュータ可読プログラム命令144、またはデータ、あるいはその組合せなどを格納することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0020】
中央処理装置複合体102は、取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むか、またはそのようなコンピュータ・システム・ストレージ媒体に結合されるか、あるいはその両方であることができる。例えば、中央処理装置複合体101は、取り外し不可、不揮発性の磁気媒体(通常は、「ハード・ドライブ」と呼ばれる)、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、あるいはCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りまたは書き込みを行うための光ディスク・ドライブ、あるいはその組合せを含むか、またはこれらに結合されるか、あるいはその両方であることができる。他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、中央処理装置複合体102と併用できるということが理解されるべきである。その例として、マイクロコードまたはミリコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0021】
さらに、中央処理装置複合体102は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用され得る。中央処理装置複合体102での使用に適することができる周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例としては、パーソナル・コンピュータ(PC:personal computer)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【0022】
中央処理装置複合体102は、1つまたは複数の実施形態では仮想化をサポートし、仮想化のサポートでは、例えば、メモリ104が、1つまたは複数の仮想マシン112(ゲストとも呼ばれる)、仮想マシンを管理するハイパーバイザ114などの仮想マシン・マネージャ、セキュア・プラットフォーム115(ウルトラバイザまたは信頼できる実行環境とも呼ばれる)、およびプロセッサ・ファームウェア116を含む。ハイパーバイザ114の1つの例は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/VM(R)ハイパーバイザである。ハイパーバイザは、ホストと呼ばれることがある。z/VMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0023】
1つまたは複数の実施形態では、セキュア・プラットフォーム115は、例えば、本明細書に記載されているようなプロセスを実行するように構成されたハードウェアまたはファームウェアあるいはその両方において少なくとも部分的に実装され得る。セキュア・プラットフォームは、メモリ保護ハードウェアを利用してメモリ保護を実施する、信頼できるファームウェアまたはハードウェアあるいはその両方である。ゲストの所有者は、ホスト鍵文書に埋め込まれた公開ホスト鍵を使用することによって、(例えば、IBM Secure Executionを使用して)情報をセキュア・プラットフォームまたは信頼できる実行環境に安全に渡すことができる。秘密情報を処理するために、セキュア・プラットフォーム115または信頼できる実行環境は、一致する秘密ホスト鍵を使用する。秘密ホスト鍵は、サーバ(例えば、IBM Z(R)サーバ)に固有であり、ハードウェア保護される。
【0024】
プロセッサ・ファームウェア116は、例えば、プロセッサのマイクロコードまたはミリコードを含む。プロセッサ・ファームウェア122は、例えば、上位レベルのマシン・コードの実装において使用される、ハードウェア・レベルの命令またはデータ構造あるいはその両方を含む。1つの実施形態では、プロセッサ・ファームウェア122は、例えば、信頼できるソフトウェアを含んでいるマイクロコードまたはミリコード、基盤になるハードウェアに固有のマイクロコードまたはミリコードとして通常は提供され、システムのハードウェアへのオペレーティング・システムのアクセスを制御する、独自のコードを含む。
【0025】
中央処理装置複合体の仮想マシンのサポートは、多数の仮想マシン112(またはゲスト)を操作する能力を提供し、各仮想マシン112は、異なるプログラム120と共に動作し、Linux(R)オペレーティング・システムなどのゲスト・オペレーティング・システム122を実行することができる。各仮想マシン112は、別々のシステムとして機能することができる。すなわち、各仮想マシンは、独立して除去またはリセットされ、ゲスト・オペレーティング・システムを実行し、異なるプログラムと共に動作することができる。仮想マシン内で実行されるオペレーティング・システムまたはアプリケーション・プログラムは、完全なシステム全体にアクセスできるように見えるが、実際は、その一部のみが利用可能である。z/VMおよびLinuxが例として提供されているが、本発明の1つまたは複数の態様に従って、他の仮想マシン・マネージャまたはオペレーティング・システムあるいはその両方が使用されてよい。Linux Foundation(世界規模での商標の所有者であるLinus Torvaldsの専用実施権者)からのサブライセンスに従って、登録商標Linux(R)が使用される。
【0026】
1つの実施形態では、1つまたは複数の仮想マシンまたはゲスト112がセキュア・ゲストである。図2を参照すると、セキュア・ゲスト200は、ハイパーバイザが、セキュア・ゲストの状態(例えば、メモリ、レジスタなど)を含むセキュア・ゲスト・リソース201を観察できない方法で、ハイパーバイザ(例えば、ハイパーバイザ114)によって開始される。例えば、機密コンピューティングの1つの実施形態では、ハイパーバイザは、セキュア・ゲストを開始/停止することができ、ハイパーバイザは、セキュア・ゲストを開始するために使用されるデータがどこにあるかを識別するが、実行中のセキュア・ゲストの中を見ることはできない。セキュア・ゲストを読み込む/開始するために使用されるデータは、ハイパーバイザがセキュア・ゲストを見ることができない方法で暗号化され得る。セキュア・ゲスト・イメージの所有者は、機密データをセキュア・ゲスト・メタデータ内に配置し、その後、セキュア・ゲスト・イメージをセキュア・ゲスト・メタデータと共に生成する。セキュア・ゲストが読み込まれた後に、セキュア・ゲストの状態とのすべての情報のやりとりが、セキュア・プラットフォーム115などの信頼できる実行環境によって処理される。
【0027】
1つの実施形態では、セキュア・ゲストを開始するために、ハイパーバイザは、セキュア・ゲスト・イメージ210およびセキュア・ゲスト・メタデータ220をセキュア・プラットフォーム115に渡す。このメタデータは、完全性保護され、少なくとも部分的に機密保護され、セキュア・プラットフォームのみによって解釈される。次に、セキュア・プラットフォームは、セキュア・ゲスト・メタデータ内の情報に基づいて、メモリに読み込まれたセキュア・ゲスト・イメージの完全性を強制し、読み込まれたイメージを含んでいるセキュア・ゲストのメモリを、ハイパーバイザによってアクセス可能になることから保護し、場合によっては、セキュア・ゲストを開始する前に、セキュア・ゲスト・イメージを復号することができる。
【0028】
セキュア・ゲストが読み込まれた後に、ユーザ固有の機密データ230(例えば、暗号化を実行するか、またはセキュアな接続を確立するための鍵、パスワードなど)をセキュア・ゲストに提供するのが望ましいことがある。例えば、1つの実施形態では、セキュア・ゲストのメタデータ(例えば、セキュア・ゲスト・メタデータ220)の機密保護された部分が、機密データ(例えば、機密データ230、例えば、セキュア・ゲストに読み込み可能なユーザ固有の機密データ)を含むように拡張され得る。1つの例では、セキュア・ゲストのメタデータは、機密データの1つまたは複数の識別子と共に機密データを含むように拡張され得る。他の可能性も存在する。
【0029】
述べたように、セキュア・ゲスト(またはセキュア仮想マシン)は、コンピューティング環境のハードウェアおよびファームウェアが、セキュア・ゲストが共有として能動的に指定する特殊なメモリ領域を除いてセキュア・ゲスト(すなわち、セキュア仮想マシン)の状態へのアクセスを拒否する、仮想マシンの一種である。そのようなセキュア・ゲストは、ホスト・システム(またはハイパーバイザ)によっても、コンピューティング環境(例えば、通常は可能である、仮想マシンをホストするオペレーティング・システム)の管理者によっても、アクセスされ得ない。セキュア・ゲストの状態へのアクセスは、ホスト・システムに対する攻撃者が、暗号鍵または他の秘密情報もしくは秘密文書などの機密情報を仮想マシンのメモリから読み取ることができるということを意味し、これはセキュリティ・リスクになる。さらに、セキュア・ゲストは、ホストのセキュリティを何とか回避するコンピューティング環境内の他の仮想マシンによって攻撃され得ない。
【0030】
述べたように、セキュア・ゲスト(すなわち、セキュア仮想マシン)を含んでいるコンピューティング環境では、ホストまたはハイパーバイザに加えて、コンピューティング環境内の他のゲスト(通常のゲストか、またはセキュア・ゲストかにかかわらない)が信用されるべきでないということが仮定され得る。セキュア・プラットフォームが、セキュア・ゲストに加えて、ハイパーバイザによって信用される場合、説明されたように、セキュア・プラットフォーム(例えば、ウルトラバイザまたは信頼できる実行環境)が使用され得る。加えて、実施において、セキュア・ゲストはそれ自身を信用する。
【0031】
従来、セキュア・ゲストがコンピューティング環境から除去されるときに、セキュア・ゲストに関連付けられたすべてのリソースが、同一の広がりを持つように消去されるか、または解放され、この消去または解放は、リソースの量に応じて長時間を必要とする可能性がある。
【0032】
1つまたは複数の態様に従って、セキュア・ゲスト(すなわち、セキュア仮想マシン)が使用されるシステム内のリソースの、より高速かつより効率的な非同期の回収を可能にすることによって、コンピューティング環境内の処理を容易にする、コンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法が提供される。すべてのセキュア・ゲスト・リソースを同一の広がりで処理する必要性を取り除くことによって、ゲスト除去プロセスを改善するために、セキュア・ゲストの、ゲスト・メモリ、他のメモリ、または他のリソース、あるいはその組合せなどのリソースは、セキュア・ゲストが削除されまたは除去された後に、保護されたままになる。例えば、(ゲスト・メモリなどの)1つまたは複数のセキュア・ゲスト・リソースは、セキュア・ゲストの除去とは非同期的に、後で回収され得る。
【0033】
図3は、本明細書に記載されているようなコンピューティング環境内のセキュア・ゲスト(またはセキュア仮想マシン)に必要とされるセキュア・ゲスト・リソース201の1つの実施形態を示している。示されているように、セキュア・ゲスト・リソース201は、1つまたは複数の実施形態では、関連するゲスト・メモリ300に加えて、他のメモリ301、およびセキュア・ゲストをサポートするために使用される他のリソース302を含んでいる。他のメモリ301は、通常、ゲスト・メモリ300より小さい量のメモリであり、特定のコンピューティング環境の実装では、関連するゲスト・メモリ300のあるパーセンテージであることができる。例として、他のメモリ301は、セキュア・ゲストの状態を維持するためにセキュア・プラットフォームによって所有されているメモリであることができ、またはそのようなメモリを含むことができる。他のリソース302は、通常、セキュア・ゲストをサポートするために必要とされる少量のリソースであり、例えば、セキュア・トークンまたは固有のマシン・トークン、キャッシュされたセキュアな状態、変換索引バッファ(TLB:translation lookaside buffer)エントリ、予備のI/Oデバイスなどを含むことができる。
【0034】
ゲスト(または仮想マシン)がコンピューティング環境から除去または廃棄されるときに、メモリなどの、それに関連するリソースは、例えば、再使用されるためにホストによって回収される必要がある。セキュア・ゲストの場合、ゲスト・メモリ300自体以外に、セキュア・ゲストに関連付けられ得るさまざまなメモリ領域が存在する。他のメモリ301または他のリソース302あるいはその両方などの、それらのメモリ領域も、(すなわち、保護がアクセス制御に基づく場合に)消去されてから、通常の使用のために使用可能にされる必要がある。有利なことに、本明細書において開示された1つまたは複数の態様に従って、除去されているセキュア・ゲストに関連付けられたセキュア・ゲスト・リソースのうちの1つまたは複数が、セキュア・ゲストの除去とは非同期的に回収されるために残される。このようにして、セキュア・ゲストの除去を確認するために、すべてのセキュア・ゲスト・リソースが同一の広がりで消去または抹消される場合よりも、セキュア・ゲストの除去が大幅に高速になる。このようにして、残っているセキュア・ゲスト・リソースが、後で、すなわちセキュア・ゲストの除去とは非同期的に、回収され得る。
【0035】
図4は、本発明の1つまたは複数の態様を例示するワークフローの1つの実施形態を示している。当業者によって理解されるように、示されたワークフローは、例えば、ホストおよびセキュア・プラットフォーム(または信頼できる実行環境)に関連して実装されたプログラム・コードによって具現化され得る。プログラム・コードが開始し(400)、ホスト(またはハイパーバイザ)が、除去されるセキュア・ゲストの指示を取得する(402)。ホストが、セキュア・ゲストの除去、およびセキュア・ゲスト・リソースのうちの1つまたは複数の非同期的回収を開始する(404)。1つの実装では、ホストが、セキュア・プラットフォームのアプリケーション・プログラム・インターフェイスを呼び出して、セキュア・ゲストを除去する。このインターフェイスが許可する場合、ホストは、どのセキュア・ゲスト・リソースが非同期的に回収されるべきかを任意選択的に指定することができる。
【0036】
図4に示されているように、プログラム・コードは、非同期的に回収されるべきセキュア・ゲスト・リソースが存在するということを決定し(406)、非同期的に回収されるべきセキュア・ゲスト・リソースのうちの1つまたは複数が、現在回収されるべきであるかどうかを確認する(408)。例えば、1つの実装では、ホストは、セキュア・ゲストの除去の後に回収を延期されているセキュア・ゲスト・リソースを、バックグラウンド処理で回収することができる。リソースが現在回収されるべきでない場合、それらのリソースは後で回収される(410)。そうでない場合、回収されるべきセキュア・ゲスト・リソースが消去され(412)(例えば、事前に定義された値に設定され)、プロセスが完了する(414)。比較すると、従来のワークフローでは、ホストが、セキュア・ゲストのインターフェイスを呼び出して、セキュア・ゲストの除去、およびセキュア・ゲストの除去と同一の広がりを持つ、すべてのセキュア・ゲスト・リソースの消去を開始し、その後ホストは、これらのリソースを自由に再使用する。本明細書に記載されたプロセスでは、ホストが、同一の広がりで消去されるべきであるセキュア・ゲスト・リソースを消去するよう要求し(またはインターフェイスを呼び出し)、セキュア・ゲストを除去する。同一の広がりで消去されるセキュア・ゲスト・リソースは、セキュア・トークンおよび予備のI/Oデバイスなどの、他のリソース302(図3)のすべてまたは一部を含むことができる。その後、ホストは、残っているセキュア・ゲスト・リソースを非同期的に回収することができ、これらのリソース(例えば、メモリ)が回収されるときに、これらのリソースは直ちに使用可能になる。
【0037】
本明細書において開示された1つまたは複数の態様に従って、ホストは、セキュア・ゲスト・リソースのすべて(例えば、セキュア・ゲスト・メモリ(secure guest memory)のすべて)を直ちに解放せずに、セキュア・ゲストまたは仮想マシンを廃棄または除去するために、セキュア・プラットフォーム(例えば、信頼できる実行環境またはウルトラバイザ)に対する呼び出しまたは要求を開始する。次に、残っているセキュア・ゲスト・リソースは、セキュア・ゲストの除去とは非同期的に回収され得る。すべてのセキュア・ゲスト・メモリが非同期的に回収される必要があるわけではないということに注意する。例えば、1つの実装では、セキュア・ゲストに関連付けられたすべてのゲスト・メモリが、セキュア・ゲストの除去とは非同期的に回収され得るが、別の実装では、ゲスト・メモリの一部のみが、セキュア・ゲストの除去とは非同期的に回収される必要がある。複数の変形および実施形態が可能である。
【0038】
1つまたは複数の実装では、セキュア・メモリ・リソースなどのリソースの回収を容易にするために、本明細書では破棄状態と呼ばれる新しいリソースの状態(例えば、メモリの状態)が使用され得る。通常、説明されたように、セキュア・メモリはホストによってアクセスされ得ない。セキュア・メモリは、セキュア・ゲストまたはセキュア・プラットフォームに属することができる。(本明細書において説明されるような)破棄状態は、破棄される必要があるセキュア・メモリの領域のメタデータを、破棄状態として、つまり、セキュア・プラットフォームにも、どのセキュア・ゲストにも属しておらず、自由に回収され得るとしてマーク付けするように更新することによって、実施され得る。その後、破棄されたメモリは、追加のチェックを実行する必要がないため、非同期的に、または同時に、あるいはその両方を含むいつでも回収され得る。さらに、セキュア・メモリ領域に関連付けられたメタデータを変更することは、メモリが自由に回収されることを可能にする。例えば、メモリがどのセキュア・ゲストに属しているかをチェックする必要がなく、セキュア・メモリ領域のセキュリティ・プロパティを変更する必要がなく、これらの実行は、より長い処理時間を必要とするであろう。
【0039】
例として、各セキュア・メモリ・ページがメタデータを含み、メモリ・ページ・メタデータのデータ構造500の1つの例が図5に示されている。1つの例では、メモリ・ページ・メタデータは、セキュア・プラットフォーム115(図1および2)によってアクセス可能であり、例えば、1つまたは複数のエントリ502を含み、各エントリ502は、例えば、ページ識別子504、および本明細書に記載された破棄状態インジケータなどの、1つまたは複数のインジケータ506を含んでいる。メモリ・ページ・メタデータは、除去されたセキュア・ゲストに関連付けられたセキュア・メモリ・ページの回収中に、ホストおよびセキュア・プラットフォームによって使用され得る。説明されたように、必要とされなくなったセキュア・メモリは、破棄状態に置かれ得る。セキュア仮想マシンまたはゲストが除去されるときに、メモリ・ページ・メタデータが更新され、その後、特定のメモリ・ページが破棄状態にあるかどうかを判定するために参照される。さらに、メモリ・ホットプラグまたはメモリ・ホットアンプラグの場合に、破棄状態インジケータを含むメモリ・ページ・メタデータが使用されることも可能である。このようにして、破棄されたメモリがセキュアなままになり、使用可能になる前に、明示的に回収される必要がある。したがって、未解決のメモリ・ページを破棄状態にするセキュア・ゲストの除去またはメモリ・ホットアンプラグなどの動作が、より高速に進むことができる。
【0040】
例として、図6は、破棄状態にあるセキュア・メモリを非同期的に回収するためのプロセスの1つの実施形態を示している。図6に示されているように、破棄状態にあるセキュア・メモリ600に加えて、前述のメモリ・ページ・メタデータなどの、関連するメモリ・メタデータ602、およびメモリを保護することにおいて使用される1つまたは複数のセキュリティ・フラグ604が存在する。このプロセスは、メモリ・ページ・メタデータをチェックして、ページが破棄状態にあることを確認するプログラム・コードを含み(610)、ページが破棄状態にあることを仮定して、(必要に応じて)メモリ・ページが消去され(612)、その後、1つまたは複数のセキュリティ・フラグが消去される(614)。このプロセスは、例えば、メモリが回収されることが可能な状態にセキュア・ゲストがあるかどうかをチェックすることを含むことができる、メモリ・ページを回収するための従来のプロセスに有利に匹敵し、従来のプロセスは、それ自体が遅いプロセスである可能性があり、例えば、メモリに関連付けられたゲストまたは仮想マシンを見つけるための追加の検索ステップを含み、場合によっては、同期のための追加のロックおよび追加のチェックを必要とする可能性がある。有利なことに、本明細書において説明されるような破棄状態メタデータ・インジケータを使用することは、より少ない処理で、破棄されたセキュア・メモリがより高速に解放されることを可能にする。関連するメモリが除去または消去されることを可能にするために、セキュア・ゲストなどの所有者が正しい状態にあるかどうかをチェックする必要がなく、破棄状態にあるメモリが並列に回収され得るという点において、より少ない競合が存在する。このプロセスは、セキュア・メモリ・ページなどのセキュア・メモリに破棄状態の指示が関連付けられていることを決定することを単に必要とし、そのように関連付けられている場合、例えば、メモリを消去することによって、メモリ・ページが回収されることが可能であり、その結果、メモリが直ちに再使用可能になる。
【0041】
別の実施形態では、セキュア・メモリが破棄状態になった後に、別のセキュア・ゲストへの高速なメモリ・インポートが実行され得る。高速なメモリ・インポートは、セキュアの指示が変更されず、したがって、指示を変更するためにロック・ステップまたはフラッシュ・ステップあるいはその両方を必要としないことによって、処理が高速化されるということを意味する。破棄状態にあるセキュア・メモリの実際のメモリの内容は、このメモリが別のセキュア・ゲストに与えられる前に、単に消去される。そのような実施形態では、オペレーティング・システムにおいて、破棄されたセキュア・メモリ・ページのプールが管理されることが可能であり、破棄されたセキュア・メモリ・ページは、オペレーティング・システムが再起動するとき(すなわち、セキュア・ゲストのハイパーバイザが再起動するとき)にのみ、通常のメモリ・ページになる。セキュア・ゲストがメモリを必要とする場合、通常のメモリをセキュアにするための処理を必要とせずに、破棄されたセキュア・メモリ・ページのプールからメモリが提供され得る。したがって、これは、延期された状態のメモリ・ページの内容に加えて、セキュア・メモリ・ページへのセキュアでないアクセスから保護するセキュリティの指示が消去される前述の回収とは別の種類の回収である。
【0042】
コンピューティング環境内の処理が、本発明の1つまたは複数の態様に関連しているとき、その処理を容易にする1つの実施形態のさらなる詳細が、図7A図7Bを参照して説明される。
【0043】
図7Aを参照すると、1つの実施形態では、コンピューティング環境のホスト・システムが、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、コンピューティング環境からのセキュア・ゲストの除去を開始する(700)。次に、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収され、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる(702)。1つまたは複数のセキュア・ゲスト・リソースの回収を延期することによって、セキュア・ゲスト(特に、大きいセキュア・ゲスト・リソースを含むセキュア・ゲスト)がコンピューティング環境からより高速に除去され得る。また、セキュア・ゲストの除去とは非同期的に1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、セキュア・ゲスト・リソースが再使用可能になり、これによって、コンピューティング環境内のメモリ負荷を有利に低くすることができる。
【0044】
1つの実施形態では、セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを回収することは、セキュア・ゲストの除去の後に、非同期的に発生する(704)。
【0045】
1つの実施形態では、セキュア・ゲストの除去は、非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む(706)。
【0046】
1つの実施形態では、1つまたは複数のセキュア・ゲスト・リソースが、セキュア・ゲストに関連付けられたゲスト・メモリを含む(708)。
【0047】
1つの例では、この方法は、ホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを指定することをさらに含む(710)。
【0048】
図7Bを参照すると、1つの実施形態では、回収することは、1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、1つまたは複数のセキュア・ゲストが破棄状態にあることに基づいて、1つまたは複数のゲスト・リソースを再使用のために消去することとを含み、この消去は、セキュア・ゲストの除去の後に発生する(712)。このようにして、メモリが除去または消去されることを可能にするために、コンピューティング環境内のメモリ所有者が正しい状態にあるかどうかをチェックする必要がないため、破棄されたメモリがより高速に解放され得る。さらに、メモリが並列に回収され得るため、競合が減少する。
【0049】
1つの実施形態では、1つまたは複数のセキュア・ゲスト・リソースは、1つまたは複数のセキュア・メモリ・ページを含み、決定することは、ページ・メタデータをチェックして、1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが破棄状態にあることを確認することを含む(714)。1つの実施形態では、回収することは、1つまたは複数のセキュア・メモリ・ページを消去すること、および1つまたは複数のセキュア・メモリ・ページに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む(716)。
【0050】
1つの例では、開始することは、ホストによって、セキュア・ゲストの除去とは非同期的に回収されるセキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、セキュア・ゲストを除去するための要求を、コンピューティング環境のセキュア・プラットフォームに送信することを含む(718)。
【0051】
他の変形および実施形態が可能である。
【0052】
本発明の態様は、多くの種類のコンピューティング環境によって使用されてよい。本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の実施形態が、図8Aを参照して説明される。この例では、コンピューティング環境36は、例えば、1つまたは複数のバス40または他の接続あるいはその両方を介して互いに結合された、ネイティブ中央処理装置(CPU)37、メモリ38、および1つまたは複数の入出力デバイスまたはインターフェイスあるいはその両方39を含む。例として、コンピューティング環境36は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるPowerPC(R)プロセッサ、ヒューレット・パッカード社(カリフォルニア州パロアルト市)によって提供されるインテル(R)Itanium(R)IIプロセッサ内蔵HP Superdome、あるいはInternational Business Machines Corporation、ヒューレット・パッカード社、インテル社、Oracle社、もしくは他の企業、またはその組合せによって提供されるアーキテクチャに基づく他のマシン、あるいはその組合せを含んでよい。PowerPCは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。インテルおよびItaniumは、米国および他の国における、インテル社またはその子会社の商標または登録商標である。
【0053】
ネイティブ中央処理装置37は、環境内で処理中に使用される1つまたは複数の汎用レジスタまたは1つまたは複数の専用レジスタあるいはその両方などの、1つまたは複数のネイティブ・レジスタ41を含む。これらのレジスタは、いずれかの特定の時点での環境の状態を表す情報を含む。
【0054】
さらに、ネイティブ中央処理装置37は、メモリ38に格納された命令およびコードを実行する。1つの特定の例では、中央処理装置は、メモリ38に格納されたエミュレータ・コード42を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートできるようにする。例えば、エミュレータ・コード42は、z/Architecture命令セット・アーキテクチャ以外のアーキテクチャに基づくマシン(PowerPCプロセッサ、HP Superdomeサーバなど)が、z/Architecture命令セット・アーキテクチャをエミュレートし、z/Architecture命令セット・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行できるようにする。
【0055】
エミュレータ・コード42に関連するさらなる詳細が、図8Bを参照して説明される。メモリ38に格納されたゲスト命令43は、ネイティブCPU37のアーキテクチャ以外のアーキテクチャにおいて実行されるように開発された(例えば、マシン命令と相互関係がある)ソフトウェア命令を含む。例えば、ゲスト命43は、z/Architecture命令セット・アーキテクチャに基づくプロセッサ上で実行するように設計されていてよいが、代わりに、例えばインテルItanium IIプロセッサであってよい、ネイティブCPU37上でエミュレートされる。1つの例では、エミュレータ・コード42は、メモリ38から1つまたは複数のゲスト命令43を取得するため、および取得された命令のローカル・バッファリングを任意選択的に提供するための命令フェッチ・ルーチン44を含む。エミュレータ・コード42は、取得されたゲスト命令の種類を決定するため、およびゲスト命令を、1つまたは複数の対応するネイティブ命令46に変換するための命令変換ルーチン45も含む。この変換は、例えば、ゲスト命令によって実行される機能を識別すること、およびこの機能を実行するためのネイティブ命令を選択することを含む。
【0056】
さらに、エミュレータ・コード42は、ネイティブ命令の実行を引き起こすためのエミュレーション制御ルーチン47を含む。エミュレーション制御ルーチン47は、ネイティブCPU37に、1つまたは複数のすでに取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、そのような実行の終了時に、次のゲスト命令またはゲスト命令のグループの取得をエミュレートするために、制御を命令フェッチ・ルーチンに返してよい。ネイティブ命令46の実行は、データをメモリ38からレジスタに読み込むこと、データをレジスタからメモリに再び格納すること、あるいは変換ルーチンによって決定されたとおりに、何らかの種類の算術演算または論理演算を実行することを含んでよい。
【0057】
例えば、各ルーチンは、メモリに格納されてネイティブ中央処理装置37によって実行されるソフトウェアにおいて実装される。他の例では、ルーチンまたは動作のうちの1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはこれらの何らかの組合せにおいて実装される。エミュレートされたプロセッサのレジスタは、ネイティブCPUのレジスタ41を使用して、またはメモリ38内の位置を使用することによって、エミュレートされてよい。実施形態では、ゲスト命令43、ネイティブ命令46、およびエミュレータ・コード42は、同じメモリ内に存在してよく、または異なるメモリ・デバイス間で分配されてよい。
【0058】
エミュレートされ得る命令、コマンド、または呼び出しは、本発明の1つまたは複数の態様に従って、本明細書に記載された信頼できる実行環境の呼び出しを含む。さらに、他の命令、コマンド、機能、動作、呼び出しまたは本発明の1つまたは複数の態様、あるいはその組合せが、本発明の1つまたは複数の態様に従ってエミュレートされてよい。
【0059】
前述のコンピューティング環境は、使用可能なコンピューティング環境の例にすぎない。分割されない環境、分割された環境、クラウド環境、またはエミュレートされた環境、あるいはその組合せを含むが、これらに限定されない、他の環境が使用されてよく、実施形態はいずれか1つの環境に限定されない。本明細書ではコンピューティング環境のさまざまな例が説明されるが、本発明の1つまたは複数の態様が、多くの種類の環境と共に使用されてよい。本明細書で提供されるコンピューティング環境は、例にすぎない。
【0060】
各コンピューティング環境は、本発明の1つまたは複数の態様を含むように構成されることが可能である。
【0061】
1つまたは複数の態様がクラウド・コンピューティングに関連してよい。
【0062】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において列挙された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意の他の種類のコンピューティング環境と組み合わせて実装され得る。
【0063】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでよい。
【0064】
特徴は、次のとおりである。
【0065】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0066】
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを通じてアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0067】
リソース・プール:プロバイダの計算リソースは、プールされて、マルチテナント・モデルを使用して複数の利用者に提供され、さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高いレベルの抽象化では、場所(例えば、国、州、またはデータセンター)を指定できることがある。
【0068】
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0069】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告されることが可能であり、利用されるサービスのプロバイダと利用者の両方に透明性を提供する。
【0070】
サービス・モデルは、次のとおりである。
【0071】
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0072】
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0073】
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選ばれたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0074】
デプロイメント・モデルは、次のとおりである。
【0075】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0076】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0077】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0078】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0079】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0080】
ここで図9を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード52を含んでいる。ノード52は、互いに通信してよい。ノード52は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供できる。図7に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0081】
ここで図10を参照すると、クラウド・コンピューティング環境50(図9)によって提供される機能的抽象レイヤのセットが示されている。図10に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0082】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0083】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体を提供できる抽象レイヤを備える。
【0084】
1つの例では、管理レイヤ80は、以下で説明される機能を提供してよい。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書またはインボイスの送付を行う。1つの例では、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0085】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ解析処理94、トランザクション処理95、およびセキュア・ゲスト・リソースの延期された回収処理の提供96が挙げられる。
【0086】
本発明の態様は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【0087】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
【0088】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、あるいはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0089】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をカスタマイズしてよい。
【0090】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0091】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0092】
コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成する他のデバイス上で実行させる。
【0093】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして実現されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0094】
上記に加えて、顧客の環境の管理を提供するサービス・プロバイダによって、1つまたは複数の態様が提供されること、提示されること、デプロイされること、管理されること、サービス提供されることなどが行われてよい。例えば、サービス・プロバイダは、1人または複数の顧客のために1つまたは複数の態様を実行するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を作成すること、維持すること、サポートすることなどを行うことができる。その見返りとして、サービス・プロバイダは、例えばサブスクリプションまたは料金契約あるいはその両方に従って、顧客から支払いを受け取ってよい。追加または代替として、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ってよい。
【0095】
1つの態様では、1つまたは複数の実施形態を実行するために、アプリケーションがデプロイされてよい。1つの例として、アプリケーションのデプロイは、1つまたは複数の実施形態を実行するよう機能するコンピュータ・インフラストラクチャを提供することを含む。
【0096】
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャがデプロイされてよく、このコンピューティング・インフラストラクチャでは、コンピューティング・システムと組み合わせたコードが、1つまたは複数の実施形態を実行できる。
【0097】
さらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含んでいる、コンピューティング・インフラストラクチャを統合するためのプロセスが提供されてよい。コンピュータ・システムは、コンピュータ可読媒体を備え、このコンピュータ可読媒体では、コンピュータ媒体が1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実行できる。
【0098】
上ではさまざまな実施形態が説明されたが、それらは単なる例である。例えば、1つまたは複数の態様を組み込むため、または1つまたは複数の態様を使用するため、あるいはその両方のために、他のアーキテクチャのコンピューティング環境が使用され得る。さらに、さまざまな命令、コマンド、機能、呼び出し、または動作、あるいはその組合せが使用されてよい。さらに、さまざまな種類の構造体が使用されてよい。多くの変形が可能である。
【0099】
本明細書では、さまざまな態様が説明される。さらに、本発明の態様の思想から逸脱することなく、多くの変形が可能である。本明細書に記載された各態様または特徴およびその変形を、特に矛盾しない限り、任意の他の態様または特徴と組み合わせることができるということに、注意するべきである。
【0100】
さらに、他の種類のコンピューティング環境が、恩恵を受けることができ、使用され得る。例として、プログラム・コードの格納または実行あるいはその両方を行うのに適した、システム・バスを介して直接的または間接的にメモリ素子に結合された少なくとも2つのプロセッサを含んでいる、データ処理システムを使用できる。これらのメモリ素子は、例えば、プログラム・コードの実際の実行時に使用されるローカル・メモリ、バルク・ストレージ、および実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含む。
【0101】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他の記憶媒体などを含むが、これらに限定されない)は、直接的に、または介在するI/Oコントローラを通じて、システムに結合され得る。ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。
【0102】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、制限することを意図していない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈で特に明示的に示されない限り、複数形も含むよう意図されている。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組合せの存在を示すが、1つまたは複数の他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組合せの存在または追加を除外していないということが、さらに理解されるであろう。
【0103】
下の特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および等価なものは、もしあれば、具体的に請求されるとき、他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。1つまたは複数の実施形態の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態に限定されない。多くの変更および変形が、当業者にとって明らかであろう。さまざまな態様および実際的な適用を最も適切に説明するため、および他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態を理解できるようにするために、実施形態が選択されて説明された。
図1
図2
図3
図4
図5
図6
図7A
図7B
図8A
図8B
図9
図10
【手続補正書】
【提出日】2024-04-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラムであって、
前記コンピューティング環境のホストに、
セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始させることと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含む方法を実行させ、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ・プログラム。
【請求項2】
前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを回収することが、前記セキュア・ゲストの除去の後に、非同期的に発生する、請求項1に記載のコンピュータ・プログラム。
【請求項3】
前記セキュア・ゲストの除去が、非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストの除去と同一の広がりを持つ1つまたは複数の他のセキュア・ゲスト・リソースを回収することを含む、請求項1に記載のコンピュータ・プログラム。
【請求項4】
前記1つまたは複数のセキュア・ゲスト・リソースが、前記セキュア・ゲストに関連付けられたゲスト・メモリを含む、請求項1に記載のコンピュータ・プログラム。
【請求項5】
前記ホストによって、前記セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを指定することをさらに含む、請求項1に記載のコンピュータ・プログラム。
【請求項6】
前記回収することが、前記1つまたは複数のセキュア・ゲスト・リソースが破棄状態にあることを決定することと、前記1つまたは複数のセキュア・ゲスト・リソースが前記破棄状態にあることに基づいて、前記1つまたは複数のセキュア・ゲスト・リソースを再使用のために消去することとを含み、前記消去が、前記セキュア・ゲストの除去の後に発生する、請求項1に記載のコンピュータ・プログラム製品。
【請求項7】
前記1つまたは複数のセキュア・ゲスト・リソースが、1つまたは複数のセキュア・メモリ・ページを含み、前記決定することが、ページ・メタデータをチェックして、前記1つまたは複数のセキュア・メモリ・ページのうちの1つのセキュア・メモリ・ページが前記破棄状態にあることを確認することを含む、請求項6に記載のコンピュータ・プログラム。
【請求項8】
前記回収することが、前記1つまたは複数のセキュア・メモリ・ページを消去すること、および前記1つまたは複数のセキュア・メモリ・ページに関連付けられた1つまたは複数のセキュリティ・フラグを消去することを含む、請求項7に記載のコンピュータ・プログラム。
【請求項9】
前記開始することが、前記ホストによって、前記セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの前記1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記セキュア・ゲストを除去するための要求を、前記コンピューティング環境のセキュア・プラットフォームに送信することを含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項10】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
前記コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始することと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含み、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ・システム。
【請求項11】
コンピューティング環境内の処理を容易にするためのコンピュータ実装方法であって、前記コンピュータ実装方法が、
前記コンピューティング環境のホストによって、セキュア・ゲストの除去とは非同期的に回収される前記セキュア・ゲストの1つまたは複数のセキュア・ゲスト・リソースを残しながら、前記コンピューティング環境からの前記セキュア・ゲストの前記除去を開始することと、
前記セキュア・ゲストの除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースを回収することとを含み、前記セキュア・ゲストの前記除去とは非同期的に前記1つまたは複数のセキュア・ゲスト・リソースが回収されるときに、前記1つまたは複数のセキュア・ゲスト・リソースが再使用可能になる、コンピュータ実装方法。
【国際調査報告】