問題タブ [page-replacement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory-management - FreeBSD の CPU キャッシュ ページング、特にページング キューについて説明する
FreeBSD は、ページング キューによるページ カラーリングを実装しています。キューは、プロセッサの L1 および L2 キャッシュのサイズに従って配置されます。また、新しいページを割り当てる必要がある場合、FreeBSD はキャッシュに最適に配置されたページを取得しようとします。
誰かが上記の行を説明してもらえますか? ページング キューの概念は何ですか?
ありがとう!
ruby-on-rails - Onclickイベントに基づいてAjaxを使用してページ要素を置き換える
私はこの問題をよりよく理解しているので、この質問を再定式化しています。
ユーザー、製品、品種、季節の4つのモデルを持つアプリケーションがあります。
ユーザー
has_many :seasons
has_many :products, :through => :seasons
has_many :varieties, :through => :seasons
製品
has_many :seasons
has_many :users, :through => :seasons
has_many :varieties
バラエティ
belongs_to :product
has_many :seasons
has_many :users, :through => :seasons
季節
belongs_to :product
belongs_to :user
belongs_to :variety
製品/ショービューでは、特定の製品で利用可能な各品種と、その特定の製品を持っているユーザーを一覧表示します。
製品/ショーページが最初に読み込まれるときに、次のようにして製品を持っているすべてのユーザーを表示します。
また、次のようにして、製品に使用できる品種をリストします。
ここでAjaxを実行する必要があります。品種名をクリックすると、@product.seasonsループを@variety.seasonsに置き換えたいと思います。これは、その特定の種類を持つユーザーのみを表示する必要があると思います。したがって、次のようになります。
近づいていますが、これを機能させることができません。現在、バラエティをクリックしても、フロントエンドでは何も起こりません。ログで、私はこれを取得します:
ログは#4を参照し、アクションとして4を参照します。4はクリックしたアイテムの品種IDです。
これが私の設定です:
ProductsController#show
@product = Product.find(params [:id])
@varieties = @ product.varieties @users = @ product.users
製品/ショービュー#この製品を使用しているユーザーを一覧表示します
VarietiesController#show。
varieties / show.js.rjs
@ page.replace_html "userList"、:partial => "products / users"、:collection => @ variety.users
そのため、現在、ページは適切なhtmlとデータをレンダリングおよび表示しています。しかし、onclickは機能していません。バラエティをクリックすると、アプリがリクエストを適切に処理せず、ユーザーリストが変更されません。
アップデート
アナトリイのコメントへの回答:
どのルートを追加する必要があるのか正確にはわかりません。以下を追加してみましたが、結果は以前と同じでした。
map.resources:varieties、:member => {:show =>:get}
どのメンバールートを呼び出すべきかについて、より具体的に教えてください。
c - デマンドページングのコンテキストにおける謎の番号「63」
デマンド ページング システムを模倣するコードを実行しています。ここではいくつかのパラメーターを示します。
ページ フレーム数を 100 に設定して、FIFO またはランダム ページ置換アルゴリズムを使用してコードを実行します。ディスクの読み取り/書き込みは 63 で終了します。
次に、プロセッサ サイズを 32 ビットに変更すると、この境界は 16 に移動します。
後者の場合、わかりました。ページ フレーム カウントが可能なページ テーブル エントリ (2^4) よりも多い場合、エビクションの必要はありません。
しかし、前者の場合、ページ テーブル エントリが 2^20 になると、両方のページ置換アルゴリズムでディスクの読み取り/書き込みが 63 で停止する理由がわかりません。
この謎の63番とは?これはどこから来ているのでしょうか?ありがとうございました。
algorithm - FIFOページ置換戦略がLRUよりも優れている可能性はありますか?
オペレーティングシステムの宿題の一環として、特定の一連のページアクセスについて、先入れ先出しと最も使用頻度の低いページ置換戦略によって生成されたページフォールトの数を比較するように依頼されました。困惑することに、FIFOはLRUよりも少ないページフォールトを生成したようです。これは可能ですか、それとも私は間違いを犯しましたか?
operating-system - 仮想メモリページ置換アルゴリズム
さまざまなページ置換アルゴリズムがどのように実行されるかをシミュレートするアプリケーションを開発するように依頼されたプロジェクトがあります(さまざまなワーキングセットサイズと安定期間を使用)。私の結果:
- 垂直軸:ページフォールト
- 横軸:ワーキングセットサイズ
- 深さ軸:安定期間
私の結果は妥当ですか?LRUの方がFIFOよりも良い結果が得られると期待していました。ここでは、それらはほぼ同じです。
ランダムな場合、安定期間とワーキングセットのサイズはパフォーマンスにまったく影響を与えないようですか?FIFOおよびLRUと同様のグラフが最悪のパフォーマンスになると予想しましたか?参照文字列が非常に安定していて(小さなブランチ)、ワーキングセットのサイズが小さい場合でも、多くのブランチと大きなワーキングセットのサイズを持つアプリケーションよりもページフォールトが少ないはずです。
より詳しい情報
- 参照文字列(RS)の長さ:200,000
- 仮想メモリのサイズ(P):1000
- メインメモリのサイズ(F):100
- 参照された時間ページの数(m):100
- ワーキングセットのサイズ(e):2-100
- 安定性(t):0-1
ワーキングセットのサイズ(e)と安定期間(t)は、参照文字列の生成方法に影響します。
したがって、上記のサイズPの仮想メモリを想定します。参照文字列を生成するには、次のアルゴリズムが使用されます。
- 参照文字列が生成されるまで繰り返します
m
[p、p+e]で数字を選びます。m
ページが参照される回数をシミュレートまたは参照する- 乱数を選択、0 <= r <1
- r<tの場合
- 新しいpを生成する
- else(++ p)%P
更新(@MrGomezの回答に応じて)
ただし、入力データをどのようにシードしたかを思い出してください。random.randomを使用して、制御可能なレベルのエントロピーでデータを均一に分散させます。このため、すべての値が同じように発生する可能性があり、浮動小数点空間でこれを作成したため、再発する可能性はほとんどありません。
私はを使用してrandom
いますが、それも完全にランダムではありません。ワーキングセットのサイズとページ数の参照パラメーターを使用しても、参照はある程度の局所性で生成されますか?
numPageReferenced
現在メモリ内にあるページをより多く参照し、FIFOよりもLRUのパフォーマンス上の利点を示すことを期待して、相対値を増やしてみnumFrames
ましたが、明確な結果は得られませんでした。参考までに、次のパラメーターを使用して同じアプリを試しました(ページ/フレームの比率は同じままですが、データのサイズを小さくして処理を高速化しました)。
結果は
それでもそれほど大きな違いはありません。numPageReferenced
に比べて増加した場合numFrames
、LRUはメモリ内のページをより多く参照するため、パフォーマンスが向上するはずです。それとも私は何かを誤解していますか?
ランダムに、私は次の線に沿って考えています:
- 高い安定性と小さなワーキングセットがあるとします。これは、参照されているページがメモリ内にある可能性が非常に高いことを意味します。では、ページ置換アルゴリズムを実行する必要性は低いのでしょうか。
うーん、多分私はこれについてもっと考えなければなりません:)
更新:安定性が低いと、ゴミ箱があまり目立たなくなります
ここでは、ワーキングセットのサイズがメモリ内のフレーム数(100)を超えているため、トラッシングを表示しようとしています。ただし、安定性が低い(高い)とスラッシングが目立たなくなることにt
注意してください。なぜそうなるのでしょうか。安定性が低くなるとページフォールトが最大に近づくため、ワーキングセットのサイズはそれほど重要ではないという説明はありますか?
c++ - LRU アルゴリズムについて
私は LRU を理解しようとしていますが、意味がありません。理解できれば、コードを書きやすくなります。手順を説明してもらえますか? お気に入り、
- 現在いる参照文字列が配列内にある場合、次のスペースにインクリメントしますか?
- バッファ内に何かがあるかどうかを確認する場合、現在の場所または配列全体をスキャンする必要がありますか?
私は従うことができないようです。最近使用されていないものをどのように追跡していますか? 最も最近使用されたものは、あなたのインデックスの後のものであるべきではありませんか?
algorithm - MFU と LRU のページ置換アルゴリズムの比較
MFU (最も頻繁に使用される) ページ置換アルゴリズムが LRU (最も頻繁に使用されない) よりも優れたパフォーマンスを発揮するのはいつですか? LRUより悪いのはいつですか?MFU ページ置換アルゴリズムの基本的な定義以外の情報はどこにありますか?
operating-system - FIFOページ置換はどのように機能しますか?
FIFOページ置換アルゴリズムを理解しようとしていますが、見つけることができるすべての情報は以下のとおりです。FIFOの特定の例を使用して、参照文字列を使用してページ置換アルゴリズムを評価する方法を説明できますか?
ページを置き換える必要がある場合は、最も古いページが選択されます。
すべての例で、参照文字列は
1、2、3、4、1、2、5、1、2、3、4、5
3フレーム(9ページフォールト)4フレーム(10ページフォールト)
c# - FIFO ページ置換アルゴリズムの問題
C# で FIFO を使用してページ フォールトを検出するプログラムを作成しています。ユーザーが 20 文字の参照文字列を提供するか、ランダムな参照文字列が生成されます。ユーザは、フレーム数も入力します。
そのため、20 個の 1 桁の数字の配列、フレームの配列、およびフレームの数を FIFO 関数に渡します。なんらかの理由で、番号がオフになっていて、何が間違っているのかわかりません。テストする 4 つのフレームで 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6 の参照文字列を使用しています。以下は私のFIFO関数です。
c# - LRU ページ置換アルゴリズム C#
LRU ページ置換をシミュレートする関数を作成しようとしています。私は LRU をよく理解していますが、コーディングに問題があります。次のものが LRU 関数に渡されます。ユーザーは、サイズ 20 の refString という配列に格納されている # の 1 ~ 9 の 20 文字の参照文字列を指定します。ユーザーが入力したフレーム数 (1 ~ 7) は、変数 numFrames に格納されます。最後に、frame と呼ばれるサイズ 7 の配列が渡されます。
これが私が持っているコードです。近い数を取得していますが、完全ではありません。多分誰かが助けることができます!