2011-07-23 7 views
0

を行きますディスクの最小読み取り数でディスク上のこのファイルからページを作成します(ディスクの回転とシークの遅延を最小限に抑えてディスクからこれらのNページを読み取る時間を最小限に抑えたい) 。理想的には、ページからの読み取りを開始し、ディスクの回転が終了する前にすべての読み取りが完了した場合です。ページの位置の違いは大きいので、最初のページから最後のページまでの読み取りコマンドを発行してNページすべてをカバーすることはできません。それは記憶に膨大な量のメモリを必要とするでしょう。 (エクストラ - 私はいくつかの資料を見に行き、データベースの "list prefetching"の仕組みにぶつかりました。私はそれを読んで、このような実装が私の問題を解決できることを知りました)。は、次のような問題がある

誰かがこの問題を解決するのを手伝ってくださいC言語で?前もって感謝します!

+1

将来の恥ずかしさを避けるために、あなたの妻が見つけられないようにするために「控えめな」ことがあります。 「離散」とは、接続されていない別個の部品について話しているときです。 – unpythonic

答えて

1

あなたがプリフェッチと... Page replacement algorithmのようなものを必要としています...あなたはメモリなどで必要になりますどのくらい、あなたがページでどのように動作するかを教えていなかった。しかし、私はあなたがすると仮定しますメモリがいっぱいで、メモリからいくつかのページを解放する必要がある状況を解決する必要があります。言及されたアルゴリズムを見てください(LRUMRUなど)。これは、OSがスワップするために使用するものです。

また、OSのメモリマップファイルを使用することも考えられます。ページ置換アルゴリズムは既に実装されていますが、プリフェッチは行われていません。 (よくOSに依存しますが、Linuxはこのトピックのウィンドウよりはるかに進んでいると思います)。あなたはこのように多くの作業を保存することができますが、あなたのケースでは完全に最適化されていない可能性があります。ディスクアクセスの最適化について

... ...のOSはそれを行う方法を、いくつかの理論を読ん例えばSCANまたはC-SCAN、同様にディスクスケジューリングアルゴリズムを見てみてください。 at this link

+0

はい私は、ページが挿入されるバッファプールでクロック置換アルゴリズムを使用しています。しかし、どうやって慎重なページを読んでディスクへのアクセスを最小限に抑えるのですか? – swanar

+0

OSもこれを解決します(理論的には) - 複数のディスク読み取り要求がある場合、最適なディスク読み取り順序を持つようにソートする必要があります。しかし、それはまた、他の要求を待つためにディスク読み取りをどのくらいの期間延期できるかによって異なります。 – TMS

+1

OSesの動作原理を読んでみてください... SCANやC-SCANなどのディスクスケジューリングアルゴリズムを見てください。ここに:http://ecs.victoria.ac.nz/twiki/pub/Courses/COMP305_2009T1/LectureSchedule/18.FileSystems.pdf&ei=JDkrToqWNojKsgaxoMjWCw&usg=AFQjCNE1Y_oW7xsaNKf6n7Skz3a2E-SIPA – TMS

関連する問題