キャッシュメモリと主記憶との間でブロックを置き換える方式にLRU方式がある。この方式で置換えの対象になるブロックはどれか。
- ア 一定時間参照されていないブロック
- イ 最後に参照されてから最も長い時間が経過したブロック
- ウ 参照頻度の最も低いブロック
- エ 読み込んでから最も長い時間が経過したブロック
キャッシュメモリと主記憶との間でブロックを置き換える方式にLRU方式がある。この方式で置換えの対象になるブロックはどれか。
解説:
ターンアラウンドタイムは「CPU実行時間」「入出力時間」「その他のオーバヘッド」を合計した、処理に関わる時間の総計となるので、与えられた情報をもとに、現状のターンアラウンドタイムを算出する。
$${300 + 600 + 100 = 1000 ミリ秒}$$
この、1000msのターンアラウンドタイムを半分(= 500 ミリ秒)としたいので、それを踏まえて実現すべき「入出力時間」を求めていく。
CPU時間・オーバヘッドは変えないので、以下の計算で求める。
$$ begin{aligned}500 &= 300 + 改善後の入出力時間 + 100 改善後の入出力時間 &= 500 - 300 - 100 改善後の入出力時間 &= 100 ミリ秒end{aligned} $$
問題では、元の入出力時間を「何倍」にすれば良いかを問われているので、600ms → 100ms が何倍になるかを求めて回答する。
600ms → 100ms だと、元の値から6分の1になった計算になるが、「元の値の6分の1=元の値の1/6倍」と言い換えられるので、正解はアの 1/6 となる。