コンピュータシステムのネットワークインターフェイスの動作状態をコントロールする方法であって、ルートに対してネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、ルートのためのルート構造体を生成し、そして、ネットワークインターフェイスに対してインターフェイスデータ構造体のルート参照カウンタをインクリメントする処理と、アプリケーションがもはやルートを使用しないと決定すると、ルート構造体のルート満了タイマーを所定の満了時間にセットする処理と、ルート満了タイマーが満了になったとき、ルート構造体を削除すると共に、インターフェイスデータ構造体のルート参照カウンタをデクリメントする処理と、インターフェイスデータ構造体のルート参照カウンタをデクリメントすることでルート参照カウンタがゼロに等しくなったときに、コンフィギュレーションアプリケーションへ信号を送信して、そのアプリケーションに、ネットワークインターフェイスをアイドリングさせることができることを通知する処理と、を含む方法。前記ネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、前記ネットワークインターフェイスがまだアクティブでないとき、前記方法は、前記ネットワークインターフェイスをアクチベートする処理と、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、積極的なインターフェイスカウンタをインクリメントする処理とを更に含み、前記積極的なインターフェイスカウンタは、積極的にアイドリングされるように構成されたネットワークインターフェイスがいずれもアクティブでないときには、ゼロに等しくなることを特徴とする請求項1に記載の方法。前記方法は、前記ネットワークインターフェイスがアイドリングされたことを示す信号を受信する処理と、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、前記積極的なインターフェイスカウンタをデクリメントする処理と、を更に含む、請求項2に記載の方法。前記ルート構造体を削除することは、前記ルート満了タイマーが満了となった前記ルート構造体をスキャニングし、そして前記ルート満了タイマーが満了となった前記ルート構造体を削除する処理と、前記積極的なインターフェイスカウンタがゼロに等しいとき、前記ルート構造体のスキャニングは、ネットワークプロトコルスタックメカニズムを使用する処理を更に含み、前記積極的なインターフェイスカウンタがゼロより大きいとき、前記ルート構造体のスキャニングは、ルートドメインのドレイン機能を含むことを特徴とする、請求項3に記載の方法。前記方法は、前記ネットワークプロトコルスタックメカニズムを使用して満了となったルートをスキャンすべきとき前記ルートドメインからのドレイン機能のポインタをNULLへ調整する処理と、前記ドレイン機能を使用して満了となったルートをスキャンすべきときにドレイン機能を指示するように前記ルートドメインからのドレイン機能のポインタを調整する処理と、を更に含む、請求項4に記載の方法。前記ルート構造体のルート満了タイマーを所定の満了時間にセットすることは、前記ルート構造体により使用されるネットワークインターフェイスが積極的にアイドリングされるように構成されたかどうか決定し、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、前記ルート満了タイマーを短い満了時間にセットし、そして前記ネットワークインターフェイスが積極的にアイドリングされるように構成されないときには、前記ルート満了タイマーを通常の満了時間にセットし、前記短い満了時間は、通常の満了時間より短いことを特徴とする、請求項1に記載の方法。前記ネットワークインターフェイスをアイドリングさせることは、ネットワークインターフェイスをパワーダウンし、ネットワークインターフェイスを低電力モードにスイッチし、又はネットワークインターフェイスを通常/アクティブな電力レベルで使用するが低プライオリティ又はメンテナンス動作しか遂行しない、のうちの1つを含む、請求項1に記載の方法。コンピュータシステムにおけるネットワークインターフェイスの動作状態を管理するための方法を遂行させるインストラクションを保持する非一時的コンピュータ読み取り可能な記憶媒体であって、コンピュータシステムに、ルートに対してネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、ルートのためのルート構造体を生成し、及び、ネットワークインターフェイスに対してインターフェイスデータ構造体のルート参照カウンタをインクリメントする処理と、アプリケーションがもはやルートを使用しないと決定すると、ルート構造体のルート満了タイマーを所定の満了時間にセットする処理と、ルート満了タイマーが満了になったとき、ルート構造体を削除すると共に、インターフェイスデータ構造体のルート参照カウンタをデクリメントする処理と、インターフェイスデータ構造体のルート参照カウンタをデクリメントすることでルート参照カウンタがゼロに等しくなったときに、コンフィギュレーションアプリケーションへ信号を送信して、そのアプリケーションに、ネットワークインターフェイスをアイドリングさせることができることを通知する処理と、を実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。前記ネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、前記ネットワークインターフェイスがまだアクティブでないとき、更に、前記ネットワークインターフェイスをアクチベートする処理と、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、積極的なインターフェイスカウンタをインクリメントする処理とを更に実行させ、前記積極的なインターフェイスカウンタは、積極的にアイドリングされるように構成されたネットワークインターフェイスがいずれもアクティブでないときには、ゼロに等しくなることを特徴とする、請求項8に記載のコンピュータ読み取り可能な記憶媒体。前記ネットワークインターフェイスがアイドリングされたことを示す信号を受信する処理と、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、前記積極的なインターフェイスカウンタをデクリメントする処理と、ことを更に実行させる、請求項2に記載のコンピュータ読み取り可能な記憶媒体。前記ルート構造体を削除することは、更に、前記ルート満了タイマーが満了となった前記ルート構造体をスキャニングし、そして前記ルート満了タイマーが満了となった前記ルート構造体を削除する処理と、前記積極的なインターフェイスカウンタがゼロに等しいとき、前記ルート構造体のスキャニングは、ネットワークプロトコルスタックメカニズムを使用する処理とを含み、前記積極的なインターフェイスカウンタがゼロより大きいとき、前記ルート構造体のスキャニングは、ルートドメインのドレイン機能を含むことを特徴とする、請求項3に記載のコンピュータ読み取り可能な記憶媒体。前記ネットワークプロトコルスタックメカニズムを使用して満了となったルートをスキャンすべきとき前記ルートドメインからのドレイン機能のポインタをNULLへ調整する処理と、前記ドレイン機能を使用して満了となったルートをスキャンすべきときにドレイン機能を指示するように前記ルートドメインからのドレイン機能のポインタを調整する処理と、を更に実行せる、請求項4に記載のコンピュータ読み取り可能な記憶媒体。前記ルート構造体のルート満了タイマーを所定の満了時間にセットすることは、前記ルート構造体により使用されるネットワークインターフェイスが積極的にアイドリングされるように構成されたかどうか決定する処理と、前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、前記ルート満了タイマーを短い満了時間にセットする処理とを、そして前記ネットワークインターフェイスが積極的にアイドリングされるように構成されないときには、前記ルート満了タイマーを通常の満了時間にセットする処理とを含み、前記短い満了時間は、通常の満了時間より短いことを特徴とする、請求項1に記載のコンピュータ読み取り可能な記憶媒体。前記ネットワークインターフェイスをアイドリングさせることは、ネットワークインターフェイスをパワーダウンし、ネットワークインターフェイスを低電力モードにスイッチし、又はネットワークインターフェイスを通常の/アクティブな電力レベルで使用するが低プライオリティ又はメンテナンス動作しか遂行しない、のうちの1つを含む、請求項1に記載のコンピュータ読み取り可能な記憶媒体。ネットワークインターフェイスの動作状態を管理するための装置であって、ネットワークインターフェイスと、前記ネットワークインターフェイスに結合された処理サブシステムと、を備え、前記処理サブシステムは、ルートに対してネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、ルートのためのルート構造体を生成し、そしてネットワークインターフェイスに対してインターフェイスデータ構造体のルート参照カウンタをインクリメントし、アプリケーションがもはやルートを使用しないと決定すると、ルート構造体のルート満了タイマーを所定の満了時間にセットし、ルート満了タイマーが満了になったとき、ルート構造体を削除すると共に、インターフェイスデータ構造体のルート参照カウンタをデクリメントし、そしてインターフェイスデータ構造体のルート参照カウンタをデクリメントすることでルート参照カウンタがゼロに等しくなったときに、コンフィギュレーションアプリケーションへ信号を送信して、そのアプリケーションに、ネットワークインターフェイスをアイドリングさせることができることを通知する、ことを特徴とする前記装置。前記ネットワークインターフェイスを使用する要求をアプリケーションから受け取るのに応答して、前記ネットワークインターフェイスがまだアクティブでないとき、前記処理サブシステムは、前記ネットワークインターフェイスをアクチベートし、及び前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときには、積極的なインターフェイスカウンタをインクリメントし、前記積極的なインターフェイスカウンタは、積極的にアイドリングされるように構成されたネットワークインターフェイスがいずれもアクティブでないときには、ゼロに等しくなることを特徴とする、請求項15に記載の装置。前記ネットワークインターフェイスが積極的にアイドリングされるように構成されたときに、前記処理サブシステムは、前記ネットワークインターフェイスがアイドリングされたことを示す信号を受信すると、前記積極的なインターフェイスカウンタをデクリメントする、請求項16に記載の装置。前記処理サブシステムは、前記ルート構造体を削除するときに、前記ルート満了タイマーが満了となった前記ルート構造体をスキャニングし、そして前記ルート満了タイマーが満了となった前記ルート構造体を削除し、前記積極的なインターフェイスカウンタがゼロに等しいとき、前記ルート構造体をスキャニングするときに、前記処理サブシステムは、ネットワークプロトコルスタックメカニズムを使用し、前記積極的なインターフェイスカウンタがゼロより大きいとき、前記ルート構造体のスキャニングするときに、前記処理サブシステムは、ルートドメインのドレイン機能を使用する、請求項17に記載の装置。前記処理サブシステムは、前記ネットワークプロトコルスタックメカニズムを使用して満了となったルートをスキャンすべきとき前記ルートドメインからのドレイン機能のポインタをNULLへ調整し、前記ドレイン機能を使用して満了となったルートをスキャンすべきときにドレイン機能を指示するように前記ルートドメインからのドレイン機能のポインタを調整する、請求項18に記載の装置。前記処理サブシステムは、前記ルート構造体のルート満了タイマーを所定の満了時間にセットするときに、前記ルート構造体により使用されるネットワークインターフェイスが構成されたかどうか決定する、請求項15に記載の装置。前記処理サブシステムは、前記ネットワークインターフェイスをアイドリングさせるときに、ネットワークインターフェイスをパワーダウンし、ネットワークインターフェイスを低電力モードにスイッチし、又はネットワークインターフェイスを通常の/アクティブな電力レベルで使用するが低プライオリティ又はメンテナンス動作しか遂行しない、のうちの1つを行う、請求項15に記載の装置。インターフェイスマネージャータスクは、インターフェイスをパワーダウンすべきかどうかの決定をなすために物理的レイヤにおいてパケットが転送されるレートを使用するので、インターフェイスマネージャータスクは、アプリケーションによりまだ使用されているインターフェイスを誤ってパワーダウンすることがある。特に、アプリケーションがまだアクティブである例えば、ユーザがまだ退出していないが、所定の時間中インターフェイスを使用してパケットを単に転送していない場合に、インターフェイスマネージャータスクは、インターフェイスをパワーダウンすることがある。アプリケーションがその後にパケットの転送を再開すると、アプリケーションは、インターフェイスがダウンしていることを発見し、そしてユーザにエラーを信号することができる又はインターフェイスを再アクチベートするよう強制されてもよい。これはユーザを苛立たせる。例えば、2人以上のユーザが、装置間でゲームデータを転送するためにネットワーク接続に依存するポータブル電子装置例えば、ラップトップ又はスマートホンにおいてゲームアプリケーションを使用していると仮定する。ゲームデータの転送中に所定時間より長い休止が生じた場合には、一方の装置のインターフェイスマネージャータスクが、それに対応するインターフェイスをパワーダウンさもなければ、そのインターフェイスの動作モードを調整することがあり、これは、インターフェイスを通してゲームデータを転送する電子装置の能力を混乱させ、潜在的にゲームの中断を招くことがある。本発明は、ネットワークインターフェイスの動作状態をコントロールするシステムを提供する。動作中、ルートのためにネットワークインターフェイスを使用するというアプリケーションからの要求を受け取るのに応答して、システムは、ルートのためのルート構造体を生成し、そしてネットワークインターフェイスのためのインターフェイスデータ構造体におけるルート参照カウンタをインクリメントする。その後、アプリケーションがルートをもはや使用しないと決定すると、システムは、ルート構造体におけるルート満了タイマーを所定の満了時間にセットする。ルート満了タイマーが満了となると、システムは、ルート構造体を削除し、そしてインターフェイスデータ構造体におけるルート参照カウンタをデクリメントする。インターフェイスデータ構造体におけるルート参照カウンタのデクリメントでルート参照カウンタがゼロに等しくされたときに、システムは、コンフィギュレーションアプリケーションに信号を送信して、ネットワークインターフェイスをアイドリングさせることができることをアプリケーションに通知する。ある実施形態では、ネットワークインターフェイスを使用するというアプリケーションからの要求を受け取るのに応答して、ネットワークインターフェイスがまだアクティブでない場合に、システムは、ネットワークインターフェイスをアクチベートする。ネットワークインターフェイスが積極的にアイドル状態になるよう構成されたときには、ネットワークインターフェイスをアクチベートする際に、システムは、積極的なインターフェイスカウンタもインクリメントする。これらの実施形態では、積極的にアイドル状態になるよう構成されたネットワークインターフェイスがアクティブでないときに、積極的なインターフェイスカウンタがゼロに等しくなる。ある実施形態では、積極的にアイドル状態になるよう構成されたネットワークインターフェイスがアイドル状態になったことを指示する信号を受信した際に、システムは、積極的なインターフェイスカウンタをデクリメントする。ある実施形態では、ルート構造体を削除するとき、システムは、ルート満了タイマーが満了であるルート構造体をスキャンし、及びルート満了タイマーが満了であるルート構造体を削除する。これら実施形態では、積極的なインターフェイスカウンタがゼロに等しくなったときに、システムは、ネットワークプロトコルスタックメカニズムを使用してルート構造体をスキャンする。しかしながら、積極的なインターフェイスカウンタがゼロより大きくなると、システムは、ルートドメインにおけるドレイン機能を使用してルート構造体をスキャンする。ある実施形態では、システムは、ネットワークプロトコルスタックメカニズムを使用して満了となったルートをスキャンすべきときルートドメインからのドレイン機能のポインタをNULLへ調整する。又、これらの実施形態では、システムは、ドレイン機能を使用して満了となったルートをスキャンすべきときにドレイン機能を指示するようにルートドメインからのドレイン機能のポインタを調整する。ある実施形態では、ルート構造体におけるルート満了タイマーを所定の満了時間にセットするときに、システムは、ルート構造体により使用されるネットワークインターフェイスが積極的にアイドル状態となるように構成されるかどうか決定する。もしそうであれば、システムは、ルート満了タイマーを短い満了時間にセットする。さもなければ、システムは、ルート満了タイマーを通常の満了時間にセットする。これらの実施形態では、短い満了時間は、通常の満了時間より短い。ある実施形態では、ネットワークインターフェイスをアイドリングさせるときに、システムは、1ネットワークインターフェイスをパワーダウンし、2ネットワークインターフェイスを低電力モードにスイッチし、又は3ネットワークインターフェイスを通常/アクティブ電力レベルで使用するが低プライオリティ動作又はメンテナンス動作のみの遂行に使用する、のうちの1つを行う。添付図面において、同じ要素は、同じ参照番号で示す。以下の説明は、当業者がここに述べる実施形態を具現化し利用できるようにするためのもので、特定の用途及びその要件について表現されている。又、当業者であれば、ここに述べる実施形態に対して種々の変更が容易に明らかであり、そしてここに定義する一般的な原理は、ここに述べる実施形態の精神及び範囲から逸脱せずに、他の実施形態及び用途にも適用することができる。従って、ここに述べる実施形態は、図示された実施形態に限定されず、ここに開示する原理及び特徴と一貫した最も広い範囲に従うものとする。ここに詳細に述べるデータ構造及びコードは、コンピュータ読み取り可能な記憶媒体に記憶することができる。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムにより使用するためのデータ構造及びコードを記憶できる装置又は媒体又は装置及び/又は媒体の組み合わせを含む。例えば、コンピュータ読み取り可能な記憶媒体は、フラッシュメモリ、ランダムアクセスメモリRAM、SRAM、DRAM、RDRAM、DDR/DDR2/DDR3SDRAM、等、磁気又は光学記憶媒体例えば、ディスクドライブ、磁気テープ、CD、DVD、或いはデータ構造又はコードを記憶できる他の媒体を含めて、揮発性メモリ又は不揮発性メモリを含むことができる。ここに述べる実施形態では、コンピュータ読み取り可能な記憶媒体は、送信信号のような非法定のコンピュータ読み取り可能な記憶媒体を含まないことに注意されたい。以下に述べる方法及びプロセスは、コンピュータ読み取り可能な記憶媒体に記憶されるプログラムコードとして実施することができる。コンピュータシステム例えば、図1のコンピュータシステム100が、コンピュータ読み取り可能な記憶媒体に記憶されたプログラムコードを読み取って実行するときには、コンピュータシステムは、コンピュータ読み取り可能な記憶媒体に記憶されたプログラムコードで方法及びプロセスを遂行する。以下の説明で述べる方法及びプロセスは、ハードウェアモジュールに含ませることができる。例えば、ハードウェアモジュールは、これに限定されないが、特定用途向け集積回路ASICチップ、フィールドプログラマブルゲートアレイFPGA、及び他のプログラマブルロジック装置を含むことができる。ハードウェアモジュールがアクチベートされると、ハードウェアモジュールは、そのハードウェアモジュール内に含まれた方法及びプロセスを遂行する。ある実施形態では、ハードウェアモジュールは、方法及びプロセスを遂行するように例えば、インストラクションを実行することにより構成される1つ以上の汎用回路を含む。概略ここに述べる実施形態は、ネットワークサブシステムにおけるインターフェイスのための積極的アイドリングを促進する。実施形態に基づき、アイドリングとは、インターフェイスが完全にパワーダウンされるか、低電力しかし、少なくとも部分的に動作するモードへスイッチされるか、或いは通常に使用されるが、低プライオリティ又はインターフェイスメンテナンス動作を遂行するだけことを意味する。この説明で使用する積極的という語は、システムリソースの使用最適化を促進する、インターフェイスのためのより応答性の高い又はインテリジェントなアイドリングを表わす。ここに述べる実施形態では、所与のインターフェイスは、積極的にアイドリングされるように構成することができる。そのようなインターフェイスでは、オペレーティングシステムは、インターフェイスを参照するルートを監視して、ルートがもはや使用されないとき、ひいては、満了となって削除されたときを決定する。インターフェイスを参照する最後のルートが削除されると、オペレーティングシステムは、インターフェイスがアイドリングの候補であることをインターフェイスマネージャータスクに通知する例えば、コンフィギュレーションエージェントに通知し、これが、次いで、インターフェイスマネージャータスクに通知する。インターフェイスマネージャータスクは、次いで、インターフェイスをアイドリングさせる。ある実施形態では、インターフェイスがアイドリングの候補であるという通知を受け取ると、インターフェイスマネージャータスクは、オペレーティングシステムにより通知が送られて以来、インターフェイスを参照するルートが確立されていないことを保証するために、オペレーティングシステムとでチェックを行う。インターフェイスを参照する新たなルートが確立された場合には、インターフェイスマネージャータスクは、その通知を無視し、そしてインターフェイスのオペレーティングモードを不変のままにする。ここに述べる実施形態では、オペレーティングシステムは、カーネルプロトコルドメインに関連したタスクを周期的に遂行するためのメカニズムを含む。これら実施形態では、オペレーティングシステムは、オペレーティングシステムの異なるプロトコル例えば、ルーティング、IPv4、等に各々関連したカーネルプロトコルドメインのリストを含む。カーネルプロトコルドメインの各々は、対応するドメインに対して1つ以上のタスクを遂行するドメイン特有機能のセットに関連付けられる。オペレーティングシステムは、カーネルプロトコルドメインのリストを通して周期的にサイクルして、それに関連したドメイン特有機能を実行する。又、ここに述べる実施形態は、ドメイン特有機能の1つがドメイン機能であるところのルートドメインも含む。実行時に、ドメイン機能は、オペレーティングシステムにおける満了となったルートを削除する。ここに述べる実施形態では、各ルートは、ルートがもはやアプリケーションにより使用されないとき例えば、アプリケーションが、ルートを参照するソケットを閉じるときオペレーティングシステムによりセットされる満了タイマーを含む。タイマーが満了となると、ルートが満了となり、1オペレーティングシステムにおける対応プロトコルメカニズム、又は2ルートドメインに対するドレイン機能、のいずれかにより削除することができる。これらの実施形態では、ルートにより参照されるインターフェイスが積極的にアイドリングされるように構成される場合に、タイマーは、積極的な短い満了時間にセットされる。さもなければ、ルートにより参照されるインターフェイスが積極的にアイドリングされるように構成されない場合には、タイマーは、大きさの程度が典型的に短い満了時間より長いデフォールト満了時間にセットされる。ある実施形態では、オペレーティングシステムは、積極的にアイドリングされるように構成されたアクティブなインターフェイスの数を追跡するためにオペレーティングシステムが使用する積極的なインターフェイスカウンタを維持する。積極的にアイドリングされるように構成された各インターフェイスがアクチベートされるときは、オペレーティングシステムは、積極的なインターフェイスカウンタをインクリメントする。他方、積極的にアイドリングされるように構成された各インターフェイスがアイドリングされるときは、オペレーティングシステムは、積極的なインターフェイスカウンタをデクリメントする。積極的なインターフェイスカウンタがゼロに等しくなると即ち、接触的なアイドリングで構成されるアクティブなインターフェイスがないと、オペレーティングシステムは、ルートドメインにおけるドレイン機能のポインタをNULLにセットし、これは、ドレイン機能がカーネルプロトコルドメインを通してサイクルするたびにオペレーティングシステムにより実行されるのを防止する。しかしながら、積極的なインターフェイスカウンタが非ゼロであるときに、オペレーティングシステムは、ルートドメインにおけるドレイン機能のポインタを、ドレイン機能のポインタにセットする。コンピュータシステム図1は、ここに述べる実施形態によるコンピュータシステム100のブロック図である。このコンピュータシステム100は、処理サブシステム102、メモリサブシステム104及びネットワークサブシステム106を備えている。処理サブシステム102は、計算動作を遂行するように構成された1つ以上の装置を備えている。例えば、処理サブシステム102は、これに限定されないが、1つ以上のマイクロプロセッサ、ASIC、マイクロコントローラ、又はプログラム可能なロジック装置を含む。メモリサブシステム104は、処理サブシステム102及びネットワークサブシステム106のためのデータ及び/又はインストラクションを記憶するための1つ以上の装置を含む。例えば、メモリサブシステム104は、DRAM、フラッシュメモリ、及び/又は他の形式のメモリを含む。更に、メモリサブシステム104は、メモリへのアクセスをコントロールするためのメカニズムを含む。ある実施形態では、メモリサブシステム104は、コンピュータシステム100のメモリに結合された1つ以上のキャッシュの配列体を含むメモリハイアラーキーを備えている。これら実施形態の幾つかにおいて、キャッシュの1つ以上が処理サブシステム102に配置される。ある実施形態では、メモリサブシステム104は、1つ以上の大容量の大量記憶装置図示せずに結合される。例えば、メモリサブシステム104は、磁気又は光学ドライブ、ソリッドステートドライブ、又は別の形式の大量記憶装置に結合される。これら実施形態では、メモリサブシステム104は、コンピュータシステム100により、頻繁に使用するデータのための高速アクセス記憶装置として使用され、一方、大量記憶装置は、低い頻度で使用されるデータを記憶するのに使用される。ネットワークサブシステム106は、ワイヤード及び/又はワイヤレスネットワークに結合されて通信を行うように即ち、ネットワーク動作を行うように構成された1つ以上の装置を備えている。例えば、ネットワークサブシステム106は、これに限定されないが、BluetoothTMネットワークシステム、セルラーネットワークシステム例えば、3G/4Gネットワーク、ユニバーサルシリアルバスUSBネットワークシステム、インスティテュートフォアエレクトリカルアンドエレクトロニックエンジニアズIEEE802.11即ち、802.11ワイヤレスネットワークに述べられた規格に基づくネットワークシステム、イーサネットネットワークサブシステム、或いはワイヤード又はワイヤレスパーソナルエリアネットワーキングPANシステム例えば、赤外線データ関連性IrDA、ウルトラワイドバンドUWB、Z-Wave、又はIEEE802.15に述べた規格に基づくネットワークを含む。ネットワークサブシステム106は、コントローラ、ワイヤレスネットワーク接続のためのラジオ/アンテナ、ハードワイヤード電気的接続のためのソケット/プラグ、及び/又はワイヤード及び/又はワイヤレスネットワークに接続し、それを経て通信し、そしてそれを経てデータ及び事象を取り扱うのに使用される他の装置を含む。これら実施形態の幾つかにおいて、ネットワークサブシステム106は、他の装置とのアドホックネットワーク接続例えば、アドホックワイヤレスPANを形成するための1つ以上のメカニズムを含む。以下の説明において、各ネットワーク接続の物理的レイヤにおいてネットワークに接続し、それを経て通信し、そしてそれを経てデータ及び事象を取り扱うのに使用されるメカニズムのサブセットを、集合的に、それに対応するネットワーク接続に対するインターフェイスと称する。ある実施形態では、各インターフェイスは、アプリケーション例えば、図5のインターフェイスマネージャータスク504でインターフェイスの動作モードをコントロールできるようにするための1つ以上のメカニズムを含む。コンピュータシステム100内では、処理サブシステム102、メモリサブシステム104、及びネットワークサブシステム106がバス110を使用して一緒に結合される。バス110は、互いにコマンド及びデータを通信するためにサブシステムが使用する電気的接続である。明瞭化のために1つのバス110しか示されていないが、異なる実施形態では、サブシステム間に異なる数又は構成の電気的接続を含むことができる。ある実施形態では、バス110は、パケットバスであり、そしてサブシステム間の通信は、バス110を経てコマンド及びデータパケットを所定のフォーマットで送信することを含む。別の実施形態では、バス110は、1つ以上の専用の信号ラインを含み、そしてサブシステム間の通信は、1つ以上の専用の信号ラインを経てサブシステムにシグナリングすることを含む。図1には、個別のサブシステムとして示されているが、ある実施形態では、所与のサブシステムの幾つか又は全部を、コンピュータシステム100における他のサブシステムの1つ以上に統合することができる。別の実施形態は、このように構成できるが、明瞭化のために、サブシステムを別々に説明する。コンピュータシステム100は、多数の異なる形式の電子装置へ合体することができる。一般的に、これらの電子装置は、アイドリングさせることのできるネットワークインターフェイスを伴う装置を含む。例えば、コンピュータシステム100は、デスクトップコンピュータ、ラップトップコンピュータ、サーバー、メディアプレーヤ、機器、サブノートブック/ネットブック、タブレットコンピュータ、セルラーホン、テスト装置の断片、ネットワーク機器、セットトップボックス、パーソナルデジタルアシスタントPDA、スマートホン、玩具、コントローラ、又は別の装置の一部分である。特定のコンポーネントを使用してコンピュータシステム100を説明するが、別の実施形態では、異なるコンポーネント及び/又はサブシステムがコンピュータ100に存在してもよい。例えば、コンピュータシステム100は、1つ以上の付加的な処理サブシステム102、メモリサブシステム104及び/又はネットワークサブシステム106を含んでもよい。或いは又、サブシステムの1つ以上がコンピュータシステム100に存在しなくてもよい。ある実施形態では、コンピュータシステム100は、図1に示されていない1つ以上の付加的なサブシステムを含んでもよい。例えば、コンピュータシステム100は、これに限定されないが、ディスプレイに情報を表示するためのディスプレイサブシステム、データ収集サブシステム、オーディオサブシステム、アラームサブシステム、メディア処理サブシステム、及び/又は入力/出力I/Oサブシステムを含む。オペレーティングシステム図2は、ここに述べる実施形態に従って処理サブシステム102により実行されるオペレーティングシステム200を示す。一般的に、オペレーティングシステム200は、コンピュータシステム100のシステムハードウェア例えば、サブシステム102-106と、処理サブシステム102により実行されるアプリケーション、例えば、アプリケーション202-206例えば、各々、e-メールアプリケーション、ウェブブラウザ及びゲームアプリケーションとの間の仲介手段として働く。例えば、オペレーティングシステム200は、これに限定されないが、カリフォルニア州クパチーノのアップル社からのOSXオペレーティングシステム、コロラド州ボルダーのFressBSDファウンデーションからのFreeBSDオペレーティングシステム、又は別のオペレーティングシステムである。オペレーティングシステム及びその一般的な機能は、良く知られており、ここでは詳細に説明しない。以下の説明において、オペレーティングシステム200を参照するためにカーネルを使用して実施形態を説明する。カーネルは、オペレーティングシステム200のコア部を含み、そしてアプリケーション202-206がコンピュータシステム100のシステムハードウェアにアクセスし及び/又はそれをコントロールしてそれらの機能を遂行するために使用できるシステムハードウェアの低レベル抽象化レイヤをなす。ネットワークサブシステム106の適当なインターフェイスを使用してコンピュータシステム100のアプリケーションとのパケットの転送を管理するために、オペレーティングシステム200は、多数の論理的レイヤを各々含む1つ以上のネットワークプロトコルスタック図示せずを維持する。例えば、オペレーティングシステムは、リンク、インターネット、トランスポート、及びアプリケーションレイヤを含むインターネットプロトコルスタックを維持することができる。別の例として、オペレーティングシステムは、アプリケーション、プレゼンテーション、セッション、トランスポート、ネットワーク、データリンク、及び物理的レイヤを含むOSIモデルに基づいてプロトコルスタックを維持することができる。プロトコルスタックの各レイヤにおいて、オペレーティングシステムは、レイヤに関連した機能を遂行するためのコントロールメカニズム及びデータ構造を含む。プロトコルスタックにおける各レイヤに関連した機能は、この分野で知られており、従って、ここでは詳細に説明しない。オペレーティングシステムにより維持されるネットワーク接続データここに述べる実施形態では、オペレーティングシステム200は、ネットワークサブシステム106におけるネットワーク接続の動作を監視し、構成し及び/又はコントロールするための1つ以上のデータ構造体含む。例えば、ある実施形態では、オペレーティングシステム200は、ネットワークサブシステム106におけるネットワークインターフェイス例えば、イーサネットインターフェイス、3G/4Gセルラーインターフェイス、BluetoothTMインターフェイス、等のためのレコードを保持するのに使用されるインターフェイスデータ構造体インターフェイス構造と交換可能を含む。これら実施形態では、インターフェイス構造は、インターフェイスの名前、インターフェイスのアドレス例えば、メディアアクセスコントロールMACアドレス、インターフェイスフラグ、タイマー、オペレーティングモードデータ、コンフィギュレーションデータ、及び/又はインターフェイスに関する他の情報のような情報及びデータを含む。インターフェイス構造に典型的に存在する情報及びデータは、この分野で知られており、ここでは、詳細に説明しない。オペレーティングシステム200は、更に、オペレーティングシステム200が所与の行先にパケットを送信するための適当なネットワークインターフェイスを選択できるようにするルート情報のレコードを保持するのに使用されるルートデータ構造体ルート構造と交換可能のセットも含む。ここに述べる実施形態では、特定のサブネット又は行先へのルートがアプリケーションにより要求されて分析されたときに、オペレーティングシステム200は、ルートに関する情報を伴うルート構造を生成する。或いは又、既存のルート構造を伴うサブネット又は行先のためのテンプレートルートをコピーして、クローンルートを生成することもでき、オペレーティングシステム200は、クローンルートに関する情報を伴うルート構造を生成することができる。次いで、ルート構造における情報を使用し、ネットワークサブシステム106における関連インターフェイスを使用してパケットをルーティングすることができる。ここに述べる実施形態では、ルート構造は、ルートのための行先アドレス、ゲートウェイアドレス、フラグ、アプリケーション参照カウント即ち、ルートを使用するアプリケーションのカウント、使用カウント、インターフェイスID、及びルートに関する他の情報、等の情報を含むことができる。ルート構造に典型的に存在する情報及びデータは、この分野で知られており、ここでは、詳細に説明しない。ここに述べる実施形態では、2つ以上のアプリケーションが、所与のルート構造で述べたルートを使用して、パケットを関連行先へ送信することができる。これらのケースでは、ルートを使用する複数のアプリケーションがあることを指示するために、ルート構造におけるアプリケーション参照カウントをインクリメントすることができる。ここに述べる実施形態では、オペレーティングシステム200は、複数の関連インターフェイス構造を含む1つ以上のインターフェイスをネットワークサブシステム106に含んでいる。例えば、ネットワークサブシステム106におけるWiFiネットワークインターフェイスは、複数のピアツーピアネットワーク接続を取り扱うために使用される複数のバーチャルインターフェイスをなすことができる。明瞭化のため単一インターフェイス構造を使用する実施形態を説明するが、複数のインターフェイス構造を伴う実施形態は、同様に機能する。例えば、ある実施形態は、複数のインターフェイス構造を伴うBluetoothインターフェイスを含む。以下に述べるメカニズムと同様のメカニズムを使用して、これらの実施形態は、インターフェイス構造がルートにより参照されないときに、インターフェイスをアイドリングさせることができる。ここに述べる実施形態におけるインターフェイスデータ構造体は、既存のインターフェイスデータ構造体とは異なる。というのは、ここに述べる実施形態におけるインターフェイスデータ構造体は、1積極的なアイドリングフラグ、及び2ルート参照カウンタを含むからである。以下に詳細に述べるように、積極的なアイドリングフラグは、どのインターフェイスを積極的にアイドリングすべきか決定するためにオペレーティングシステム200により使用され、そしてルート参照カウンタは、インターフェイスを参照するルート即ち、対応するルート構造内のインターフェイスIDをチェックすることによりインターフェイスを使用する/参照すると決定されるルートの数を追跡するのに使用される。インターフェイスのアイドリングを述べるためにこの説明で使用される積極的とは、コンピュータシステム100及びネットワークサブシステム106内の実際の動作条件に応答するインターフェイスアイドリングを指示することに注意されたい。より応答性の高いアイドリングは、コンピュータシステム100がインターフェイスの電力消費を最適化し、そしてアプリケーションからのデータ転送の要求に対するインターフェイスの応答性に対して電力消費をバランスさせることができるようにする。図3は、ここに述べる実施形態によるオペレーティングシステム200における規範的なインターフェイスIF構造306-310及びルート構造312-316を示すブロック図である。図3において明らかなように、ネットワークサブシステム106は、インターフェイス300-304を備え、これらは、例えば、各々、BluetoothTMインターフェイス、イーサネットインターフェイス、及び802.11ワイヤレスネットワークインターフェイスである。上述したように、アプリケーション202-206は、例えば、各々、e-メールアプリケーション、ウェブブラウザ、及びゲームアプリケーションであり、各々、オペレーティングシステム200におけるルート及びネットワークサブシステム106における対応インターフェイス300-304を使用して、データパケットを他の装置へ転送する。ここに示す実施形態では、オペレーティングシステム200は、インターフェイス302及び304を経て対応する行先ホストへパケットを転送できるようにするためのルートを確立している。オペレーティングシステム200に利用できるものとして図3に示されたルートは、例示の目的で簡単化されたものであり、別の実施形態では、付加的な及び/又は異なる形式のルートを含むことに注意されたい。例えば、インターフェイス300に対してデフォールトルートを確立することができる。更に、既に確立されたルートが使用され、それらのルートを確立するための技術特に、各ルートに関連したネットワークプロトコルに基づくは、この分野で知られており、従って、ここでは詳細に説明しない。インターフェイス構造306-310は、各々、その基礎的なインターフェイス300-304のアイデンティティ、コンフィギュレーション、能力及び要件をオペレーティングシステム200が決定できるようにする情報及びデータを含む。ルート構造312-316は、オペレーティングシステム200がそれらルートを経てインターフェイス300-304の中からその関連インターフェイスへパケットをルーティングできるようにする情報及びデータを含む。例えば、ルートの行先、ルートを参照するオープンソケット/アプリケーションの数、並びにルートの形式及びコンフィギュレーションを識別する情報と共に、ルート構造312は、インターフェイス構造308のポインタも含む。上述したように、インターフェイス構造308は、関連ルートを使用するときにオペレーティングシステム200をインターフェイス302に向けさせるインターフェイス名及び/又はMACアドレスを含む。ここに例示する実施形態では、アプリケーション202及び204は、同じインターフェイス302を参照するルートを使用する。例えば、インターフェイス302がイーサネットインターフェイスであると仮定すれば、両アプリケーションが例えば、異なる行先ホストと共に個別のルートを使用して、オペレーティングシステム200がそれらアプリケーションからのパケットをイーサネットインターフェイスへ転送し、ルートの行先へ送信できるようにする。このケースでは、ルート構造312及び314によって指し示されるインターフェイス構造308内のルート参照カウンタは、2つのルートがインターフェイス302を参照することを指示できる。対照的に、インターフェイス304に関連しそしてルート構造316のみにより指し示されるインターフェイス構造310内のルート参照カウンタは、1つのルートがインターフェイス304を参照することを指示できる。ある実施形態では、コンピュータシステム100は、各インターフェイスのための装置ドライバを備えている。実行時に、装置ドライバは、インターフェイスを、積極的にアイドリングされるように構成する即ち、オペレーティングシステム200内の対応するインターフェイス構造において積極的なアイドリングフラグをセットする。或いは又、オペレーティングシステム200は、環境変数、ファイル、又はオペレーティングシステムスイッチを使用して、インターフェイスを、積極的にアイドリングされるよう構成する。ルート及びインターフェイス構造は、それら構造内の情報のアクセス及び読み取りを行えるようにオペレーティングシステム200内に多数の仕方で配置されることに注意されたい。例えば、ある実施形態では、ルート及び/又はインターフェイス構造は、オペレーティングシステム200内のリンクされたリストへと編成される。オペレーティングシステム200におけるそれら構造の配置は、この分野で一般的に知られており、従って、ここでは詳細に述べない。満了になるルートここに述べる実施形態では、幾つかのルートは、オペレーティングシステム200によって一時的に維持されるだけである。ルート構造、ひいては、オペレーティングシステム200に対するルーティングテーブルの対応エントリーは、ルートが少なくとも1つのアプリケーションによりもはや使用されなくなった後の所定時間中だけオペレーティングシステム200によりそれらルートとして使用できるように保持される。所定時間が満了となると、ルート構造が削除され、オペレーティングシステム200により維持されるルーティングテーブルからルートを除去することができる。より詳細には、ここに述べる実施形態では、オペレーティングシステム200は、アプリケーションがソケットをオープンし、アプリケーションがデータパケットをネットワークプロトコルスタックの下位レイヤへ送信して所与の行先ホストへ転送できるようにするメカニズムをなす。アプリケーションがソケットの使用を終了するか又はネットワーク接続を失うと、アプリケーションは、ソケットをクローズする。或いは又、アプリケーションがクラッシュした場合には、オペレーティングシステム200は、ソケットをクローズする。ソケットをクローズすると、オペレーティングシステム200は、その関連ルートに対するルート構造のアプリケーション参照カウントをデクリメントさせる。アプリケーションが、ルートを使用する最後のアプリケーションである場合には、デクリメント動作で、ルート構造のアプリケーション参照カウントがゼロに落ちる。ルート構造のアプリケーション参照カウントがゼロに落ちると、オペレーティングシステム200は、ルート構造における満了タイマーを所定値へ更新し、そして満了タイマーを使用してルート構造に対するカウントダウンをスタートする。満了タイマーがゼロに等しくなると、ルート構造は、オペレーティングシステム200による削除に使用できるようになる。ルートの実際の削除は、削除メカニズムが満了となったルート構造をその後に削除するまで行われないことに注意されたい。以下に述べるように、ここに述べる実施形態は、満了となったルートを削除するための多数の異なる削除メカニズムを含む。例えば、オペレーティングシステム200は、ネットワークプロトコルスタックにデフォールトルート満了メカニズムを含むことができる。更に、オペレーティングシステム200は、積極的なアイドリングのために少なくとも1つのアクティブなインターフェイスが構成される限りオペレーティングシステム200により実行されるルートプロトコルドメイン406に関連したドレイン機能412図4を参照を含むことができる。これらの実施形態では、満了タイマーがセットされる所定値は、ルートが参照するインターフェイス即ち、ルート構造で識別されるインターフェイスのコンフィギュレーションに依存する。ルートが、積極的なアイドリングに構成されたインターフェイスを参照する場合には、所定値は、短い積極値である。例えば、ここに述べる実施形態は、10秒、30秒、1分、5分又は別の値のような値を使用する。或いは又、ルートが、積極的なアイドリングに構成されていないインターフェイスを参照する場合には、所定値は、デフォールトより長い値となる。例えば、ここに述べる実施形態は、20分、1時間、24時間、2日、又は別の値のような値を使用する。ある実施形態では、積極的なアイドリングに構成されないインターフェイスを参照するルートに対して使用される所定値は、既存のシステムにおいて満了になるルートに使用される同じ値であることに注意されたい。例えば、ある実施形態では、積極的なアイドリングに構成されないインターフェイスを参照するARPルートに対して20分のデフォールト値が使用される。ここに述べる実施形態は、積極的なアイドリングに構成されたインターフェイスをルートが参照するかどうかに基づいてルートの満了時間のセットが異なるので、既存のシステムとは異なる。参照されたインターフェイスが積極的なアイドリングに構成されるときにルート満了値を短い値にセットすることによって、オペレーティングシステム200は、ルートが既存のシステムのルートより急速に満了となることを保証する典型的に数桁も急速に。これは、次いで、オペレーティングシステム200が基礎的なインターフェイスをより急速にアイドリングできるようにし、インターフェイスが、使用されないルートに対してアクティブな状態に不必要に維持されるのを防止する上で役立つ。プロトコルスタックメカニズムを使用して満了になったルートを削除上述したように、オペレーティングシステム200は、関連するネットワークプロトコルスタックに対して古い/満了となったデータを削除するためのプロトコルスタックメカニズムを含む。一般的に、プロトコルスタックメカニズムは、オペレーティングシステム200により所定の間隔で実行される。例えば、ある実施形態では、プロトコルスタックメカニズムは、10分間隔で実行される。プロトコルスタックメカニズムは、満了タイマーがゼロに達したところのルート構造を削除することができる。プロトコルスタックメカニズムは、この分野で知られており、それ故、ここでは詳細に説明しない。ルートドメイン特有のドレイン機能を使用して満了になったルートを削除オペレーティングシステム200は、カーネルプロトコルドメインのセットを通して周期的にサイクルしてカーネルプロトコルドメインに関連したタスクを遂行するためのメカニズムをなす。図4は、ここに述べる実施形態による多数の規範的なカーネルプロトコルドメイン400及びそれに関連したドメイン特有の機能408-412を示すブロック図である。図4において明らかなように、ドメイン400は、カーネルプロトコルドメイン402-404及びルートドメイン406を含む。カーネルプロトコルドメイン402及び404は、各々、多数の異なるプロトコルドメインの1つである。より詳細には、オペレーティングシステム200によりサポートされるカーネルプロトコルは、カーネルプロトコルドメインを有する。一例として、カーネルプロトコルドメイン402は、IPv4ドメインを含み、そしてカーネルプロトコルドメイン404は、アドレス分析プロトコルARPドメインを含む。或いは又、カーネルプロトコルドメイン402は、IPv6ドメインを含み、そしてカーネルプロトコルドメイン404は、IPv6近隣発見NDドメインを含んでもよい。ルートドメイン406もカーネルプロトコルドメインであるが、以下に述べる実施形態においてドメイン特有機能412のドレイン機能を使用して満了となったルートを削除できるので特別に列挙されている。カーネルプロトコルドメイン402-406の各々は、ドメイン特有機能408-412のセットに対するポインタのセットを含む。ある実施形態では、各ドメイン特有機能は、それに対応するカーネルプロトコルドメインからポインタにより指示される。ドメイン特有機能408-412の各セット内には、それに対応するドメインに関連したアクションを遂行するためにオペレーティングシステム200により実行される機能がある。一例として、1つのドメイン特有機能は、古い/満了となったドメインデータを処理サブシステム102及びコンピュータシステム100から除去することのできるドレイン機能である。更に、ドメイン特有機能は、入力機能、出力機能及び他の機能を含む。動作中に、オペレーティングシステム200は、図4にサイクルで示すように、カーネルプロトコルドメイン402-406及び楕円で示す付加的なカーネルプロトコルドメインを通して周期的にサイクルする。各ドメインに対して、オペレーティングシステム200は、ドメインからのポインタをたどり、ドメイン特有機能を実行する。このように、オペレーティングシステム200は、ドメイン特有機能を周期的に実行して、カーネルプロトコルに対して更新、構成、及び/又は不要データ収集を遂行することができる。カーネルプロトコルドメイン402-406を通してサイクルする間に、オペレーティングシステム200に存在するルート例えば、ARPルート、ND6ルート、IPv6ルート、IPv4ルート、等に対するデータを取り扱うルートドメイン406に到達すると、オペレーティングシステム200は、ルートドメイン406からドレイン機能及び他のルートドメイン特有機能412までポインタをたどり、これらの機能を実行する。ドレイン機能を実行することで、オペレーティングシステム200は、各ルート構造例えば、ルート構造体312-316を即座にチェックして、ルート構造のための満了タイマーがゼロに到達したかどうか決定する。満了タイマーがゼロに到達したところのルート構成の各々に対して、オペレーティングシステム200は、ルート構成を削除し、オペレーティングシステム200からのルートを除去する。ある実施形態では、オペレーティングシステム200がカーネルプロトコルドメインを通してサイクルする時間は、約500ミリ秒である。これは、オペレーティングシステムがルートドメイン406に対するドレイン機能の実行をほぼ半秒ごとに試みることができることを意味する。オペレーティングシステム200が満了となったルートをチェックするドレイン機能を実行して不必要にビジーとなり続けるのを回避するために、ある実施形態では、ドレイン機能は、カーネルプロトコルドメインを通るN番目のサイクルごとにオペレーティングシステム200がドレイン機能を実行するようにさせるメカニズムを含む。特に、ルートドメイン406は、ドレイン機能に入ったときに直ちにチェックされるタイマー値を含む。このタイマーは、指定の時間に対してセットされ例えば、10秒、30秒、又は1分、そしてタイマーがゼロに到達する前には、オペレーティングシステム200は、ドレイン機能をスキップする。しかしながら、タイマーがゼロに到達すると、オペレーティングシステム200は、ドレイン機能の残りを実行し、オペレーティングシステム200が満了となったルートに対してルート構造をチェックするようにさせる。ルート削除に基づきインターフェイスをアイドリングできることを決定ここに述べる実施形態では、所与のルート構造が削除される従って、オペレーティングシステム200からルートを削除するときに、オペレーティングシステム200は、ルート構造においてどのインターフェイスが参照されるか決定する。オペレーティングシステム200は、次いで、その参照されたインターフェイスに対してインターフェイス構造内のルート参照カウンタをデクリメントする。例えば、ルート構造312を削除するときに、オペレーティングシステム200は、インターフェイス302がルート構造312により参照されたインターフェイスである従って、ルートのためのインターフェイスがインターフェイス302であると決定する。次いで、オペレーティングシステム200は、IF構造306におけるルート参照カウンタをデクリメントする。このように、所与のインターフェイスを参照する最後のルートが削除されたときには、インターフェイスのルート参照カウンタがゼロにデクリメントされる。ルート参照カウンタがゼロであることが決定されると、オペレーティングシステム200は、コンフィギュレーションエージェント図5のコンフィギュレーションエージェント502を参照に信号を発して、そのコンフィギュレーションエージェントが、インターフェイスがアイドリングの候補であるという通知を1つ以上のアプリケーションへ転送できるようにする。ある実施形態では、オペレーティングシステム200は、インターフェイスのためのインターフェイス構造において積極的なアイドリングフラグがセットされたときにコンフィギュレーションエージェントのみに信号を発する。これらの実施形態では、所与のインターフェイスに対して積極的なアイドリングフラグがセットされない場合に、オペレーティングシステム200は、ルート参照カウンタのゼロへのデクリメントを無視することができる。コンフィギュレーションエージェント及びインターフェイスマネージャータスク図5は、ここに述べる実施形態により多数のアプリケーションとインターフェイスするオペレーティングシステムのブロック図である。コンピュータシステム100の処理サブシステム102により実行される図5のアプリケーションは、アプリケーション202、コンフィギュレーションエージェント502、及びインターフェイスマネージャータスク504を含む。ルート500は、アプリケーション202からインターフェイス300を通して行先ホストへパケットをルーティングするためにオペレーティングシステム200により使用されるルートである。明瞭化のために、ルート500、インターフェイス構造508、及びインターフェイス300は、一般的に説明するだけとする例えば、ルート500に対するルート構造は示されていない。コンフィギュレーションエージェント502は、処理サブシステム102の1つ以上のコンフィギュレーション観点を管理する。コンフィギュレーションエージェント502は、処理サブシステム102/コンピュータシステム100の希望の及び現在の状態を反映するデータを維持し、このデータが変化するときにアプリケーション例えば、アプリケーション202及び/又はインターフェイスマネージャータスク504に通知を与え、及び/又は関連するコンフィギュレーションタスクを遂行する。一般的に、コンフィギュレーションエージェント502は、1つ以上の入力ソース好み、低レベルカーネル事象、通知、等に依存し、そしてコンフィギュレーションエージェント502に含まれたポリシーモジュールのセットを使用して、処理サブシステム102/コンピュータシステム100と対話し、望ましい動作コンフィギュレーションを確立する。例えば、ある実施形態では、コンフィギュレーションエージェント502は、カリフォルニア州クパチーノのアップル社からのconfigdと同様のコンフィギュレーションエージェントである。コンフィギュレーションエージェントは、この分野で知られており、従って、ここでは詳細に述べない。既存のコンフィギュレーションエージェントとは異なり、コンフィギュレーションエージェント502は、インターフェイスがそれを参照するルートをもたず、従って、アイドリングの候補なり得るという通知をオペレーティングシステム200から受け容れるためのメカニズムを備えている。更に、コンフィギュレーションエージェント502は、インターフェイスがアイドリングの候補であるという通知を他のアプリケーションに送信してそれらアプリケーションにその旨通知するためのメカニズムも備えている。インターフェイスマネージャータスク504は、インターフェイス300の動作をコントロールする。例えば、インターフェイスマネージャータスク504は、インターフェイス300を初期化し、インターフェイス300の動作モードを構成し、インターフェイス300をパワーダウンし、インターフェイス300に関連したコントロールメッセージをオペレーティングシステム200から受信し及びそこへ送信し、そしてインターフェイス300に関する他の動作を遂行することができる。ある実施形態では、インターフェイスマネージャータスク504は、インターフェイス300をアイドリングできる即ち、アイドリングの候補であるときに通知されるようにコンフィギュレーションエージェント502に登録される。これらの実施形態では、インターフェイス構造508内のルート参照カウンタがゼロにデクリメントされ、従って、インターフェイスを参照するアクティブなルートがないことを決定すると、オペレーティングシステム200は、インターフェイス300がそれを参照するルートをもはやもたないことを信号する。次いで、コンフィギュレーションエージェント502は、インターフェイス300がアイドリングの候補であるという通知をインターフェイスマネージャータスク504へ送信する。ある実施形態では、インターフェイス300がアイドリングの候補であるという通知を受け取ると、インターフェイスマネージャータスク504は、オペレーティングシステム200により通知が送信されて以来、インターフェイス300を参照するルートが確立されていないことを保証するため、オペレーティングシステム200でチェックを行う。次いで、オペレーティングシステム200は、インターフェイス300のインターフェイス構造508におけるルート参照カウンタをチェックして、値が非ゼロであるかどうか即ち、新たに確立されたルートがインターフェイス300を参照するかどうか決定する。インターフェイス300を参照する新たなルートが確立された場合には、インターフェイスマネージャータスク504は、通知を無視し、そしてインターフェイス300の動作モードを不変のままにする。これらの実施形態では、このチェックを行うことにより、インターフェイスマネージャータスク504は、インターフェイスマネージャータスク504により受信される前に遅延されたかもしれない通知に基づいてアクティブなインターフェイスを誤ってアイドリングさせるのを回避することができる即ち、オペレーティングシステム200がビジーでありそしてコンフィギュレーションエージェント502へ通知を直ちに送信しない場合、或いはコンフィギュレーションエージェント502がインターフェイスマネージャータスク504への通知の送信に遅延を生じた場合に。換言すれば、インターフェイスマネージャータスク504は、通知信号と、オペレーティングシステム200における新たなルートの確立との間の競合状態に基づいてインターフェイス300をアイドリングさせる判断を誤って行うのを回避することができる。さもなければ、インターフェイスマネージャータスク504は、インターフェイスをアイドリングさせることができる。上述したように、インターフェイスをアイドリングさせるとは、実施形態に基づき異なることを意味する。例えば、アイドリングとは、インターフェイスを完全にパワーダウンし、低電力であるが、少なくとも部分的に動作するモードへスイッチし、或いは通常に使用するが、低プライオリティ又はインターフェイスメンテナンス動作を遂行することを意味する。インターフェイスマネージャータスク504は、インターフェイスがアイドリングの候補であるという通知をコンフィギュレーションエージェント502から受け取ることができるので、既存のインターフェイスマネージャータスクとは異なる。更に、通知を受け取ると、インターフェイスマネージャータスク504は、インターフェイスをアイドリングさせる前にインターフェイスがルートにより参照されるかどうか決定するためにオペレーティングシステム200でチェックを行うことができる。図5には、1つのコンフィギュレーションエージェント及び1つのインターフェイスマネージャータスクしか示されていないが、ある実施形態では、複数のコンフィギュレーションエージェント及び/又はインターフェイスマネージャータスクをコンピュータシステム100において実行できることに注意されたい。更に、インターフェイスマネージャータスク504は、2つ以上のインターフェイスに対するインターフェイスマネージャータスクである。積極的なインターフェイスカウンタある実施形態では、オペレーティングシステム200は、積極的にアイドリングされるように構成されたアクティブなインターフェイスの数を追跡するためにオペレーティングシステム200が使用する積極的なインターフェイスカウンタを維持する。積極的にアイドリングされるように構成された各インターフェイスがアクチベートされるときに、オペレーティングシステム200は、積極的なインターフェイスカウンタをインクリメントする。他方、積極的にアイドリングされるように構成された各インターフェイスがアイドリングされるときには、オペレーティングシステム200は、積極的なインターフェイスカウンタをデクリメントする。積極的なインターフェイスカウンタがゼロに等しくなる即ち、積極的なアイドリングに構成された全てのインターフェイスがアイドルであるとき、オペレーティングシステム200は、ルートドメイン406におけるドレイン機能412のポインタをNULLにセットする。しかしながら、積極的なインターフェイスカウンタが非ゼロであるときは、オペレーティングシステム200は、ルートドメイン406におけるドレイン機能のポインタを、ドレイン機能を指すようにセットする。ポインタをこのようにセットすることにより、これら実施形態は、積極的にアイドリングされるように構成された少なくとも1つのインターフェイスがアクティブである間にドレイン機能を実行するだけである。インターフェイスを管理するプロセス図6は、ここに述べる実施形態によるインターフェイスを管理するプロセスを示すフローチャートである。より詳細には、図6において、積極的にアイドリングされるよう構成されたネットワークサブシステム106におけるBluetoothTMインターフェイスの管理について説明する。この例では、BluetoothTMインターフェイスが最初にアイドルであると仮定する。更に、積極的にアイドリングされるように構成された他のインターフェイスはアクティブでなく、従って、積極的なインターフェイスカウンタはゼロに等しく、そしてオペレーティングシステム200は、ルートドメイン406のためのドレイン機能412を実行しない即ち、ルートドメイン406のドレイン機能412のポインタは、NULLを指す。一例としてBluetoothTMインターフェイスを使用してインターフェイスを管理するプロセスについて述べるが、別の実施形態では、異なるインターフェイスが使用される。これらの別の実施形態は、プロセスにおいてより多くの又はより少ない及び/又は異なるステップ含んでもよい。例えば、他の装置の分析及び/又は他の装置のアドレスは、異なる仕方で行われてもよいし又は全く行われなくてもよい行先アドレスは、既知である、等。別の実施形態は、他の点では、ここに述べる実施形態と同様に動作する。図6のプロセスは、処理サブシステム102により実行されているアプリケーションがBluetoothTMインターフェイスを使用する別の電子装置とのネットワーク接続を要求するときに開始するステップ600。例えば、ゲームアプリケーションは、装置間にゲームデータを転送するのに使用されるゲームアプリケーションを実行する別の電子装置とのBluetoothTM接続の形成を要求することができる。次いで、アプリケーションは、他の装置を見出し、そして他の装置に対する行先インターネットプロトコルIPアドレスを分析するプロセス開始する。例えば、アプリケーションは、カリフォルニア州クパチーノのアップル社からのBonjourTMサービスを開始するか、又は別のアドレス分析サービスを開始することができる。別の装置を使用できると決定されると、アプリケーションは、BluetoothTMインターフェイスをアクチベートするようにインターフェイスマネージャータスク504例えば、BluetoothTMサーバーに信号するステップ602。次いで、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアクチベートし、BluetoothTMインターフェイスがアプリケーションのためのパケットを送信及び受信する準備ができるようにする。BluetoothTMインターフェイスは、積極的にアイドリングされるように構成される従って、オペレーティングシステム200におけるBluetoothTMインターフェイスのインターフェイス構造において積極的なアイドリングフラグがセットされることを想起されたい。従って、BluetoothTMインターフェイスがアクチベートされると、オペレーティングシステム200は、積極的なインターフェイスカウンタをインクリメントし、そして未使用のルートを積極的に満了とし削除することを開始するステップ604。より詳細には、オペレーティングシステム200は、ルートドメイン406のドレイン機能412のポインタを、NULLを指すことから、ドレイン機能412を指すことへと調整する。積極的なインターフェイスカウンタをインクリメントすることにより、オペレーティングシステム200は、積極的なアイドリングについてアクティブなインターフェイスが構成されたことを記録する。更に、ルートドメイン406のドレイン機能412のポインタを調整することで、オペレーティングシステム200は、ドメイン400を通過するたびにより詳細には、ルートドメイン406を通過するたびにドレイン機能412を実行するようにされる。上述したように、ドレイン機能412は、ルートドメイン406を通過するたびに実行されるが、ドレイン機能412の内部カウンタは、所定の時間が経過するまで、オペレーティングシステム200がドレイン機能412を完全に実行するのを防止する。例えば、ドレイン機能412は、X秒又はルートドメイン406を通るYサイクルで満了となるカウントダウンカウンタを含むことができる。オペレーティングシステム200がドレイン機能412のカウンタをチェックして、カウンタが満了となったことを見出すと、オペレーティングシステム200は、ドレイン機能412の残りを実行し、内部カウンタをリセットする。ドレイン機能412の残りが実行されると、オペレーティングシステム200が各ルート構造例えば、ルート構造312-316をチェックして、どのルートが満了となり、従って、削除できるか決定するようにさせる。次いで、アプリケーションは、BluetoothTMインターフェイスを使用して送信コントロールプロトコル/インターネットプロトコルTCP/IPセッションを開始するためのソケットをオープンするステップ606。より詳細には、アプリケーションは、Bluetoothインターフェイスを使用して行先IPアドレスの他の装置へパケットを送信し始めるためのソケットをオープンする。オペレーティングシステム200は、ソケットをオープンする通知を受け取るのに応答して、BluetoothTMインターフェイスに対する参照/ポインタを含めてルートに関する情報を含むルート構造テンプレートルートからクローン化されたを生成しステップ608、これにより、オペレーティングシステム200におけるルーティングテーブルにルートを追加する。更に、オペレーティングシステム200は、BluetoothTMインターフェイスのインターフェイス構造におけるルート参照カウンタをインクリメントしステップ608、ルートがBluetoothTMインターフェイスに依存することを記録する。次いで、オペレーティングシステム200は、BluetoothTMインターフェイスを使用してアプリケーションから対応する行先へパケットを転送し始める。アプリケーションがルートの使用を終了すると又はBluetoothTM接続が失われると、アプリケーションは、ソケットをクローズするステップ610。アプリケーションがソケットをクローズしたという通知をネットワークプロトコルスタックの関連レイヤから受け取るのに応答して、オペレーティングシステム200は、関連ルートを削除するプロセスを開始する。特に、オペレーティングシステム200は、ルート構造における満了タイマーを短い満了時間にセットするステップ612。上述したように、BluetoothTMインターフェイスのインターフェイス構造における積極的なアイドリングフラグがセットされるので、満了タイマーは、短い満了時間にセットされるべきである。BluetoothTMインターフェイスのインターフェイス構造において積極的なアイドリングフラグがセットされない場合には、オペレーティングシステム200は、ルート構造における満了タイマーを、短い満了時間より典型的に少なくとも数桁大きな値にセットする。このケースでも、オペレーティングシステム200は、ルートドメイン406のドレイン機能412を実行せずドレイン機能412のポインタが依然NULLにセットされるので、従って、満了となったルートを除去するためのプロトコルスタックの関連メカニズムがルート構造を削除するひいては、ルーティングテーブルから満了となったルートを除去する役割を果たす。プロトコルスタックのメカニズムは、ドレイン機能412のインターバルより著しく長いインターバルで動作するので、長いデフォールト満了時間とプロトコルスタックのメカニズムの長いインターバルとが組み合わされると、短い満了時間に基づきルートがドレイン機能により削除されるときより相当に長い時間中ルートが削除されないことになる。ルート構造における短い満了タイマーがゼロに到達すると、オペレーティングシステム200がドレイン機能412を完全に実行する次のときに、オペレーティングシステム200は、ルート構造を削除しステップ614、それにより、オペレーティングシステム200のルートテーブルからルートを除去する。又、ルート構造を削除すると、オペレーティングシステム200は、ルートが参照するインターフェイスのポインタでインターフェイス更新機能へのコールバックをトリガーする。このコールバックは、オペレーティングシステム200がBluetoothTMインターフェイスのインターフェイス構造のルート参照カウンタをデクリメントして、インターフェイスを参照したルートの削除を反映するようにさせるステップ616。上述したように、ルートは、インターフェイスに関連した唯一のルートであるから、ルート構造が削除されたときにインターフェイス構造のルート参照カウンタをデクリメントすると、インターフェイス構造のルート参照カウンタをゼロにデクリメントさせる。オペレーティングシステム200は、インターフェイス構造のルート参照カウンタがゼロにデクリメントされたことを決定し、そしてコンフィギュレーションエージェント502にメッセージを送信して、インターフェイスがもはやいずれのルートによっても参照されないことをコンフィギュレーションエージェント502に通知するステップ618。オペレーティングシステム200からメッセージを受け取ると、コンフィギュレーションエージェント502は、インターフェイスを参照するルートがないときに送られる通知を、インターフェイスマネージャータスク504へ、及びコンフィギュレーションエージェント502に登録された他のアプリケーションへ送信するステップ620。インターフェイスマネージャータスク504は、次いで、BluetoothTMインターフェイスをアイドリングするステップ622。図7は、ここに述べる実施形態によるBluetoothTMインターフェイスをアイドリングさせるプロセスを示すフローチャートである。より詳細には、図7に示す実施形態は、ここに述べる実施形態による図6のステップ622の説明図である。図7に示すプロセスは、インターフェイスマネージャータスク504が、BluetoothTMインターフェイスを参照するルートがないという通知をコンフィギュレーションエージェント502から受け取ったときに開始するステップ700。インターフェイスマネージャータスク504は、次いで、インターフェイスがアイドルであったことをオペレーティングシステム200がコンフィギュレーションエージェント502に信号して以来、BluetoothTMインターフェイスを参照するルートがアプリケーションにより確立されたかどうか決定するための問合せをオペレーティングシステム200へ送信するステップ702。これらの実施形態では、インターフェイスを参照するルートが確立された場合にステップ704、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアクティブな状態のままとする即ち、BluetoothTMインターフェイスの現在動作状態を変化させないステップ706。さもなければ、インターフェイスを参照するルートが確立されない場合にステップ704、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアイドリングさせるステップ708。上述したように、インターフェイスをアイドリングさせるときには、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをパワーダウンし、BluetoothTMインターフェイスを低電力動作モードに入れ例えば、インターフェイスの動作速度を変化させ、等、及び/又はBluetoothTMインターフェイスを使用して低プライオリティ動作を遂行することができる。インターフェイスマネージャータスク504がBluetoothTMインターフェイスをアイドリングさせるときに、オペレーティングシステム200は、インターフェイスのアイドリングを検出し、そして積極的なアイドリングモードにあるインターフェイスがアイドリングされたと決定する。次いで、オペレーティングシステム200は、積極的なインターフェイスカウンタをデクリメントする710。インターフェイスは、積極的にアイドリングされるよう構成された唯一の、それ故、最後のアクティブなインターフェイスであるから、積極的なインターフェイスカウンタをデクリメントすると、積極的なインターフェイスカウンタは、ゼロに等しくなる。積極的なインターフェイスカウンタがゼロになるのに基づいて、オペレーティングシステム200は、ルートドメイン406のドレイン機能412のポインタを、ドレイン機能412を指すことから、NULLを指すことへと調整しステップ712、これは、オペレーティングシステム200が、ドメイン400を通過するたびにドレイン機能412を実行するのではないことを意味する。インターフェイスマネージャータスク504が、BluetoothTMインターフェイスの物理的レイヤにおけるトラフィック即ち、実際のパケット送信のみを監視して、BluetoothTMインターフェイスをいつアイドリングさせるべきか決定する既存のシステムとは対照的に、ここに述べる実施形態では、インターフェイスマネージャータスク504は、特定のインターフェイスを参照するルートの数に関する情報をオペレーティングシステム内から受け取る。この情報を使用して、BluetoothTMサーバーは、コンピュータシステム100において実際に遂行される動作にとってより適した仕方で即ち、インターフェイスを使用するルートがないときだけインターフェイスをパワーダウンすることができる。実施形態についての以上の説明は、例示のためのものである。それらは、余すところのないものでもないし、又は実施形態をここに開示する形態に限定するものでもない。従って、当業者であれば、多数の変更及び修正が明らかであろう。更に、以上の開示は、実施形態を限定するものではない。