(57)【要約】  コンピュータ・システムは、そのファイル・サーバが、クライアント・アプリケーションをブロックしないように構成され、要求にすぐに応答する同期装置と、すぐに応答しない非同期装置とを区別するように動作する。非同期装置については、さらに、すぐに完了する同期オペレーションと、完了するのに時間がかかる非同期オペレーションとの間でも区別される。非同期装置上で行われる非同期オペレーションが伴われる場合、そのようなコンピュータ・システムのデバイス・ドライバは、ファイル・サーバ要求を別個のドライブ・スレッドへ受け渡すだけである。
2009505195.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置上で実行するアプリケーションの代わりに記憶システムへのアクセスを処理する実行スレッドを使用するように構成されたファイル・サーバを有する、該コンピュータ装置の記憶システムへアクセスする方法であって、
ａ．前記アプリケーションからのアクセス要求に対して同期の態様で応答する記憶システム（同期システム）と、前記アプリケーションからのアクセス要求に対して非同期の態様で応答する記憶システム（非同期システム）との間で区別する工程と、
ｂ．前記実行スレッド以外の実行スレッドへ非同期システムに対するアクセス要求を前記ファイル・サーバの装置が受け渡さないように手配する工程と、
を有する、方法。
【請求項２】
前記コンピュータ装置上でのスレッド間通信にかかる時間が、前記同期システムと前記非同期システムとを区別するために使用される、請求項１に記載の方法。
【請求項３】
非同期システムについて、
同期オペレーションと非同期オペレーションとを区別する工程と、
前記実行スレッド以外の実行スレッドへ非同期システム上の同期オペレーションに対するアクセス要求を受け渡さないように手配する工程と、
をさらに有する、請求項１又は請求項２に記載の方法。
【請求項４】
前記コンピュータ装置上でのスレッド間通信にかかる前記時間が、前記同期オペレーションと前記非同期オペレーションとを区別するために使用される、請求項３に記載の方法。
【請求項５】
前記ファイル・サーバは、どのシステムとどのシステム上のオペレーションが同期で、どれが非同期かの分類を担う、１以上のデバイス・ドライバをロードするように構成される、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記デバイス・ドライバは、非同期システム上の非同期オペレーションに対するコールを別個の実行スレッドへ受け渡すように構成される、請求項５に記載の方法。
【請求項７】
請求項１から請求項６のいずれか１項に記載の方法に基づいて動作するように構成されたコンピュータ装置。
【請求項８】
コンピュータ装置を、請求項１から請求項６のいずれか１項に記載の方法に基づいて動作させるオペレーティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ装置を動作させる方法を開示し、特に、装置内でファイル・サーバ要求を実行するために必要な時間を最小化することによって、コンピュータ装置のオペレーションの効率を改善する方法を開示する。
【背景技術】
【０００２】
「コンピュータ装置」という用語には、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ＰＤＡ、移動電話、スマートフォン、デジタルカメラ、及び、デジタル音楽再生機が制限なく含まれる。さらに、前述の１以上のクラスの装置の機能を、他の多くの産業用および家庭用電気機器の機能と一緒に組み込んだ統合型装置（converged device）も含まれる。
【０００３】
これらのコンピュータ装置はすべて、一種の永続的なデータ記憶設備を必要とする。現代のコンピュータ・システムにおいてデータを格納する標準的な方法は、データを物理記憶メディアへ転送するファイルシステムを介しており、この物理記憶メディアは、どんなハードウェアが実際に使用されているかに関係なくディスクとして一般に知られている。ディスク上のデータは、通常、一連のファイルとして保持される。ここで、ファイルは、単一のユニットとして格納された、ビットのストリームまたはシーケンスとして定義してもよい（非特許文献１参照）。コンピュータ装置のオペレーティング・システムの機能全体においてこの側面は非常に重要であるため、マイクロソフトは、その最初のマイクロコンピュータ用オペレーティング・システムを、ディスク・オペレーティング・システムを表すＤＯＳと呼んでいた。
【０００４】
ファイルシステム内で保持されているデータへのアクセスは、ファイル・マネージャまたはファイル・サーバとして様々に知られている、オペレーティング・システムの部分が担っているが、これは、伝統的に、ディスク上で名前のついたファイルを検索するディレクトリ・サービスを提供しており、ファイルに対する、開く、閉じる、書き込む、読み出す、名前を変更する、削除する等の、共通のオペレーションを実行を可能にする。
【０００５】
コンピュータ装置上のファイル・サーバは、ソフトウェア・アプリケーションとデータが実際に格納されるハードウェア・コンポーネントとの間の絶縁層（insulation layer）と見ることができる。アプリケーション・ソフトウェアは、記憶装置に用いられるハードウェアの種類について全く知る必要がない。あらゆる種類の記憶メディアが、同一のアプリケーション・プログラム・インタフェース（ＡＰＩ）を経由してアクセスされる。記憶装置のハードウェアへのアクセスそれ自体は、典型的には、一種のデバイス・ドライバを介して取り扱われる。デバイス・ドライバは、典型的には、ファイル・サーバへプラグインするコンポーネントであり、これにより、様々な種類の物理記憶メディアを装置のユーザに対して透過的な態様で使用することが可能になる。
【０００６】
現代オペレーティング・システムにおける一般の習慣においては、ファイル・サーバは、クライアント・アプリケーションから受信したファイル・システム・コールを、デバイス・ドライバを介して物理記憶装置へ受け渡し、任意の戻り値またはファイル・サーバから再び受信したデータを、元のコールを生成したクライアント・アプリケーションへ受け渡す。ファイル・サーバとクライアントとの間のインタフェースは、使用しているデバイス・ドライバまたはハードウェアに関わらず、常に一貫している。
【０００７】
マルチタスク・コンピュータ・システム上では、ファイル・サーバ及びそのデバイス・ドライバと、適切なドライブ・ハードウェアとの間でやりとりされるコールは、通常、非同期である。コールは要求されたオペレーションが完了するのを待つことなくすぐにリターンし、ファイル・サーバは、コールバックまたはある他の種類の通知機構を介して、少し後の時点におけるオペレーションの結果が通知される。仮に、コールが同期しており、要求されたオペレーションが完了するまでブロックしているのならば、ファイル・サーバ全体は、おそらくは他のメディアの種類や他のデバイス・ドライバを巻きこみ、各オペレーションが完了するのを待機することによって、他の要求を処理することが妨げられてしまうだろう。非同期のコールがなされる場合、ハードウェアのアクセスを要するファイル・サーバのオペレーションは、通常は、デバイス・ドライバによって、特にこの目的のためにセットアップされた、ここではドライブ・スレッドとして知られる異なる実行スレッドへ移される。
【０００８】
ほとんどのコンピュータ装置の機能にとって、データを記憶し検索することは重要であるため、ファイル・システムの効率は、常に、装置の性能の主要な決定要因の一つとなっている。
【０００９】
上述のように、ファイル・サーバは、通常、そのクライアントからデバイス・ドライバを経由して物理装置に対して、コールを非同期に受け渡すため、現在のファイル・サーバの設計は比較的非効率である。しかし、非同期のコールは、同期のコールよりも管理するのが極めて複雑である。通知やコールバックを管理するのと同様に、異なるスレッドへオペレーションの制御を転送することは非常に大きな計算量を要する。これらのオペレーションの同期型でおこなうものは管理がずっと単純であり、計算のオーバヘッドがずっと小さい。
【００１０】
非同期のコールを使用することの代償は、ファイル・サーバがブロックされることは非常に効率が悪いため、もちろん非常に長いファイル・システム・コールを招くことに見合う価値がある。しかし、ファイル・サーバに対してなされたコール、又は、ファイル・サーバによってなされたコールの全てが、常に、完了に時間がかかるとは限らない。オペレーションが極めて早く終了する場合は、非同期コールを使用して不必要なオーバヘッドを招いてしまうよりも、同期の方法を使用するほうがはるかに効率的である。
【００１１】
多くの場合、別個のドライブ・スレッドを伴う非同期コールを使用するオーバヘッドは、オペレーションを直接実行する場合に要求されるものよりも、多くのコンピュータ資源を要する。これは非効率であり、コンピュータ装置の速度を減速してしまい、また、電力を浪費する。この最後の欠点は、演算能力が限られており、バッテリで動作するのが典型的な、移動電話等の移動バッテリで動作するコンピュータ装置にとって特に重大な問題である。
【非特許文献１】インターネット〈http://en.wikipedia.org/wiki/Computer_file〉
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、本発明は、完了するのに比較的長時間かかりハードウェア・アクセスを必要とするファイル・サーバ・オペレーションと、相対的に非常に高速に完了し、ハードウェア・アクセスを必要としないファイル・サーバ・オペレーションとを区別することによって、ファイル・サーバの要求を実行するのに必要な時間を最小限にする方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の側面によれば、が提供される。本発明の第２の側面によれば、が提供される。本発明の第３の側面によれば、が提供される。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態例について、添付図面を参照して説明する。
【００１５】
本発明によれば、コンピュータ装置のメディア・データ記憶装置へアクセスすることなく、メイン・ファイル・サーバ・スレッド内で、できるだけ多くのファイル・サーバ要求が処理されるように構成される。これらには、全ての同期オペレーションと、同期ドライブ上で実行される全てのオペレーションが含まれる。「同期」という用語は、ここではほぼ実時間であることを意味する。一例として、メイン・ファイル・サーバ・スレッド内で実行するよりもドライブ・スレッドへ転送するほうが長時間かかるであろう全てのオペレーションは、本発明のコンテクストでは同期とみなされる。
【００１６】
図１、図２は、それぞれ同期オペレーションと非同期オペレーションの動作を示しており、ここでは、英国はロンドンのシンビアン・ソフトウエア社が開発した移動電話用のオペレーティング・システムである、Ｓｙｍｂｉａｎ ＯＳが使用するファイル・サーバから取得されたオブジェクトとクラスが使用されている。図１に示す同期オペレーションからは、要求されたコールが完了したことが要求したクライアントへ通知される前に、メイン・ファイル・サーバ・スレッドが完了することがわかる。このため、要求の完了が通知されるまで、他のクライアントからのサービス要求からファイル・サーバはブロックされる。これに対して、図２に示す非同期動作によれば、要求されたオペレーションを実行し、要求されたオペレーションが完了したときに要求したクライアントに通知する、別個の独立のドライブ・スレッドが、メイン・ファイル・サーバ・スレッドによって生成される。したがって、ファイル・サーバは、現クライアントからの要求が完了する前に、他のクライアントからのサービス要求に対してフリーであるが、そのためには、別のスレッドを生成する必要があることと、このためのリソースが求められることが犠牲になる。
【００１７】
図３は本発明に係るオペレーションを示している。本発明によれば、メイン・ファイル・サーバ・スレッドは、はじめに、上述の従来のモデルで全てのクライアント要求を処理する。しかし、ファイル・サーバのデバイス・ドライバは、同期要求それ自体をサービスするように構成されている。これらには、メディア装置それ自体へはアクセスを全く要求しない要求の全てと、処理を完了し、結果をクライアントへ返す前にスレッドをブロックしないものが含まれる。
【００１８】
ファイル・サーバは、ハードウェアのファイル・システムへのコール・ダウンを伴う要求や、あるいは、ファイル・サーバをブロックしうるコールを、ドライブ・スレッドに対して受け渡すだけである。このようにして、別個のドライブ・スレッドに対して要求を転送するときに固定のオーバヘッドを招いてしまうことが可能な限り回避される。
【００１９】
リード・オンリー・メモリ（ＲＯＭ）のハードウェア内に実装されたものや、ランダム・アクセス・メモリ（ＲＡＭ）を用いた内部ドライブ等の一種のドライブは、長期のオペレーションを決して行わない。これらは非常に高速であり、ドライブ・スレッドを決してブロックしない。このため、これらのドライブは同期ドライブとして設計されており、それらに対するクライアント・アプリケーションからの要求はすべてメイン・ファイル・サーバ・スレッド内で処理される。したがって、本発明によれば、同期ドライブは別個のドライブ・スレッドを使用してサービスされない。
【００２０】
速度の遅い（非同期の）ドライブによってでさえ、ある要求は記憶メディア装置それ自体へアクセスせずに処理することができる−例えば、ファイル・サーバが保持する情報を設定又は取得する要求である。本発明においては、このような種類のオペレーションは「同期オペレーション」に分類され、メイン・ファイル・サーバ・スレッドはこれらも常に処理する。
【００２１】
本発明の好適な実施形態おいては、デバイス・ドライバは、任意の特定のハードウェア装置について、その装置が同期装置が否かを判定し、デバイス・ドライバは、非同期のドライブについて同期のコールと同期でないコールとを区別する。そうすることによって、そのようなコンピュータ・システムのデバイス・ドライバは、非同期のメディア装置上でなされる非同期オペレーションに関わる場合に、別個のドライブ・スレッドへファイル・サーバ要求を受け渡すだけであるように動作することができる。
【００２２】
したがって、本発明によれば、コンピュータ装置をより高速にし、より応答性を高めることを実現することができる。さらに、使用されるコンピュータ資源がより少なく、ハードウェアのアクセスがより少ないため、装置は効率的にもなる。このため、共通のファイル・オペレーションについて電力消費が節約される。
【００２３】
したがって、本発明によれば、クライアントをブロックせず、要求にすぐに応答する同期装置と、すぐに応答しない非同期装置とを区別するファイル・システムを実装するコンピュータ装置が提供される。非同期装置については、さらに、すぐに完了する同期オペレーションと、完了するのに時間がかかる非同期オペレーションとの間でも区別される。非同期装置上で行われる非同期オペレーションが伴われる場合、そのようなコンピュータ・システムのデバイス・ドライバは、ファイル・サーバ要求を別個のドライブ・スレッドへ受け渡すだけである。
【００２４】
以上、特定の実施形態を参照して本発明を説明したが、添付の特許請求の範囲で規定されている本発明の技術的範囲内でならば、修正も有効であることが理解されるだろう。
【図面の簡単な説明】
【００２５】
【図１】同期ファイル・サーバ・オペレーションの一例を示す図である。
【図２】非同期ファイル・サーバ・オペレーションの一例を示す図である。
【図３】本発明に従ってメディア記憶システムへアクセスする手順を示す図である。
【図１】
2009505195.tif 000003
【図２】
2009505195.tif 000004
【図３】
2009505195.tif 000005
【国際調査報告】
2009505195.tif 000006
2009505195.tif 000007