(57)【要約】  システム変更を自動的に適用するとともに、システム変更後に、コンピューティング装置の正しい動作を確認するための方法及びシステムは、オペレーティングシステム及びＢＩＯＳコンポーネントを用いて、コンピューティング装置により、システム変更を少なくとも暫定的に適用することと、システム変更の成否を判断することと、失敗の場合にはシステム変更を破棄する機会を与えることとを含む。
2015512535.tif 000002
【特許請求の範囲】
【請求項１】
システムレベルの変更を実行するコンピューティング装置であって、
少なくとも１つのプロセッサコアと、
前記少なくとも１つのプロセッサコアに結合されるメモリデバイスとを備え、
前記メモリデバイスは、複数の命令を記憶し、前記複数の命令は、前記少なくとも１つのプロセッサコアによって実行されると、前記少なくとも１つのプロセッサコアに、
オペレーティングシステム及びＢＩＯＳが前記コンピューティング装置上で実行されている間に、前記ＢＩＯＳに対するメッセージを送信する前記オペレーティングシステムにより、システム変更を開始させ、
前記ＢＩＯＳによって、期間の終了後、前記オペレーティングシステムを再起動するタイマを開始させ、
前記システム変更を伴って前記オペレーティングシステムを起動させ、
前記ＢＩＯＳと通信を行う前記オペレーティングシステムによって、前記システム変更を伴う前記起動の成否を判断させ、
前記ＢＩＯＳによって、前記システム変更の成否判断に応じて前記システム変更を処理させるコンピューティング装置。
【請求項２】
前記オペレーティングシステムは、システム変更要求を受信する請求項１に記載のコンピューティング装置。
【請求項３】
前記ＢＩＯＳは、前記システム変更が保留であることを示すフラグを設定する請求項１に記載のコンピューティング装置。
【請求項４】
前記ＢＩＯＳは、前記フラグが設定されたか否かを判断するとともに、前記フラグが設定されたことに応じて、前記システム変更を伴って前記オペレーティングシステムを起動する請求項３に記載のコンピューティング装置。
【請求項５】
前記ＢＩＯＳは、前記フラグが設定されたか否かを判断するとともに、前記フラグが設定されなかったことに応じて、前記システム変更を伴わずに前記オペレーティングシステムを起動する請求項３に記載のコンピューティング装置。
【請求項６】
前記ＢＩＯＳは、前記システム変更を伴う前記起動が成功したという判断に応じて、前記タイマを無効化する請求項１に記載のコンピューティング装置。
【請求項７】
前記コンピューティング装置は、前記期間の終了に応じて、前記オペレーティングシステムを再起動する請求項１に記載のコンピューティング装置。
【請求項８】
前記オペレーティングシステムは、前記システム変更を伴う前記オペレーティングシステムの起動に応じて、前記コンピューティング装置の適切な動作を確認する少なくとも１つの試験を実行する請求項１に記載のコンピューティング装置。
【請求項９】
前記オペレーティングシステムは、前記システム変更の成否を示すメッセージを前記ＢＩＯＳに送信する請求項１に記載のコンピューティング装置。
【請求項１０】
前記オペレーティングシステム及び前記ＢＩＯＳは、前記コンピューティング装置上で第１の構成において実行され、前記ＢＩＯＳは、前記オペレーティングシステムが、前記システム変更が成功したと判断したことに応じて、前記第１の構成を、前記システム変更を含む第２の構成と入れ替える請求項１に記載のコンピューティング装置。
【請求項１１】
前記オペレーティングシステム及び前記ＢＩＯＳは、前記コンピューティング装置上で第１の構成において実行され、前記ＢＩＯＳは、前記オペレーティングシステムが、前記システム変更が失敗したと判断したことに応じて、前記システム変更を削除するとともに、前記第１の構成を維持する請求項１に記載のコンピューティング装置。
【請求項１２】
前記オペレーティングシステムは、前記システム変更の成否判断に応じて、ユーザ、出力装置、ネットワーク及びリモートコンピューティング装置の少なくとも１つに対して、前記システム変更のステータスを報告する請求項１に記載のコンピューティング装置。
【請求項１３】
システム変更を実行するための方法であって、
コンピューティング装置上で、オペレーティングシステム及び前記オペレーティングシステムと通信を行うＢＩＯＳを実行する段階と、
前記オペレーティングシステムによって、前記オペレーティングシステムが前記コンピューティング装置上で実行されている間に、前記コンピューティング装置に対するシステム変更を開始する段階と、
前記ＢＩＯＳによって、前記システム変更を少なくとも暫定的に適用する段階と、
前記オペレーティングシステムによって、前記システム変更の成否を判断する段階と、
前記ＢＩＯＳによって、前記システム変更の成否判断に応じて、前記システム変更を処理する段階とを含む方法。
【請求項１４】
前記ＢＩＯＳによって、前記オペレーティングシステムによって、前記システム変更を伴う起動を試みるとともに、前記システム変更が失敗したという判断に応じて、前記システム変更を伴わない再起動を行うタイマを構成する段階を含む請求項１３に記載の方法。
【請求項１５】
前記オペレーティングシステムによって、前記システム変更の少なくとも暫定的な適用に応じて、少なくとも１つの診断を実行する段階を含む請求項１３に記載の方法。
【請求項１６】
システム変更を実行するコンピューティング装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサと結合されるコンピュータ回路とを備え、
前記コンピュータ回路は、前記少なくとも１つのプロセッサによって、請求項１３から１５のいずれか１項に記載の方法を実行するように配置されるコンピューティング装置。
【請求項１７】
システム変更を実行する少なくとも１つのプログラムであって、
実行されたことに応じて、前記コンピューティング装置によって、請求項１３から１５のいずれか１項に記載の方法を実行する複数の命令を含むプログラム。
【請求項１８】
システム変更を実行するための方法であって、
オペレーティングシステム及びＢＩＯＳがコンピューティング装置上で実行されている間に、前記ＢＩＯＳが、
前記オペレーティングシステムから、前記コンピューティング装置に対するシステム変更要求を受信する段階と、
前記要求されたシステム変更を伴う前記オペレーティングシステムの起動を開始する段階と、
前記システム変更の成否判断の表示を、前記オペレーティングシステムから受信する段階と、
前記システム変更の成否の表示に応じて、前記システム変更を処理する段階とを含む方法。
【請求項１９】
システム変更を実行するコンピューティング装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサと結合されるコンピュータ回路とを備え、
前記コンピュータ回路は、前記少なくとも１つのプロセッサによって、請求項１８に記載の方法を実行するように配置されるコンピューティング装置。
【請求項２０】
システム変更を実行する少なくとも１つのプログラムであって、
実行されたことに応じて、前記コンピューティング装置により、請求項１８に記載の方法を実行する複数の命令を含むプログラム。
【請求項２１】
システム変更を実行するための方法であって、
オペレーティングシステム及びＢＩＯＳがコンピューティング装置上で実行されている間に、前記オペレーティングシステムが、
前記オペレーティングシステムの第１の構成及びシステム変更を含む前記オペレーティングシステムの第２の構成のいずれが実行されているかを示すメッセージを、前記ＢＩＯＳから受信することと、
前記第２の構成が実行されていることを示す前記ＢＩＯＳからのメッセージに応じて、前記コンピューティング装置が適切に動作しているか否かを判断するために、少なくとも１つの試験を実行することと、
前記コンピューティング装置が前記第２の構成で適切に動作しているか否かを示すメッセージを、前記ＢＩＯＳに送信することを含む方法。
【請求項２２】
システム変更を実行するコンピューティング装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサと結合されるコンピュータ回路とを備え、
前記コンピュータ回路は、前記少なくとも１つのプロセッサにより、請求項２１に記載の方法を実行するように配置されるコンピューティング装置。
【請求項２３】
システム変更を実行する少なくとも１つのプログラムであって、
実行されたことに応じて、前記コンピューティング装置により、請求項２１に記載の方法を実行する複数の命令を含むプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
時に、コンピューティング装置は、適切な及び／又は効率的な動作を維持するために、システムレベルの変更を必要とすることがある。このような変更の例は、ＢＩＯＳへの変更、プロセッサのマイクロコードのためのパッチ、ファームウェアのアップデート、セキュリティパッチ、構成変更等を含んでもよい。しかしながら、システム変更の実行により、コンピューティング装置が不適切な状態に陥る場合がある。結果的に、システムレベルの変更を自動で（例えば、無人で）実行することは、リスクを伴う。実際には、コンピューティング装置が自動システム変更要求を受信すると、システム変更の設定には利点が期待されるにも関わらず、システム障害のリスクを回避するために、その要求が無視又は拒否される場合がある。
【図面の簡単な説明】
【０００２】
本明細書に記載された発明は、添付図面において、限定的にではなく例示的に示される。図を簡単かつ明確にするために、図面中の要素は、必ずしも正確な縮尺で示されていない。例えば、いくつかの要素の寸法は、明確さのために、他の要素に比べて誇張して示される場合がある。さらに、適切だと考えられる場合には、対応する又は類似する要素を示すために、参照記号が図面間で繰り返し用いられている。
【０００３】
【図１】図１は、コンピューティング装置の少なくとも１つの実施形態を簡略化したブロック図である。
【０００４】
【図２】図２は、図１に示すコンピューティング装置の動作フェーズ及び動作モードの少なくとも１つの実施形態を簡略化したモジュール図である。
【０００５】
【図３】図３は、起動前処理中に適用可能な少なくとも２つのシステム構成の中で、いずれを適用するかを判断する方法の少なくとも１つの実施形態を簡略化したフロー図である。
【０００６】
【図４】図４は、システム変更開始のための方法の少なくとも１つの実施形態を簡略化したフロー図である。
【０００７】
【図５】図５は、保留システム変更に関する通信を処理する方法の少なくとも１つの実施形態を簡略化したフロー図である。
【０００８】
【図６】図６は、保留システム変更を確認する方法の少なくとも１つの実施形態を簡略化したフロー図である。
【発明を実施するための形態】
【０００９】
本開示の概念は、様々な変形及び代替的な形態をとることが可能であるが、その具体的な実施形態の例は、図面において例示的に示され、本明細書において詳述される。しかしながら、本開示の概念を開示された特定の形態に限定することを意図するものではなく、反対に、添付した特許請求の範囲によって定義された発明の趣旨及び範囲に属する全ての変形、均等物及び代替物を網羅することを意図するものであることを理解されたい。
【００１０】
以下の説明において、ロジックの実行、オペコード、オペランド指定手段、リソースの分配／共有／コピーの実行、システムコンポーネントのタイプ及び相互関係、及びロジックの分配／統合の選択等についての多数の具体的な説明が、本開示のより十分な理解のために述べられる。しかしながら、当業者によれば、開示された実施形態は、このような具体的な説明がなくとも実施可能であることを理解されたい。他の例において、制御構造、ゲートレベル回路及び全てのソフトウェア命令シーケンスは、発明を理解する上で妨げとならないよう、詳細には示されていない。当業者であれば、本開示に含まれる説明によれば、必要以上の実験を行うことなく、適切な機能を実行することが可能である。
【００１１】
本明細書における「１つの実施形態」、「実施形態」、「実施形態の例」等の記載は、記載された実施形態が特定の特徴、構造又は特性を含む場合があるが、各実施形態が必ずしもその特定の特徴、構造又は特性を含むものではないことを示す。さらに、このような記載は、必ずしも同じ実施形態を意味するものではない。さらに、特定の特徴、構造又は特性は、ある実施形態に関連して記載される場合、当業者の知識の範囲で、明示又は暗示された他の実施形態に関連して、このような特徴、構造又は特性をもたらすものである。
【００１２】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェア, 又はそのあらゆる組み合わせにおいて実行可能である。コンピュータシステムにおいて実行された本発明の実施形態は、コンポーネント間における１つ以上のバスベースの相互接続、及び／又はコンポーネント間における１つ以上のポイントツーポイント相互接続 を含んでもよい。本発明の実施形態は、また、１つ以上のプロセッサによって読み出し又は実行可能な、暫定的又は非暫定的な機械可読媒体によって伝送又は記憶される命令に従って、実行されてもよい。機械可読媒体は、機械（例えば、コンピューティング装置）によって読み出し可能な形態で情報を記憶又は送信するためのあらゆるデバイス、機構又は物理的構造として具現されてもよい。例えば、機械可読媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、ミニ又はマイクロＳＤカード、メモリスティック、電気信号等として具現されてもよい。
【００１３】
図面において、デバイス、モジュール、命令ブロック及びデータ要素を意味する図的要素等の具体的な配置及び順序が、説明の簡略化のために示される場合がある。しかしながら、図面における図的要素の具体的な順序又は配置が、処理の特定の順序又はシーケンス、又は処理の分離が要求されることを示唆しようとするものではないことは、当業者であれば理解されるはずである。さらに、ある図的要素が図面中に含まれることは、このような要素が全ての実施形態において必要とされず、あるいは、このような要素が表す特徴がいくつかの実施形態において含まれず、又は他の要素と組み合わせられない場合があることを示唆しようとするものでもない。
【００１４】
概して、命令ブロックを表すために用いられる図的要素は、ソフトウェア又はファームウェアアプリケーション、プログラム、機能、モジュール、ルーチン、処理、手続き、プラグイン、アプレット、ウィジェット、コードフラグメント等の機械可読命令のあらゆる適切な形態を用いて実行されてもよく、このような命令の各々は、あらゆる適切なプログラミング言語、ライブラリ、アプリケーションプログラミングインタフェース（ＡＰＩ）及び／又は他のソフトウェア開発ツールを用いて実行されてもよい。例えば、いくつかの実施形態は、機械レベルの命令、Ｃ、Ｃ＋＋及び／又は他のプログラミング言語を用いて実行されてもよい。
【００１５】
同様に、データ又は情報を表すために用いられる図的要素は、は、レジスタ、データストア、テーブル、レコード、アレイ、インデックス、ハッシュ、マップ、ツリー、リスト、グラフ、（あらゆるファイルタイプの）ファイル、フォルダ、ディレクトリ、データベース等のあらゆる適切な電子配列又は構造を用いて実行されてもよい。
【００１６】
さらに、図面において、実線又は破線もしくは矢印等の接続要素が、２つ以上の他の図的要素間における接続、関係又は関連を示すために用いられる場合、このような接続要素がいずれも存在しないことが、接続、関係又は関連が存在しないことを示唆することを意味するものではない。換言すると、いくつかの要素間の接続、関係又は関連は、本開示の理解を妨げないよう、図面に示されない場合がある。また、図の簡略化のために、１つの接続要素が、要素間の複数の接続、関係又は関連を表すために用いられる場合がある。例えば、接続要素が信号、データ又は命令の通信を表す場合において、必要に応じて通信を行うために、このような要素が１つ又は複数の信号経路（例えば、バス）を表す場合があることは、当業者であれば理解されるはずである。
【００１７】
ここで図１を参照すると、システム変更実行後におけるコンピューティング装置１００の適切な動作を確認するための例示的なシステムは、Ｏ／Ｓエージェント１３０及びＢＩＯＳ／ＳＭＩロジック１３４として具現される。以下、詳述されるように、Ｏ／Ｓエージェント１３０は、ＢＩＯＳ／ＳＭＩロジック１３４と通信を行うことにより、コンピューティング装置１００において、少なくとも暫定的に、自動的に（例えば、人が介在することなく）システム変更を設定することができる。システム変更の設定が失敗した場合、Ｏ／Ｓエージェント１３０及びＢＩＯＳ／ＳＭＩロジック１３４は、オペレーティングシステム１２８を、前の（システム変更前の）構成に安全に戻らせる。このように、システム障害のリスクを低減しつつ、システムレベルの変更が自動的に実行される。
【００１８】
コンピューティング装置１００は、限定するものではないが、モバイルデバイス、携帯情報端末、モバイルコンピューティング装置、スマートフォン、携帯電話、送受話器、単方向ページャー、双方向ページャー、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップ型コンピュータ、ラップトップ型コンピュータ、ノート型コンピュータ、ハンドヘルド型コンピュータ、タブレット型コンピュータ、サーバ、サーバアレイ又はサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク装置、ウェブ装置、分散型コンピューティングシステム、マルチプロセッサシステム、プロセッサベースシステム、家庭用電化製品、プログラム可能な家庭用電化製品、テレビ、デジタルテレビ、設定トップボックス、ワイヤレスアクセスポイント、基地局、加入者ステーション、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械又は前述したいずれかのあらゆる組み合わせを含むあらゆるタイプの電子デバイスとして具現されてもよい。例示的なコンピューティング装置１００は、少なくとも１つのメモリ１１２及び入出力（Ｉ／Ｏ）サブシステム１１４と通信可能に結合される少なくとも１つのプロセッサ１１０を含む。コンピューティング装置１００は、特定の用途に応じて、あらゆるタイプのコンピューティング装置、例えば、デスクトップ型コンピュータ、ラップトップ型又はタブレット型コンピュータ、サーバ、エンタープライズコンピュータシステム、コンピュータネットワーク、モバイル又はハンドヘルド型コンピューティング装置又は他のコンピューティング機能を有する（あらゆるサイズのフォームファクタの）電子デバイスとして具現されてもよい。
【００１９】
例示的なプロセッサ１１０は、少なくとも１つのプロセッサコア１２６を含む。キャッシュメモリの量に加えて、メモリ１１２は、ダイナミックランダムアクセスメモリデバイス（ＤＲＡＭ）、同期型ダイナミックランダムアクセスメモリデバイス（ＳＤＲＡＭ）、ダブルデータレートダイナミックランダムアクセスメモリデバイス（ＤＤＲ  ＳＤＲＡＭ）及び／又は他の揮発性メモリデバイス等のあらゆるタイプの適切なメモリデバイスとして具現されてもよい。
【００２０】
いくつかの実施形態において、Ｉ／Ｏサブシステム１１４は、メモリコントローラ（例えば、メモリコントローラサブシステム又はノースブリッジ）及び／又は入出力コントローラ（例えば、入出力コントローラ又はサブシステムもしくはサウスブリッジ）（図示せず）を含んでもよい。他の実施形態において、他の構成を有するＩ／Ｏサブシステムが用いられてもよい。例えば、いくつかの実施形態において、Ｉ／Ｏサブシステム１１４は、システムオンチップ（ＳｏＣ）の一部を形成してもよく、プロセッサ１１０及びコンピューティング装置１００の他のコンポーネントと共に、１つの集積回路チップ上に組み込まれてもよい。いくつかの実施形態において、Ｉ／Ｏサブシステム１１４の各コンポーネント自体は、共通の集積回路チップ上に配置されてもよいことを理解されたい。
【００２１】
例示的なＩ／Ｏサブシステム１１４は、メモリ１１２、少なくとも１つのデータ記憶装置１１６、少なくとも１つのファームウェアデバイス１１８、割り込みコントローラ１２０、タイマ１２２、及び選択的に、１つ以上の周辺機器１２４と通信可能に結合される。データ記憶装置１１６の一部は、ディスク記憶装置（例えば、ハードディスク）、物理的及び／又は論理的記憶デバイスのネットワーク等の、データ及び／又はコンピュータの命令を記憶するためのあらゆる適切なデバイスとして具現されてもよい。 例示的な実施形態において、オペレーティングシステム（Ｏ／Ｓ）１２８、Ｏ／Ｓエージェント１３０及び１つ以上のソフトウェアアプリケーション１３６は、データ記憶装置１１６内に存在する。いくつかの実施形態において、オペレーティングシステム１２８は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）、ＬＩＮＵＸ（登録商標）、ＡＰＰＬＥ  ｉＯＳ又は他のオペレーティングシステム、もしくは、個別型、ハンドヘルド型又は携帯型電子デバイス等の、具体的に特定のタイプのコンピューティング装置向けの他の同様の命令設定であってもよい。前述したオペレーティングシステムの例は、各所有者の登録商標又は商標であり、あるいは、その場合がある。いくつかの実施形態において、ソフトウェアアプリケーション１３６は、任意に、例えば、コンピューティング装置１００上で実行可能な、又は、個別型、ハンドヘルド型又は携帯型電子デバイス等の、具体的に特定のタイプのコンピューティング装置向けの、あらゆるソフトウェアアプリケーションであってもよい。オペレーティングシステム１２８、Ｏ／Ｓエージェント１３０及び／又はソフトウェアアプリケーション１３６の一部は、迅速な処理又は他の理由のために、動作時において、メモリ１１２にコピーされてもよい。
【００２２】
例示的なファームウェアデバイス１１８は、フラッシュメモリ等の不揮発性メモリ又はリードオンリメモリ（ＲＯＭ）デバイスとして具現される。例示的な実施形態において、ファームウェアデバイス１１８は、基本入出力システム（ＢＩＯＳ）１３２として一般に知られるルーチンの設定を記憶し、これは、ＢＩＯＳ／ＳＭＩロジック１３４、データ、命令及び／又は他の情報を含む。ＢＩＯＳ／ＳＭＩロジック１３４は、図２に示される、後述のＢＩＯＳ初期起動ロジック２２２及びＢＩＯＳ／ＳＭＩランタイムロジック２３２を含む。
【００２３】
例示的なＢＩＯＳ１３２によれば、コンピューティング装置１００は、オペレーティングシステム１２８を開始させ、かつ、Ｉ／Ｏサブシステム１１４に結合された様々な他のデバイスと通信を行うことができる。特定のプロセッサアーキテクチャに応じて、ユニファイドエクステンシブルファームウェアインタフェース（ＵＥＦＩ）又は他の命令を、ＢＩＯＳに代えて用いてもよいが、説明の簡略化のため、本明細書において、ＢＩＯＳという用語は、より一般的に、ＢＩＯＳ、ＵＥＦＩ、又はこれらと同様のあらゆる機構を表すために用いられてもよい。動作時において、ＢＩＯＳ１３２及び／又はＢＩＯＳ／ＳＭＩロジック１３４の一部は、迅速な実行又は他の理由のために、メモリ１１２にコピーされてもよい。
【００２４】
図の簡略化のために個別に示されるが、様々な実施形態において、割り込みコントローラ１２０及び／又はタイマ１２２の各々又はいずれかは、Ｉ／Ｏサブシステム１１４、ファームウェア１１８及び／又はプロセッサ１１０内に具現されてもよい。割り込みコントローラ１２０及びタイマ１２２は、Ｏ／Ｓエージェント１３０とＢＩＯＳ／ＳＭＩロジック１３４との間の通信を円滑化するとともに、特別な目的の動作モードにおいて、いくつかの機能又は処理を実行させるように構成される。いくつかのコンピューティング環境において、特別な目的の動作モードは、システム管理モード（ＳＭＭ）として知られており、この用語は、本明細書において、このような特別な目的の動作モードをより一般的に表すために用いられてもよい。ＳＭＭは、例えば、電力管理、ハードウェア制御及び／又はエラー処理等の、システム全体の機能を処理するために用いられてもよい。
【００２５】
一般的に、ＳＭＭは、オペレーティングシステム１２８から典型的には隠されたプラットホームサービスである。システム管理モードの使用は、特定のプロセッサアーキテクチャに応じて、システム管理の割り込み（ＳＭＩ）又はプラットホーム管理の割り込み（ＰＭＩ）等の管理割り込みイベントの発生によって、開始されてもよい。これらの割り込みイベントは、通常、マスク不可能であるためマスク可能割り込み及び他のイベントに優先する。典型的には、管理割り込みは、実行され得るあらゆるオペレーティングシステムの処理と同時に実行される非同期処理を開始させる。後述するように、例示的な割り込みコントローラ１２０は、あるイベントの発生に応じて、管理割り込み （ＳＭＩ又はＰＭＩ等）を生成する。例示的なタイマ１２２は、期間の終了によって管理割り込みが開始するように、定められた又はプログラム可能な期間（例えば、５分の範囲）でカウントダウンを行うように用いることができる。
【００２６】
Ｉ／Ｏサブシステム１１４は、例えば、コンピューティング装置１００の意図された用途に応じて、ネットワークインタフェース、グラフィックドライバ、オーディオドライバ等（図示せず）の１つ以上の他の周辺機器１２４と通信可能に結合されてもよい。さらに、コンピューティング装置１００は、説明の明確化のために図１に示されていない他のコンポーネント、サブコンポーネント及びデバイスを含んでもよいことを理解されたい。
【００２７】
概して、コンピューティング装置１００のコンポーネントは、図１に示すように、概略的に両方向矢印で表される１つ以上の信号経路によって、通信可能に結合される。このような信号経路は、個々のデバイス間の通信を容易にすることが可能なあらゆるタイプの有線又は無線の信号経路として具現されてもよい。例えば、信号経路は、任意の数の電線、プリント回路基板のトレース、ビア、バス、ポイントツーポイント相互接続、介在デバイス等として具現されてもよい。
【００２８】
動作において、オペレーティングシステム１２８は、コンピューティング装置１００における実行開始後の任意の時間（例えば、ランタイム）に、システムレベルの変更実行要求を受信してもよい。このような要求は、例えば、a ソフトウェア又はファームウェアのアップデート、中央処理ユニット（ＣＰＵ）又はプロセッサのマイクロコードに対するパッチ、ＢＩＯＳに対する変更、セキュリティパッチ及び／又は構成変更に関するものであってもよい。説明の簡略化のために、このような変更及び／又はアップデートもしくはこれらの組み合わせの各々、いずれか又は全ては、本明細書において「システム変更」と称されてもよく、１つ以上のシステム変更を含むシステム構成は、「保留構成」と称されてもよい。
【００２９】
例として、いくつかの場合、プロセッサ１１０、オペレーティングシステム１２８又はソフトウェアアプリケーション１３６は、動作を開始すると、（例えば、インターネットウェブサイト又はリモートサーバへ行くことによって）コンピューティング装置１００にまだ設定されていないシステム変更の有無を、自動的にチェックしてもよい。コンピューティング装置１００に設定可能なシステム変更がある場合、Ｏ／Ｓエージェント１３０はＢＩＯＳ／ＳＭＩロジック１３４と通信を行うことにより、オペレーティングシステム１２８を保留システム変更で「試験的に」起動する試みを１回行う。Ｏ／Ｓエージェント１３０が、試験的な起動が失敗したと判断した場合、オペレーティングシステム１２８は、前の構成（例えば、システム変更なし）で再起動を行う。
【００３０】
ここで図２を参照すると、モジュール図は、コンピューティング装置１００の電源がオンになった後におけるコンピューティング装置１００の動作のフェーズを示す。コンピューティング装置１００の少なくとも１つの実施形態は、標準（例えば、ＣＰＵ）動作モード２１０及び特別な目的の（例えば、ＳＭＭ）動作モード２００において動作可能であるため、図２は、これらのモードの各々における命令、ルーチン、処理等をも示す。
【００３１】
コンピューティング装置１００の動作フェーズは、ファームウェア初期化又は「ＢＩＯＳ」フェーズ２１２、オペレーティングシステム起動フェーズ２１４及びオペレーティングシステム実行フェーズ２１６を含む。ＢＩＯＳフェーズ２１２及びＯ／Ｓ起動フェーズ２１４は、より一般的に、「起動前」フェーズと称されてもよく、Ｏ／Ｓ実行フェーズ２１６は、「ランタイム」フェーズと称されてもよい。フェーズ２１２、２１４、２１６は、概して、順次生じる。例えば、Ｏ／Ｓ起動フェーズ２１４は、ＢＩＯＳフェーズ２１２が完了するまで、典型的には開始しない。同様に、Ｏ／Ｓ実行フェーズ２１６は、典型的には、Ｏ／Ｓ起動フェーズ２１４が完了するまで、典型的には開始しない。動作モード２００、２１０は、フェーズ２１２、２１４、２１６のいずれかにおいて、同時に実行されてもよい。
【００３２】
ＢＩＯＳフェーズ２１２において、コンピューティング装置１００は、コンピュータ制御のロジックを実行することにより、ブロック２２０及び２２２によって特定されたタスクを達成する。これらのタスクは、標準動作モード２１０において達成される。ブロック２２０において、ＢＩＯＳ１３２及びＳＭＭ２００は、初期化される。ブロック２２２において、ＢＩＯＳ１３２は、どのシステム構成をオペレーティングシステム１２８の起動時に用いるか（例えば、既知の「良好な」構成で起動するか否か、あるいはシステム変更を含む新たな又は「保留の」構成で起動するか否か）を決定するように構成された初期起動ロジックを実行する。後述するブロック２２２のタスクを達成するための例示的な方法３００を、図３に示す。ブロック２２４において、ＢＩＯＳ１３２は、ブロック２２２においてＢＩＯＳ１３２によって定められた構成で、オペレーティングシステム１２８をロード及び起動する。コンピューティング装置１００は、ブロック２２４においてコンピュータ制御のロジックの実行時は、Ｏ／Ｓ起動フェーズ２１４及び標準動作モード２１０にある。
【００３３】
一度、オペレーティングシステム１２８が起動又は再起動されると（例えば、図２のステップ（１）又はステップ（３））、コンピューティング装置１００は、Ｏ／Ｓ実行フェーズ２１６及び標準動作モード２１０で動作する。 ブロック２２６によって示されるように、Ｏ／Ｓ実行フェーズ２１６において、コンピューティング装置１００は、ソフトウェアアプリケーション１３６を実行してもよく、１つ以上の周辺機器１２４を介してユーザとやり取りを行ってもよく、及び／又は他の行動又は動作を実行してもよい。Ｏ／Ｓ実行フェーズ２１６における任意の時間に、Ｏ／Ｓエージェント２３０は、上述したように、システム変更要求２２８を受信してもよい。要求２２８は、例えば、コンピューティング装置１００において実行中の別の処理によって、又はコンピューティング装置１００のユーザによって発生してもよい。要求２２８に応じて、Ｏ／Ｓエージェント１３０は、図２のステップ（２）において、要求されたシステム変更の実行を開始する。後述する図２のステップ（２）のタスクを達成するための例示的な方法４００を、図４に示す。ＳＭＩメッセージを用いて、例えば、Ｏ／Ｓエージェント１３０は、ＢＩＯＳ／ＳＭＩロジック１３４を呼び出すことにより、要求されたシステム変更を少なくとも暫定的に適用する。ＢＩＯＳ／ＳＭＩロジック１３４は、ブロック２３２によって示されるように、特別な目的の動作モード（例えば、ＳＭＭ２００）において実行される。後述するブロック２３２のタスクを達成するための例示的な方法５００を、図５に示す。 Ｏ／Ｓエージェント１３０は、次に、オペレーティングシステム１２８を、システム変更（図２のステップ（３））を伴って再起動し、図２のステップ（４）において、例えば、１つ以上のシステムレベルの試験を実行することによって、システム変更を確認する。後述する図２のステップ（４）のタスクを達成するための例示的な方法６００を、図６に示す。
【００３４】
ここで図３を参照すると、図２のブロック２２２のタスクを達成するための例示的な方法３００（例えば、オペレーティングシステム１２８の起動時にどの構成を用いるかを決定する）が示される。方法３００は、ＢＩＯＳ１３２によって実行されるように構成されたコンピュータ制御のロジック（例えば、ＢＩＯＳ初期起動ロジック２２２）として具現されてもよい。ブロック３１０において、コンピューティング装置１００は、電源がオンにされ、又は他の方法によって起動（又は再起動）される。ブロック３１０は、破線で示されることにより、例示的な実施形態において、ブロック３１０が、単に、方法３００の次のブロック（例えば、３１２、３１４、３１６、３１８、３２０、３２２）の前に発生するイベントに過ぎず、方法３００のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
【００３５】
ブロック３１２において、ＢＩＯＳ初期起動ロジック２２２は、「起動保留」フラグが設定されているか否かを判断する。例示的な実施形態において、起動保留フラグは、単に、システム変更が保留の場合（例えば、Ｏ／Ｓエージェント１３０がシステム変更を含む新たな構成の設定要求を受信した場合）にオンになり（例えば、「１」の値が割り当てられ）、又は、設定待ちのシステム変更がない場合に「０」の値が割り当てられるビットである。例示的な実施形態において、起動保留フラグは、ＢＩＯＳ記憶装置（例えば、フラッシュメモリ）に記憶される。保留システム変更がない場合、次にブロック３１４において、ＢＩＯＳ初期起動ロジック２２２は、既知の「良好な」構成（例えば、システム変更前に存在していたシステム構成）を適用する。
【００３６】
システム変更が保留の場合、次にブロック３１６において、ＢＩＯＳ初期起動ロジック２２２は、起動保留フラグをクリアする（例えば、起動保留フラグを「１」の値から「０」の値に変更し、逆もまた同様に変更する）。例示的な実施形態において、保留構成の起動が無事完了しない限り、起動保留フラグは、オペレーティングシステム１２８を、保留システム変更を含む構成で起動するための、ただ１回の試みを確実に行うために用いられる。
【００３７】
ブロック３１８において、タイマ１２２は、期間が終了するとオペレーティングシステム１２８が自動的にシャットダウン及び再起動されるように、期間のカウントダウンを行うように構成される。例示的な実施形態において、期間は、時間の終了前に、コンピューティング装置１００が保留構成で無事起動させる試みを行うために十分な時間を与えるように設定される。ＢＩＯＳ初期起動ロジック２２２は、次にブロック３２０において、保留構成を適用する。ブロック３２２において、ＢＩＯＳ初期起動ロジック２２２は、場合によっては、ブロック３１４で確立された既知の構成又はブロック３２０で適用された保留構成のいずれかを用いて、オペレーティングシステム１２８の起動を開始する。保留構成が成功した場合、ブロック３２０及び３２２のタスクは、タイマ１２２の終了前に、無事完了する。ブロック３２０及び３２２のタスク完了前に、タイマ１２２が終了した場合、保留構成は失敗したとみなされる。
【００３８】
ここで図４を参照すると、図２のステップ（２）のタスク（例えば、保留構成の起動開始）を達成するための例示的な方法４００が示される。方法４００は、Ｏ／Ｓエージェント２３０によって実行されるように構成されたコンピュータ制御のロジックとして具現されてもよい。ブロック４１０において、Ｏ／Ｓエージェント２３０は、システム変更（例えば、図２に示す要求２２８）を含む保留システム構成を適用（例えば、設定）するための要求を受信する。上述したように、要求は、例えば、他の処理又はユーザによって、発生する場合がある。ブロック４１０は、破線で示されることにより、例示的な実施形態において、ブロック４１０は、単に、方法４００の次のブロック（例えば、４１２、４１４、４１６）の前に発生するイベントに過ぎず、方法４００のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
【００３９】
ブロック４１２において、Ｏ／Ｓエージェントは、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に対してメッセージに含まれる保留構成のアップロードを命令するメッセージ（例えば、ＳＭＩ）を、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信する。保留構成のさらなる処理は、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって、後述する図５のブロック５２８で始まる特別な目的の動作モード２００において実行される。その間にブロック４１４において、Ｏ／Ｓエージェント２３０は、ＢＩＯＳ／ＳＭＩランタイムロジック２３２からの、図５のブロック５２８、５３０、５３２、５３８における処理を完了したことを示すメッセージを待つ。ブロック４１６において、Ｏ／Ｓエージェント２３０は、オペレーティングシステム１２８の、（図２のステップ（３）として示される）システム変更を含む保留構成での再起動を開始する。
【００４０】
ここで図５を参照すると、ブロック２３２のタスクを達成するための例示的な方法５００が示される。方法５００は、ＢＩＯＳ１３２によって実行されるように構成されるコンピュータ制御のロジックとして（例えば、ＢＩＯＳランタイムロジック２３２として）具現されてもよい。例示的な方法５００は、保留構成の処理時において、多数の異なるメッセージ（例えば、ＳＭＩ）をＯ／Ｓエージェント２３０から受信するように構成される。例示的な実施形態において、方法５００は、ＢＩＯＳ／ＳＭＩランタイムロジック２３２がＯ／Ｓエージェント２３０からメッセージを受信する度に実行される。
【００４１】
ブロック５１０において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２は、Ｏ／Ｓエージェント２３０からメッセージ（例えば、ＳＭＩ）を受信する。例示的な実施形態において、ブロック５１０において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって受信されたメッセージは、図４のブロック４１２、図６のブロック６１２、図６のブロック６１８又は図６のブロック６２４において、Ｏ／Ｓエージェント２３０によって生成される。ブロック５１０は、破線によって示されることにより、例示的な実施形態において、ブロック５１０が、単に、イベントは、方法５００の次のブロック（例えば、ブロック５１２、５１８、５２８、５３４及び次のブロック）の前に発生するに過ぎず、方法５００のあらゆるコンピュータ制御のロジックに含まれる必要なないことを示す。図２に示すように、ＢＩＯＳ／ＳＭＩランタイムロジック２３２は、特別な目的の動作モード２００を用いて実行される。
【００４２】
ブロック５１２において、方法５００は、Ｏ／Ｓエージェント２３０からのメッセージが、保留構成が無事適用され、全ての適用可能な試験（例えば、「保留コミット」メッセージ）を通過したことを示すか否かを判断する。例示的な実施形態において、「保留コミット」メッセージが、後述する図６のブロック６２４において、Ｏ／Ｓエージェント２３０によって、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信される。ブロック５１２において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって受信されたメッセージが「保留コミット」メッセージである場合、次にブロック５１４において、方法５００は、既知の「良好な」構成を、システム変更を示す保留構成と入れ替え、ブロック５１６において、タスクの無事完了を示すステータスメッセージをＯ／Ｓエージェント２３０に返す。例示的な実施形態において、ブロック５１６の「成功」メッセージは、Ｏ／Ｓエージェント２３０によって受信され、後述する図６のブロック６２６において、制御は、標準動作モード２１０に戻される。
【００４３】
Ｏ／Ｓエージェント２３０からのメッセージが「保留コミット」メッセージではない場合、方法５００は、ブロック５１８に進む。ブロック５１８において、方法５００は、Ｏ／Ｓエージェント２３０からのメッセージが、Ｏ／Ｓエージェント２３０が現在の構成のステータス情報を要求していることを示すか否か、つまり、既知の「良好な」構成又はシステム変更を含む保留構成が現在使用されているか否か（例えば、「どの構成」メッセージ）を判断する。例示的な実施形態において、「どの構成」メッセージは、後述する図６のブロック６１２において、Ｏ／Ｓエージェント２３０によって、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信される。
【００４４】
ブロック５１８において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって受信されたメッセージが「どの構成」メッセージである場合、次にブロック５２０において、方法５００は、保留構成が、前回オペレーティングシステム１２８が起動されたときに用いられたか否かを判断する。例示的な実施形態において、これは、上述した起動保留フラグを参照して判断される。前回の起動が保留構成を用いた場合、次にブロック５２２において、タイマ１２２ は無効化され、ブロック５２４において、保留構成を用いるべきことを示すステータスメッセージが、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって、Ｏ／Ｓエージェント２３０に送信される。起動保留フラグに基づいて、ＢＩＯＳ／ＳＭＩランタイムロジック２３２は、保留構成が無事適用されたという結論に達したため、タイマ１２２は、ブロック５２２において無効化される。前回の起動が保留構成を用いなかった場合、次にブロック５２６において、既知の「良好な」構成が使用されなければならないことを示すステータスメッセージは、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって、Ｏ／Ｓエージェント２３０に送信される。例示的な実施形態において、ブロック５２４の「保留構成を使用」メッセージ又はブロック５２６の「既知の構成を使用」メッセージは、場合によってＯ／Ｓエージェント２３０に受信され、制御は、後述する図６のブロック６１４において、標準動作モード２１０に戻される。
【００４５】
Ｏ／Ｓエージェント２３０からのメッセージが「どの構成」メッセージではない場合、方法５００は、ブロック５２８に進む。ブロック５２８において、方法５００ は、Ｏ／Ｓエージェント２３０からのメッセージが、システム変更を含む保留構成を含むか否か（例えば、「新規構成」メッセージか否か）を判断する。例示的な実施形態において、「新規構成」メッセージは、上述した図４のブロック４１２において、Ｏ／Ｓエージェント２３０によって、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信される。
【００４６】
ブロック５２８において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって受信されたメッセージが「新規構成」メッセージである場合、次にブロック５３０において、方法５００は、「新規構成」メッセージに含まれるデータを含む保留構成を生成し、ブロック５３２において上述したように、起動保留フラグを設定し、ブロック５３８において、保留構成が無事生成されたことを示すメッセージをＯ／Ｓエージェント２３０に送信する。上述したように、ブロック５２８は、Ｏ／Ｓエージェント２３０がシステム変更要求２２８を受信する度に呼び出される。例示的な実施形態において、ブロック５３８の「成功」メッセージは、Ｏ／Ｓエージェント２３０によって受信され、上述した図４のブロック４１４において、制御は標準動作モード２１０に戻される。
【００４７】
Ｏ／Ｓエージェント２３０からのメッセージが「新規構成」メッセージではない場合、少なくともいくつかの実施形態において、方法５００は、ブロック５３４に進む。ブロック５３４において、方法５００は、Ｏ／Ｓエージェント２３０からのメッセージが、保留構成が全ての適用可能な試験を通過しなかったため破棄されるべきであることを示すか否か（例えば、「保留破棄」メッセージか否か）を判断する。例示的な実施形態において、「保留破棄」メッセージは、後述する図６のブロック６１８において、Ｏ／Ｓエージェント２３０によって、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信される。
【００４８】
ブロック５３４において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって受信されたメッセージが「保留破棄」メッセージである場合、次にブロック５３６において、方法５００は、保留構成を削除し、保留構成が無事削除されたことを示すステータスメッセージを、Ｏ／Ｓエージェント２３０に送信する。上述したように、方法５００は、特別な目的の動作モード２００において実行され、制御は、図５のブロック５１６、５２４、５２６、５２８及び５３６において、標準のＣＰＵ動作モード２１０に戻される。
【００４９】
ここで図６を参照すると、図２のステップ（４）のタスク（例えば、保留構成が無事設定されたことの確認）を達成するための例示的な方法６００が示される。方法６００は、Ｏ／Ｓエージェント２３０によって実行されるように構成されるコンピュータ制御のロジックとして具現されてもよい。方法６００は、図４のブロック４１６において、オペレーティングシステム１２８が保留構成で一度再起動されると、呼び出される。従って、ブロック６１０は、破線によって示されることにより、例示的な実施形態において、ブロック６１０が、単に、方法６００の次のブロック（例えば、ブロック６１２及び次のブロック）の前に発生するイベントに過ぎず、方法６００のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
【００５０】
ブロック６１２において、Ｏ／Ｓエージェント２３０は、上述した「どの構成」メッセージをＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信することにより、既知の「良好な」構成又は保留構成が使用されているか否かを判断する。ブロック６１４において、Ｏ／Ｓエージェント２３０は、上述した図５のブロック５２４又はブロック５２６のいずれかにおいて、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって生成されたメッセージを受信する。ブロック６１４において、Ｏ／Ｓエージェント２３０によって受信されたＢＩＯＳ／ＳＭＩランタイムロジック２３２からのメッセージが既知の「良好な」構成が使用されていることを示す場合、次にＯ／Ｓエージェント２３０は、保留構成での１回の試験的な起動が失敗した（例えば、起動完了前にタイマ１２２が終了したため、既知の「良好な」構成で再起動を開始した、あるいはユーザが電源又はリセットボタンを押下した）と結論付けることができる。このようなイベントにおいて、Ｏ／Ｓエージェント２３０は、ブロック６１６において、試みの失敗に応じて、コンピュータ制御のエラー処理ロジックを開始し、少なくともいくつかの実施形態において、ブロック６１８において、上述した「保留破棄」メッセージをＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信する。エラー処理ロジックのいくつかの例は、保留構成の起動に失敗した試みのログ及び／又はこれに関する他のデータの保持、１つ以上のこのような失敗した試みに関するレポートの生成、コンピューティング装置１００のユーザ、出力装置（ディスプレイ又はスピーカ等）、ネットワーク又はリモートコンピューティング装置及び／又は他の救済手段に対する１つ以上の警告の送信を含んでもよい。救済手段又はブロック６１６においてＯ／Ｓエージェント２３０によって実行される手段は、コンピューティング装置１００の独自のシステム設計又は構成の要求によって異なる場合がある。
【００５１】
ブロック６１４において、Ｏ／Ｓエージェント２３０によって受信されたＢＩＯＳ／ＳＭＩランタイムロジック２３２からのメッセージが、保留構成が使用されていることを示す場合、次にＯ／Ｓエージェント２３０は、保留構成での起動が成功したと結論付けることができ、ブロック６２０に進むことができる。しかしながら、保留構成の起動が無事完了した場合であっても、システムが不安定性又は他の動作上の課題を有するリスクは、依然として存在する。そこで、ブロック６２０において、Ｏ／Ｓエージェント２３０は、１つ以上の診断、システム試験、オペレーティングシステム試験、組み込み式自己診断試験（ＢＩＳＴ）及び／又は他の機能の試験又は一連の試験を実行することにより、保留構成での起動後に、コンピューティング装置１００が適切に動作しているか否かを判断する。試験又はブロック６２０においてＯ／Ｓエージェント２３０によって実行される試験は、コンピューティング装置１００の独自のシステム設計又は構成の要求によって異なる場合がある。
【００５２】
保留構成が、１つ以上の試験及び／又はブロック６２０においてＯ／Ｓエージェント２３０によって実行される診断を無事完了した場合、次にブロック６２４において、Ｏ／Ｓエージェント２３０は、上述した「保留コミット」メッセージを、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信し、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に対して、既知の「良好な」構成を保留構成と入れ替えることを命令する。ブロック６２６において、Ｏ／Ｓエージェント２３０は、図５のブロック５１６において、ＢＩＯＳ／ＳＭＩランタイムロジック２３２によって生成された「成功」ステータスメッセージを受信し、保留構成の実行が成功したことに関するイベントロジックを開始する。このようなイベントロジックのいくつかの例は、保留構成の起動に成功した試み及び／又はこれに関する他のデータのロギング、１つ以上のこのような成功した試みに関するレポートの生成、１つ以上のコンピューティング装置１００のユーザ、出力装置（ディスプレイ又はスピーカ等）、ネットワーク、又はリモートコンピューティング装置及び／又は他のイベント報告手段に対する１つ以上の警告の送信を含んでもよい。イベント報告手段又はブロック６２６においてＯ／Ｓエージェント２３０によって実行される手段は、コンピューティング装置１００の独自のシステム設計又は構成の要求によって異なる場合がある。
【００５３】
保留構成が１つ以上の試験及び／又はブロック６２０においてＯ／Ｓエージェント２３０によって実行される診断を完了しない場合、次にブロック６１８において、Ｏ／Ｓエージェント２３０は、上述した「保留破棄」メッセージをＢＩＯＳ／ＳＭＩランタイムロジック２３２に送信することにより、ＢＩＯＳ／ＳＭＩランタイムロジック２３２に、保留構成の削除及び既知の「良好な」構成の維持を命令する。様々な実施形態において、Ｏ／Ｓエージェント２３０は、任意の基準又は任意の数の基準を用いることにより、コンピューティング装置１００の独自のシステム設計又は構成の要求に基づいて、保留構成を承認するか否かを判断してもよい。他の実施形態において、実行された試験及び／又は診断の通過が要求される場合があるとしても、例えば、いくつかの実施形態において、全ての実行された試験及び／又は診断の通過が１００％未満であることを、「通過」とみなしてもよい。
【実施例】
【００５４】
本明細書で開示されたデバイス、システム及び方法の例示的な実施例を、以下に示す。デバイス、システム及び方法の実施形態は、あらゆる１つ以上の後述する実施例及びそのあらゆる組み合わせを含んでもよい。
【００５５】
１つの実施例において、システムレベルの変更を実行するように構成されるコンピューティング装置は、少なくとも１つのプロセッサコア及び少なくとも１つのプロセッサコアに結合されるメモリデバイスを含んでもよく、メモリデバイスは、複数の命令を記憶し、複数の命令は、少なくとも１つのプロセッサコアによって実行されると、少なくとも１つのプロセッサコアに、オペレーティングシステム及びＢＩＯＳがコンピューティング装置上で実行されている間、ＢＩＯＳに対するメッセージを送信するオペレーティングシステムによるシステム変更を開始させる。実施例において、少なくとも１つのプロセッサは、ＢＩＯＳによって、期間の終了後、オペレーティングシステムを再起動するように構成されるタイマを開始させてもよい。実施例において、少なくとも１つのプロセッサは、オペレーティングシステムを、システム変更を伴って起動させてもよい。実施例において、少なくとも１つのプロセッサは、ＢＩＯＳと通信を行うオペレーティングシステムによって、システム変更を伴う起動の成否を判断してもよい。実施例において、少なくとも１つのプロセッサは、ＢＩＯＳによって、システム変更の成否の判断に応じてシステム変更を処理してもよい。実施例において、オペレーティングシステムは、システム変更要求を受信するように構成されてもよい。実施例において、ＢＩＯＳは、システム変更が保留であることを示すフラグを設定するように構成されてもよい。実施例において、ＢＩＯＳは、フラグが設定されたか否かを判断し、フラグが設定されたことに応じて、システム変更を伴ってオペレーティングシステムを起動するように構成されてもよい。実施例において、ＢＩＯＳは、フラグが設定されたか否かを判断し、フラグが設定されなかったことに応じて、システム変更を伴わずにオペレーティングシステムを起動するように構成されてもよい。実施例において、ＢＩＯＳは、システム変更を伴う起動が成功したという判断に応じて、タイマを無効化するように構成されてもよい。 実施例において、コンピューティング装置は、期間の終了に応じてオペレーティングシステムを再起動するように構成されてもよい。実施例において、オペレーティングシステムは、システム変更を伴うオペレーティングシステムの起動に応じて、コンピューティング装置の適切な動作を確認するように構成される少なくとも１つの試験を実行するように構成されてもよい。実施例において、オペレーティングシステムは、システム変更の成否を示すＢＩＯＳにメッセージを送信するように構成されてもよい。実施例において、オペレーティングシステム及びＢＩＯＳは、コンピューティング装置上で第１の構成において実行されてもよく、ＢＩＯＳは、オペレーティングシステムが、システム変更が成功したと判断したことに応じて、第１の構成をシステム変更を含む第２の構成と入れ替えるように構成されてもよい。実施例において、オペレーティングシステム及びＢＩＯＳは、コンピューティング装置上で第１の構成において実行されてもよく、ＢＩＯＳは、オペレーティングシステムが、システム変更が失敗したと判断したことに応じて、システム変更を削除し、かつ、第１の構成を維持するように構成されて��よい。実施例において、オペレーティングシステムは、システム変更の成否判断に応じて、ユーザ、出力装置、ネットワーク及びリモートコンピューティング装置の少なくとも１つに対して、システム変更のステータスを報告するように構成されてもよい。
【００５６】
他の実施例において、方法は、オペレーティングシステム及びオペレーティングシステムと通信を行うＢＩＯＳを実行するコンピューティング装置において、オペレーティングシステムがコンピューティング装置上で実行されている間、オペレーティングシステムによって、コンピューティング装置に対するシステム変更を開始させることを含んでもよい。実施例において、方法は、システム変更を少なくとも暫定的に適用するＢＩＯＳを含んでもよい。実施例において、方法は、システム変更の成否を判断するオペレーティングシステムを含んでもよい。実施例において、方法は、システム変更の成否判断に応じてシステム変更を処理するＢＩＯＳを含んでもよい。実施例において、方法は、オペレーティングシステムにより、システム変更を伴う起動を試み、システム変更が失敗したという判断に応じて、システム変更を伴わない再起動を行うタイマを構成するＢＩＯＳを含んでもよい。実施例において、方法は、システム変更の少なくとも暫定的な適用に応じて少なくとも１つの診断を実行するオペレーティングシステムを含んでもよい。
【００５７】
他の実施例において、コンピューティング装置は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも１つのプロセッサによって上述した方法のいずれかを実行するように配置される。他の実施例において、少なくとも１つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法のいずれかを実行する複数の命令を含んでもよい。
【００５８】
他の実施例において、システム変更を実行するための方法は、オペレーティングシステム及びＢＩＯＳがコンピューティング装置上で実行されている間、コンピューティング装置に対するシステム変更要求をオペレーティングシステムから受信するＢＩＯＳを含んでもよい。方法は、要求されたシステム変更を伴うオペレーティングシステムの起動を開始させるＢＩＯＳを含んでもよい。方法は、オペレーティングシステムからシステム変更の成否の表示を受信するＢＩＯＳを含んでもよい。方法は、システム変更の成否の表示に応じたシステム変更の処理を含んでもよい。
【００５９】
実施例において、システム変更を実行するように構成されるコンピューティング装置は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも１つのプロセッサによって上述した方法を実行するように配置されてもよい。実施例において、少なくとも１つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法を実行する複数の命令を含んでもよい。
【００６０】
他の実施例において、システム変更を実行するための方法は、オペレーティングシステム及びＢＩＯＳがコンピューティング装置上で実行されている間、オペレーティングシステムの第１の構成及びシステム変更を含むオペレーティングシステムの第２の構成のいずれが実行されているかを示すメッセージをＢＩＯＳから受信するオペレーティングシステムを含んでもよい。方法は、第２の構成が実行されていることを示すＢＩＯＳからのメッセージに応じて、コンピューティング装置が適切に動作か否かを判断するために、少なくとも１つの試験の実行を含んでもよい。方法は、コンピューティング装置が第２の構成で適切に動作するか否かを示すメッセージのＢＩＯＳに対する送信を含んでもよい。
【００６１】
他の実施例において、システム変更を実行するように構成されるコンピューティング装置は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも１つのプロセッサによって上述した方法を実行するように配置されてもよい。他の実施例において、システム変更を実行するように構成される少なくとも１つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法を実行する複数の命令を含んでもよい。
【００６２】
本開示は、図面及び前述の説明において示され、かつ詳述されているが、このような図及び説明は、例であって本質を限定するものではないと考えられており、例示的な実施形態のみが示され、かつ、説明されているとともに、本開示の趣旨に属する全ての変更及び変形に対して保護を求めるものであることを理解されたい。さらに、本開示の態様は、コンピューティング装置の文脈に沿って説明されているが、様々な態様は、他の用途、例えば、システムレベルの変更又はアップデートの自動的な開始を望むあらゆる用途を有することを理解されたい。このような用途は、例えば、電子デバイス、「スマート」機器及び／又は他の製品等の、１つ以上のコンピュータ制御の特徴を有するあらゆるデバイスを含んでもよい。
【図１】
2015512535.tif 000003
【図２】
2015512535.tif 000004
【図３】
2015512535.tif 000005
【図４】
2015512535.tif 000006
【図５】
2015512535.tif 000007
【図６】
2015512535.tif 000008
【国際調査報告】
2015512535.tif 000009
2015512535.tif 000010