人とか機械とか

デジタルガジェットやコンピュータについてのブログです。

windowsに思うこと

メモリのポリシー

ユーザーによる任意の「メモリパーティショニング」というか、「メモリ利用ポリシー」という設定ができるように。

 空いているRAMをRAMDISKに設定して、そこにWEBブラウザのキャッシュを置くことで高速化!っていうのはよく聞く話だけど、本来ブラウザのキャッシュ格納先というのはHDDを想定していて、それはFileI/Oでアクセスしてると思う。すると、ブラウザ -> FileI/O -> OSのI/Oマネージャ -> OSのストレージドライバ -> RAMDISKドライバ って感じにたくさん中継してアクセスしている。それをやるくらいならブラウザ自体が沢山メモリをアロケートして、ブラウザ自身でメモリ上でキャッシュしたほうがCPUリソースが少なく済むし速いと思う。実際、FireFoxの設定で画像のメモリキャッシュを増やすことができるので、そうしている。たぶん64bitブラウザが本格化してきたら、そういう機能がブラウザに実装されるんじゃないだろうか。有り余るメモリを贅沢に使うことでより高速ブラウジングを行うような。

 この例のように、ユーザーは"メモリを沢山使ってより高速化させていいよ"と望んでいるにも関わらず、しかし、一般的にはリソースの使い方というのは慎重に"お行儀よく"節約すべきというソフトウェア設計上の通念があるので、そこの意識がうまく噛み合っていないと思う。アプリケーションをどう使うかはユーザーが決めるのだから、資源配分ポリシーもユーザーの意思が反映されて然るべきである。(まあ音楽,映像,写真系のソフトウェアは断りも無く鬼のようにメモリ食べまくるけど)

 GoogleDNS Prefetchなんかは「コンピュータリソースを使いまくって先読みして速くする」というポリシー。Google Earthにもメモリにキャッシュできる設定がある。(1000MBまで)だから、そういう点をどうにかコーディネートしてあげる共通メカニズムを作れないのかな?と思う。それは最終的にメモリ管理をしているOSの仕事なんじゃないかと思う。「スマートグリッド」よろしく「スマートメモリ」(仮)みたいな感じで。で、その、スマートメモリが実装されれば、メモリも沢山売れるしメモリ屋も儲かる。64bitOSの時代だし。メモリモジュール団体から、このプロジェクトへ資金提供してもらうのもアリだと思う。もちろんスマートメモリは、最新版のWindowsにしか搭載しません(笑)

MSはSuperfetchを実装したくらいなので、その辺の研究は、たぶんやっているのだろうとは思う。Superfetchは、大雑把には高速化できていると思う。たとえば、WEBブラウザで同じページを毎日見るとする。するとそのキャッシュがHDDにずっと蓄えられる。するとSuperfetchがそのアクセス履歴を認識して、そのHDDキャッシュを先読みしてメモリに読むようになる。結果的に、間接的にRAMDISK的な動きになる。
でも基本的にMSは「ユーザーはバカである」という設計思想なので、なるべく難しい操作はさせない思想だと思う。XP->Vista->7と、コロコロと細かい仕様変えるけどね。

ストリーム再生

 音声や動画を再生するとき、チョットずつStorage (HDD,SSD)から読み取るのでなくて、ファイル全部RAMに読み取ればいいと思う。そのほうがHDDのヘッドの動く量も減るし、消費電力も少ないかと思う。再生して30秒くらいしたら全部読むとか。ファイルサイズとRAMの量にもよるけど。ネットワークドライブを「オフラインディスク」に設定するのに少し似ている。これはPCに限らず、HDDのiPod Classicとかにも言えると思う。既にそういう制御してたようなことを聞いたような気がする。他にはHDDカーナビとか。イマドキのカーナビはSSDもあるけど。

ソフトウェアアップデート

 なんかこう、XBOX LIVEやsteamのように、一括管理されたサーバーでソフトウェアアップデート管理すればいいんじゃないかと思う。そうすればアップデート忘れによるセキュリティーホールも減るし、海賊版対策も可能になる。「アップデートしないと使えません」レベルでいいと思う。インターネットに接続するというのは、それだけのセキュリティ上の責任が強制されるべきである。問題は、サーバー運営費の出所だ。現状は、各種ソフトウェアでバラバラに管理している状況。ゲームソフト(steam以外)、セキュリティソフト、その他のフリーソフトとか。
でもあんまり「マネージド」過ぎてしまっても、細々した「かゆいところに手が届く」フリーソフトの自由度が下がるかも。VistaUACがいちいち画面暗転させて質問してくるウザさと同じように。