Insider's Eye64bit時代のWindowsアプリケーション開発(2)Michael Cherry2005/07/27 Copyright (C) 2005, Redmond Communications Inc. and Mediaselect Inc. |
|
パフォーマンスとセキュリティ向上の仕組み
現在の64bitプロセッサは、32bitシステムよりも優れたパフォーマンスとセキュリティを提供する。
■メモリ利用の拡大で高パフォーマンスを
64bitプロセッサが実現するパフォーマンスの向上は、主にメモリのアドレス空間の拡大によるものだ。32bitのx86プロセッサは4Gbytesのメモリしか確保できず、これはほとんどの場合(特殊なブート・スイッチやコンパイラ・オプションを無視すれば)、アプリケーションとOSに平等に分配され、それぞれ最大で2Gbytesしか利用できなかった。対照的に、64bitプロセッサは16Tbytes、64bitプロセス当たり8Tbytesのメモリを確保できる。例えばWindows XP Professional x64 Editionを実行するコンピュータであれば、最大128Gbytesの物理メモリをサポートし、Windows Server 2003 Enterprise x64 Editionを実行するコンピュータは最大1Tbytesの物理メモリをサポートできる。いずれの場合も、仮想メモリは16Tbytesまで確保できる。
利用できるメモリが拡大したことで、ディスクとのデータのやりとり(ページング)を頻繁に行う必要がないため、Windows Terminal ServicesやSQL Serverなど、大量のメモリが必要なアプリケーションの処理速度を格段に向上できる。アプリケーションの処理速度が向上すれば、サーバを統合し、管理を簡素化できる。例えばMicrosoftによると、リリース前のテストでは、32GbytesのRAMを搭載したサーバで64bit版のWindows Terminal Servicesを実行した場合、32bit版と比べて1.7倍の数のユーザーをサポートできたという。
64bitプロセッサのパフォーマンス上のメリットは、これだけではない。例えばレジスタ(オンチップ・メモリ領域)の数やデータ幅も拡張されているため、コンパイラを最適化し、頻繁にアクセスされるデータを直接チップ上に保存して、プロセッサのキャッシュやメイン・メモリからデータを取得する必要を減らすことで、高速なコードを生成できる。これは、エンジニアリング・アプリケーションや財務分析アプリケーションなど、複雑な計算を要するアプリケーションでは特にメリットが大きい。(64bitへの移植によりパフォーマンスの向上が期待できるアプリケーションの例については、コラム「64bit化で効果を発揮するアプリケーション、Officeアプリの64bit化は?」を参照)。
[コラム] しかし、次の2種類のアプリケーションについては、64bit化による恩恵が得られる可能性が高い。 ■大量のメモリを消費するビジネス・アプリケーション 基本的に、データベース全体をメモリに読み込むことができるため、アクセス速度がけた違いに遅いディスクからデータを読み取る必要がなくなる。一般的には、SQL Serverの64bitバージョンを業務アプリケーションのバックエンドのデータベースとして導入し、中間層とフロントエンドは現行の32bitアプリケーションを維持する構成が考えられる。これは、Systems Management ServerやMicrosoft Operations ManagerなどのMicrosoft製品のシステムを構築する場合にも当てはめることができるだろう。システムのデータベースにはSQL Serverの64bit版を採用し、ほかのアプリケーション・コンポーネントはx64プロセッサで32bitまたは64bit版を実行できる。 ■複雑な計算を要する大規模アプリケーション 以上のように64bit化に適したアプリケーションの特徴を考えると、WordやExcelなどのOfficeアプリケーション製品における64bit版の提供は望めないだろう。逆に、SharePoint Portal ServerやProject ServerなどOfficeサーバ製品は、x64対応バージョンが提供される可能性がある。 |
■データ実行防止によるセキュリティ強化
64bit版のWindowsは、データ実行防止(DEP:Data Execution Prevention)機能を実装している。これはアプリケーションが、メモリ領域からのコード実行を禁止する属性を付与できるようにするものだ。結果として、悪意のあるプログラム(ウイルスやトロイの木馬など)が、不正なコードをアプリケーションのデータ領域に挿入し、実行するのを防ぐ効果が得られる。
DEPは、AMDの64bitプロセッサのNo-Execute bit(NX bit)サポートと、IntelのItaniumおよびx64プロセッサ(新しいXeonシリーズおよびPentiumシリーズ)のExecute Disable bit(XD bit)を基に実現されている。
Windows OSの64bit対応状況
Windows OSに関しては、x64はワークステーションとサーバの両方でサポートされるが、Itaniumへの対応は今後サーバのみになる予定だ。いずれのアーキテクチャの場合も、64bit版の各種ドライバが出そろうことが、成功の鍵となる。
■ワークステーションおよびサーバでのx64対応
デスクトップPCやワークステーション用には、今年5月にWindows XP Professional SP2ベースのWindows XP Professional x64 Editionの提供が開始されている。
x64サーバ用には、Standard、Enterprise、Datacenterの3つのWindows Server 2003 64bitエディションが用意されている。これらは、いずれもWindows Server 2003 SP1をベースにしている。Windows Serverの今後のバージョンでは、次の中間リリース(コード名:Windows Server 2003 R2)と、次期メジャー・リリース(同Longhorn Server)も含め、x64プロセッサがサポートされる(これらのリリースの詳細については、コラム「64bit対応製品のロードマップ」の図を参照)。
Windows Server 2003 Web Editionについては、64bit版が開発される予定はないため、このエディションがほとんど普及していないことが分かる。Web Editionは、当初Webアプリケーションの安価なホスト・サーバ製品として売り出されたが、大半のユーザーはStandard Editionなど、そのほかのWindows Serverを利用しているようだ。
■Itanium対応はサーバ版で継続
ワークステーション向けには、Windows XP 64bit Edition 2002およびWindows XP 64bit Edition 2003のサポートが継続される予定だ。この2製品は、Itaniumを搭載した64bitワークステーションを早期導入しているユーザーが利用している可能性がある。ただし、今後のWindowsクライアントOSではItanium対応バージョンが開発される計画はない。
Itanium搭載サーバ用には、Windows Server 2003 Enterprise EditionとDatacenter Editionが引き続き提供およびサポートされる予定である。Windows Server 2003 R2やLonghorn Serverなど、Windows Serverの今後のバージョンは、Itaniumとx64の両方のプロセッサに対応すると見られる。
■普及の課題はドライバ・サポート
64bit Windowsの普及を妨げる最大の障害の1つは、64bit用のデバイス・ドライバがまだあまり提供されていないことである。主な理由としては2つある。1つは、周辺機器メーカーが各社のハードウェア製品の64bit用のデバイス・ドライバを提供する必要があることであり、2つ目は、開発者が32bitのカーネル・モードのデバイス・ドライバをインストールするアプリケーションを書き直す必要があることだ。
OEMが提供する新しい64bit PCでは、グラフィック・カードなど各PCに搭載されるハードウェア用の64bitデバイス・ドライバが用意される。ただし、プリンタやエンジニアリング・アプリケーションで使われるグラフィック・タブレットなど、既存のデバイス用の64bit版ドライバが開発されるまでは時間がかかるだろう。場合によっては、メーカー側は、多くの既存の周辺機器の64bitドライバを見送る可能性もある。
Microsoftは周辺機器メーカーに働きかけ、64bitドライバの開発を推進および支援している。2005年4月に開催されたWindows Hardware Engineering Conference(WinHEC)の基調講演においても、同社のチーフ・ソフトウェア・アーキテクトBill Gates氏が、64bitドライバの必要性を強調していた。
INDEX | ||
Insider's Eye | ||
64bit時代のWindowsアプリケーション開発(1) | ||
64bit時代のWindowsアプリケーション開発(2) | ||
64bit時代のWindowsアプリケーション開発(3) | ||
「Insider's Eye」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|